diff --git a/CHANGELOG.md b/CHANGELOG.md index 0479e53089..e6d8c97160 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ - Fixed out-of-memory errors on https://ci.iog.io ([PR 3145](https://github.com/input-output-hk/daedalus/pull/3145)) +### Chores + +- Updated cardano-node to 8.1.1 (via cardano-wallet) ([PR 3133](https://github.com/input-output-hk/daedalus/pull/3133)) + ## 5.3.0 ### Features diff --git a/flake.lock b/flake.lock index bcc883bd43..27a724462e 100644 --- a/flake.lock +++ b/flake.lock @@ -20,16 +20,16 @@ "cardano-wallet-unpatched": { "flake": false, "locked": { - "lastModified": 1681468877, - "narHash": "sha256-d66foWDBKsSgL6f7lCwGBAS4Iu6MJCG7wyl1N7wctxw=", - "owner": "input-output-hk", + "lastModified": 1689751896, + "narHash": "sha256-ijflgIw+1FpLoxM4Rksf4MJvNqnEPAv3gNWE8zMuefU=", + "owner": "cardano-foundation", "repo": "cardano-wallet", - "rev": "3f9055373c272a4d7b1f9f6bacc1df3b6dc906af", + "rev": "3f0d2f3abe706958fab8cdc528184068bd0453c9", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "v2023-04-14", + "owner": "cardano-foundation", + "ref": "v2023-07-18", "repo": "cardano-wallet", "type": "github" } @@ -37,17 +37,17 @@ "cardano-world": { "flake": false, "locked": { - "lastModified": 1669223728, - "narHash": "sha256-Zo6YeS+43AsJy7TKVfe42O/hR+JOwhalLkH3KFGRTCM=", + "lastModified": 1687558705, + "narHash": "sha256-NCpbYQnoJdghO2vPdbllucCcb56GQHBoL4r9tN0oAzQ=", "owner": "input-output-hk", "repo": "cardano-world", - "rev": "a0a315100ee320395be97fcc83f46678d5a7fb6e", + "rev": "d751a12be1dd4e5e2bd3bafaf4c254390469292d", "type": "github" }, "original": { "owner": "input-output-hk", "repo": "cardano-world", - "rev": "a0a315100ee320395be97fcc83f46678d5a7fb6e", + "rev": "d751a12be1dd4e5e2bd3bafaf4c254390469292d", "type": "github" } }, diff --git a/flake.nix b/flake.nix index ee884661a3..e21e8e92db 100644 --- a/flake.nix +++ b/flake.nix @@ -3,9 +3,9 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-22.11-darwin"; - cardano-wallet-unpatched.url = "github:input-output-hk/cardano-wallet/v2023-04-14"; + cardano-wallet-unpatched.url = "github:cardano-foundation/cardano-wallet/v2023-07-18"; cardano-wallet-unpatched.flake = false; # otherwise, +10k quadratic dependencies in flake.lock… - cardano-world.url = "github:input-output-hk/cardano-world/a0a315100ee320395be97fcc83f46678d5a7fb6e"; + cardano-world.url = "github:input-output-hk/cardano-world/d751a12be1dd4e5e2bd3bafaf4c254390469292d"; cardano-world.flake = false; # otherwise, +19k quadratic dependencies in flake.lock… cardano-shell.url = "github:input-output-hk/cardano-shell/0d1d5f036c73d18e641412d2c58d4acda592d493"; cardano-shell.flake = false; diff --git a/installers/common/MacInstaller.hs b/installers/common/MacInstaller.hs index 985aa29021..d7b08850bf 100644 --- a/installers/common/MacInstaller.hs +++ b/installers/common/MacInstaller.hs @@ -365,7 +365,7 @@ makeComponentRoot Options{oBackend,oCluster} appRoot darwinConfig@DarwinConfig{d forM_ ["config.yaml", "genesis.json", "topology.yaml" ] $ \f -> cp f (dataDir f) when (oCluster /= Selfnode) $ do - forM_ ["genesis-byron.json", "genesis-shelley.json", "genesis-alonzo.json" ] $ \f -> + forM_ ["genesis-byron.json", "genesis-shelley.json", "genesis-alonzo.json", "genesis-conway.json" ] $ \f -> cp f (dataDir f) when (oCluster == Selfnode) $ do diff --git a/installers/common/WindowsInstaller.hs b/installers/common/WindowsInstaller.hs index e12cd52000..dcc9540ae8 100644 --- a/installers/common/WindowsInstaller.hs +++ b/installers/common/WindowsInstaller.hs @@ -225,12 +225,12 @@ writeInstallerNSIS outName (Version fullVersion') InstallerConfig{installDirecto file [] "topology.yaml" file [] "genesis.json" when (clusterName /= Selfnode) $ do + file [] "genesis-conway.json" file [] "genesis-byron.json" file [] "genesis-shelley.json" file [] "genesis-alonzo.json" file [] "libsodium-23.dll" - file [] "libsecp256k1-1.dll" - file [] "libsecp256k1-0.dll" + file [] "libsecp256k1-2.dll" file [] "libssl-3-x64.dll" file [] "libcrypto-3-x64.dll" when (clusterName == Selfnode) $ do diff --git a/nix/internal/any-darwin.nix b/nix/internal/any-darwin.nix index 9100302a04..5590f3d84b 100644 --- a/nix/internal/any-darwin.nix +++ b/nix/internal/any-darwin.nix @@ -24,7 +24,7 @@ let in rec { inherit common; - inherit (common) nodejs nodePackages yarn yarn2nix offlineCache srcLockfiles srcWithoutNix; + inherit (common) nodejs yarn yarn2nix offlineCache srcLockfiles srcWithoutNix; # The following is used in all `configurePhase`s: darwinSpecificCaches = let diff --git a/nix/internal/cardano-wallet--enable-aarch64-darwin.patch b/nix/internal/cardano-wallet--enable-aarch64-darwin.patch index d1c4aaca1f..ac2ac494d3 100644 --- a/nix/internal/cardano-wallet--enable-aarch64-darwin.patch +++ b/nix/internal/cardano-wallet--enable-aarch64-darwin.patch @@ -1,12 +1,40 @@ +diff --git a/flake.nix b/flake.nix +index 37ea1cfa12..8d0871d52b 100644 +--- a/flake.nix ++++ b/flake.nix +@@ -217,8 +217,22 @@ + collectChecks + check; + +- nodePkgs = cardano-node-runtime.legacyPackages.${system}; +- nodeProject = cardano-node-runtime.project.${system}; ++ cardano-node-runtime-patched = ++ if system != "aarch64-darwin" ++ then cardano-node-runtime ++ else (import ./nix/flake-compat.nix { ++ src = { ++ outPath = toString (pkgs.runCommandLocal "patched-cardano-node" {} '' ++ cp -r ${cardano-node-runtime} $out ++ chmod -R +w $out ++ cat ${./nix/supported-systems.nix} >$out/nix/supported-systems.nix ++ ''); ++ inherit (cardano-node-runtime.sourceInfo) rev shortRev lastModified lastModifiedDate; ++ }; ++ }).defaultNix; ++ ++ nodePkgs = cardano-node-runtime-patched.legacyPackages.${system}; ++ nodeProject = cardano-node-runtime-patched.project.${system}; + + project = (import ./nix/haskell.nix + CHaP diff --git a/nix/supported-systems.nix b/nix/supported-systems.nix -index 6e3f0d94e3..5de7138b32 100644 +index 6e3f0d94e3..a0c0ae17dc 100644 --- a/nix/supported-systems.nix +++ b/nix/supported-systems.nix -@@ -1,6 +1,5 @@ - [ +@@ -2,5 +2,5 @@ "x86_64-linux" "x86_64-darwin" -- # TODO: Enable aarch64-darwin when there are Hydra builders for it + # TODO: Enable aarch64-darwin when there are Hydra builders for it - # "aarch64-darwin" + "aarch64-darwin" ] diff --git a/nix/internal/cardano-wallet--proper-runtimeNodePkgs.patch b/nix/internal/cardano-wallet--proper-runtimeNodePkgs.patch deleted file mode 100644 index cb43a29b42..0000000000 --- a/nix/internal/cardano-wallet--proper-runtimeNodePkgs.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/flake.nix b/flake.nix -index af206a740e..dd6d6377e3 100644 ---- a/flake.nix -+++ b/flake.nix -@@ -217,7 +217,15 @@ - collectChecks - check; - -- nodePkgs = cardano-node-1_35_4.packages.${system}; -+ cardano-node-1_35_4-patched = (import ./nix/flake-compat.nix { -+ src = pkgs.runCommandLocal "patched-cardano-node" {} '' -+ cp -r ${cardano-node-1_35_4.outPath} $out -+ chmod -R +w $out -+ cat ${./nix/supported-systems.nix} >$out/nix/supported-systems.nix -+ ''; -+ }).defaultNix; -+ -+ nodePkgs = cardano-node-1_35_4-patched.packages.${system}; - - project = (import ./nix/haskell.nix - CHaP -@@ -235,6 +243,12 @@ - mkPackages = project: - let - coveredProject = project.appendModule { coverage = true; }; -+ runtimeNodePkgs = { -+ x86_64-linux = cardano-node-1_35_4-patched.hydraJobs.linux.native; -+ x86_64-windows = cardano-node-1_35_4-patched.hydraJobs.linux.windows; -+ x86_64-darwin = cardano-node-1_35_4-patched.packages.x86_64-darwin; -+ aarch64-darwin = cardano-node-1_35_4-patched.packages.aarch64-darwin; -+ }.${project.pkgs.system}; - self = { - # Cardano wallet - cardano-wallet = import ./nix/release-build.nix { -@@ -250,8 +264,8 @@ - inherit (project.hsPkgs.cardano-addresses-cli.components.exes) cardano-address; - - # Cardano -- inherit (project.hsPkgs.cardano-cli.components.exes) cardano-cli; -- cardano-node = project.hsPkgs.cardano-node.components.exes.cardano-node // { -+ inherit (runtimeNodePkgs) cardano-cli; -+ cardano-node = runtimeNodePkgs.cardano-node // { - deployments = pkgs.cardano-node-deployments; - }; - diff --git a/nix/internal/common.nix b/nix/internal/common.nix index 7335447e24..f389bad522 100644 --- a/nix/internal/common.nix +++ b/nix/internal/common.nix @@ -23,19 +23,36 @@ rec { }; }; - walletFlake = (import inputs.flake-compat { - # FIXME: add patches in `flake.nix` after - src = pkgs.runCommand "cardano-wallet" {} '' - cp -r ${inputs.cardano-wallet-unpatched} $out - chmod -R +w $out - cd $out - patch -p1 -i ${./cardano-wallet--enable-aarch64-darwin.patch} - patch -p1 -i ${./cardano-wallet--expose-windowsPackages.patch} - patch -p1 -i ${./cardano-wallet--proper-runtimeNodePkgs.patch} - ''; - }).defaultNix // { - inherit (inputs.cardano-wallet-unpatched) rev shortRev sourceInfo; - }; + flake-compat = import inputs.flake-compat; + + walletFlake = let + unpatched = inputs.cardano-wallet-unpatched; + in (flake-compat { + src = { + outPath = toString (pkgs.runCommand "source" {} '' + cp -r ${unpatched} $out + chmod -R +w $out + cd $out + patch -p1 -i ${./cardano-wallet--enable-aarch64-darwin.patch} + patch -p1 -i ${./cardano-wallet--expose-windowsPackages.patch} + ''); + inherit (unpatched) rev shortRev lastModified lastModifiedDate; + }; + }).defaultNix; + + nodeFlake = let + unpatched = walletFlake.inputs.cardano-node-runtime; + in (flake-compat { + src = { + outPath = toString (pkgs.runCommand "source" {} '' + cp -r ${unpatched} $out + chmod -R +w $out + cd $out + cp ${walletFlake}/nix/supported-systems.nix $out/nix/supported-systems.nix + ''); + inherit (unpatched.sourceInfo) rev shortRev lastModified lastModifiedDate; + }; + }).defaultNix; walletPackages = { x86_64-windows = walletFlake.packages.x86_64-linux.windowsPackages; @@ -44,7 +61,14 @@ rec { aarch64-darwin = walletFlake.packages.aarch64-darwin; }.${targetSystem}; - cardanoWorldFlake = (import inputs.flake-compat { src = inputs.cardano-world; }).defaultNix.outputs; + nodePackages = { + x86_64-windows = nodeFlake.legacyPackages.x86_64-linux.hydraJobs.windows; # a bug in ${cardano-node}/flake.nix + x86_64-linux = nodeFlake.packages.x86_64-linux; + x86_64-darwin = nodeFlake.packages.x86_64-darwin; + aarch64-darwin = nodeFlake.packages.aarch64-darwin; + }.${targetSystem}; + + cardanoWorldFlake = (flake-compat { src = inputs.cardano-world; }).defaultNix.outputs; inherit (walletFlake.legacyPackages.${pkgs.system}.pkgs) cardanoLib; @@ -55,7 +79,9 @@ rec { local-cluster = if cluster == "selfnode" then walletPackages.local-cluster else null; }); - inherit (walletPackages) cardano-node cardano-cli cardano-wallet cardano-address mock-token-metadata-server; + inherit (walletPackages) cardano-wallet cardano-address mock-token-metadata-server; + + inherit (nodePackages) cardano-node cardano-cli; cardano-shell = import inputs.cardano-shell { inherit (pkgs) system; @@ -64,7 +90,8 @@ rec { }.${targetSystem} or null; }; - cardanoNodeVersion = cardano-node.version + "-" + builtins.substring 0 9 walletFlake.inputs.cardano-node-1_35_4.rev; + cardanoNodeVersion = cardano-node.identifier.version + "-" + builtins.substring 0 9 nodeFlake.rev; + cardanoWalletVersion = daedalus-bridge.mainnet.wallet-version + "-" + builtins.substring 0 9 walletFlake.rev; mkLauncherConfigs = { devShell ? false, cluster }: import ./launcher-config.nix { @@ -124,8 +151,6 @@ rec { )) drv.patches; }); - nodePackages = pkgs.nodePackages.override { inherit nodejs; }; - yarn = (pkgs.yarn.override { inherit nodejs; }).overrideAttrs (drv: { # XXX: otherwise, unable to run our package.json scripts in Nix sandbox (patchShebangs doesn’t catch this) postFixup = (drv.postFixup or "") + '' diff --git a/nix/internal/launcher-config.nix b/nix/internal/launcher-config.nix index efbcec864b..d5749c8374 100644 --- a/nix/internal/launcher-config.nix +++ b/nix/internal/launcher-config.nix @@ -19,17 +19,9 @@ let - clusterOverrides = { - mainnet_flight = { - cardanoEnv = cardanoLib.environments.mainnet; - cluster = "mainnet"; - networkName = "mainnet"; - }; - alonzo_purple = { - cardanoEnv = cardanoLib.environments.alonzo-purple; - cluster = "alonzo-purple"; - networkName = "alonzo-purple"; - }; + clustersAvailable = rec { + mainnet = fromCardanoWorld "mainnet"; + mainnet_flight = mainnet; shelley_qa = fromCardanoWorld "shelley_qa"; vasil_dev = fromCardanoWorld "vasil-dev"; preprod = fromCardanoWorld "preprod"; @@ -48,11 +40,12 @@ let topology = builtins.fromJSON (builtins.unsafeDiscardStringContext ( builtins.readFile (originalFiles + "/topology.json"))); - topologyFirstAccessPoint = builtins.head (builtins.head topology.PublicRoots).publicRoots.accessPoints; + topologyFirstAccessPoint = builtins.head (builtins.head topology.publicRoots).accessPoints; isP2P = originalNodeConfig ? EnableP2P && originalNodeConfig.EnableP2P; nodeConfig = originalNodeConfig // { + ConwayGenesisFile = originalFiles + "/" + originalNodeConfig.ConwayGenesisFile; AlonzoGenesisFile = originalFiles + "/" + originalNodeConfig.AlonzoGenesisFile; ByronGenesisFile = originalFiles + "/" + originalNodeConfig.ByronGenesisFile; ShelleyGenesisFile = originalFiles + "/" + originalNodeConfig.ShelleyGenesisFile; @@ -117,9 +110,7 @@ let mkConfigPath = configSrc: configPath: "${(configDir configSrc).${os}}${dirSep}${configPath}"; envCfg = let - cardanoEnv = if __hasAttr network clusterOverrides - then clusterOverrides.${network}.cardanoEnv - else cardanoLib.environments.${network}; + cardanoEnv = clustersAvailable.${network}.cardanoEnv; in if network == "selfnode" then selfnodeConfig else cardanoEnv; kind = if network == "local" then "shelley" else if (envCfg.nodeConfig.Protocol == "RealPBFT" || envCfg.nodeConfig.Protocol == "Byron") then "byron" else "shelley"; @@ -213,8 +204,8 @@ let workingDir = dataDir; stateDir = dataDir; tlsPath = "${dataDir}${dirSep}tls"; - cluster = if __hasAttr network clusterOverrides then clusterOverrides.${network}.cluster else network; - networkName = if __hasAttr network clusterOverrides then clusterOverrides.${network}.networkName else network; + cluster = if __hasAttr network clustersAvailable then clustersAvailable.${network}.cluster else network; + networkName = if __hasAttr network clustersAvailable then clustersAvailable.${network}.networkName else network; isFlight = network == "mainnet_flight"; isStaging = (envCfg.nodeConfig.RequiresNetworkMagic == "RequiresNoMagic"); nodeImplementation = "cardano"; @@ -233,6 +224,7 @@ let ${lib.optionalString (envCfg.nodeConfig ? ByronGenesisFile) "cp ${envCfg.nodeConfig.ByronGenesisFile} $out/genesis-byron.json"} ${lib.optionalString (envCfg.nodeConfig ? ShelleyGenesisFile) "cp ${envCfg.nodeConfig.ShelleyGenesisFile} $out/genesis-shelley.json"} ${lib.optionalString (envCfg.nodeConfig ? AlonzoGenesisFile) "cp ${envCfg.nodeConfig.AlonzoGenesisFile} $out/genesis-alonzo.json"} + ${lib.optionalString (envCfg.nodeConfig ? ConwayGenesisFile) "cp ${envCfg.nodeConfig.ConwayGenesisFile} $out/genesis-conway.json"} ''; mkConfigCardano = let @@ -247,6 +239,7 @@ let ByronGenesisFile = "genesis-byron.json"; ShelleyGenesisFile = "genesis-shelley.json"; AlonzoGenesisFile = "genesis-alonzo.json"; + ConwayGenesisFile = "genesis-conway.json"; }))); genesisFile = let genesisFile'.selfnode = ../../utils/cardano/selfnode/genesis.json; diff --git a/nix/internal/x86_64-linux.nix b/nix/internal/x86_64-linux.nix index 3e7e016199..2b47db4d15 100644 --- a/nix/internal/x86_64-linux.nix +++ b/nix/internal/x86_64-linux.nix @@ -15,7 +15,7 @@ let in rec { inherit common; - inherit (common) nodejs nodePackages yarn yarn2nix offlineCache srcLockfiles srcWithoutNix electronVersion electronChromedriverVersion originalPackageJson; + inherit (common) nodejs yarn yarn2nix offlineCache srcLockfiles srcWithoutNix electronVersion electronChromedriverVersion originalPackageJson; package = genClusters (cluster: mkDaedalus { sandboxed = false; inherit cluster; });