diff --git a/bench/cardano-topology/NOTICE b/bench/cardano-topology/NOTICE index c1189155b54..f63730a6301 100644 --- a/bench/cardano-topology/NOTICE +++ b/bench/cardano-topology/NOTICE @@ -1,4 +1,4 @@ -Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/bench/cardano-topology/cardano-topology.cabal b/bench/cardano-topology/cardano-topology.cabal index 69aadca71f9..8a50a43dae0 100644 --- a/bench/cardano-topology/cardano-topology.cabal +++ b/bench/cardano-topology/cardano-topology.cabal @@ -6,7 +6,7 @@ synopsis: A cardano topology generator description: A cardano topology generator. category: Cardano, Test, -copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: IOHK maintainer: operations@iohk.io license: Apache-2.0 diff --git a/bench/locli/NOTICE b/bench/locli/NOTICE index c1189155b54..f63730a6301 100644 --- a/bench/locli/NOTICE +++ b/bench/locli/NOTICE @@ -1,4 +1,4 @@ -Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/bench/locli/locli.cabal b/bench/locli/locli.cabal index 7649407e988..881f87cedfd 100644 --- a/bench/locli/locli.cabal +++ b/bench/locli/locli.cabal @@ -6,7 +6,7 @@ synopsis: Cardano log analysis CLI description: Cardano log analysis CLI. category: Cardano, Logging, -copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: IOHK maintainer: operations@iohk.io license: Apache-2.0 diff --git a/bench/plutus-scripts-bench/NOTICE b/bench/plutus-scripts-bench/NOTICE index 071f6062674..5b950f6e291 100644 --- a/bench/plutus-scripts-bench/NOTICE +++ b/bench/plutus-scripts-bench/NOTICE @@ -1,4 +1,4 @@ -Copyright 2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/bench/plutus-scripts-bench/plutus-scripts-bench.cabal b/bench/plutus-scripts-bench/plutus-scripts-bench.cabal index 4c6dc8ed805..59bc00ca7bd 100644 --- a/bench/plutus-scripts-bench/plutus-scripts-bench.cabal +++ b/bench/plutus-scripts-bench/plutus-scripts-bench.cabal @@ -10,7 +10,7 @@ maintainer: operations@iohk.io license: Apache-2.0 license-files: LICENSE NOTICE -copyright: 2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2023 Input Output Global Inc (IOG), 2023-2025 Intersect. build-type: Simple flag unexpected_thunks diff --git a/bench/tx-generator/NOTICE b/bench/tx-generator/NOTICE index 3dddab23894..b63858587be 100644 --- a/bench/tx-generator/NOTICE +++ b/bench/tx-generator/NOTICE @@ -1,4 +1,4 @@ -Copyright 2019-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2019-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/bench/tx-generator/tx-generator.cabal b/bench/tx-generator/tx-generator.cabal index 461282d831d..c232a1c4c9b 100644 --- a/bench/tx-generator/tx-generator.cabal +++ b/bench/tx-generator/tx-generator.cabal @@ -6,7 +6,7 @@ synopsis: A transaction workload generator for Cardano clusters description: A transaction workload generator for Cardano clusters. category: Cardano, Test, -copyright: 2019-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2019-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: IOHK maintainer: operations@iohk.io license: Apache-2.0 @@ -158,7 +158,6 @@ library , transformers-except , unordered-containers , yaml - , microlens default-language: Haskell2010 default-extensions: OverloadedStrings diff --git a/cabal.project b/cabal.project index de569fdc0d1..de6488c42c8 100644 --- a/cabal.project +++ b/cabal.project @@ -14,7 +14,7 @@ repository cardano-haskell-packages -- you need to run if you change them index-state: , hackage.haskell.org 2025-01-01T23:24:19Z - , cardano-haskell-packages 2025-01-16T11:44:54Z + , cardano-haskell-packages 2025-01-22T16:50:05Z packages: cardano-node diff --git a/cardano-node-capi/NOTICE b/cardano-node-capi/NOTICE index c1189155b54..f63730a6301 100644 --- a/cardano-node-capi/NOTICE +++ b/cardano-node-capi/NOTICE @@ -1,4 +1,4 @@ -Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/cardano-node-capi/cardano-node-capi.cabal b/cardano-node-capi/cardano-node-capi.cabal index 1f44dca43cc..42f8be16ca8 100644 --- a/cardano-node-capi/cardano-node-capi.cabal +++ b/cardano-node-capi/cardano-node-capi.cabal @@ -6,7 +6,7 @@ synopsis: FFI C library for Cardano description: ffi c library around the full node. category: Cardano, FFI, -copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: IOHK maintainer: operations@iohk.io license: Apache-2.0 diff --git a/cardano-node-chairman/NOTICE b/cardano-node-chairman/NOTICE index 21bbb2144c8..3131dfdb61c 100644 --- a/cardano-node-chairman/NOTICE +++ b/cardano-node-chairman/NOTICE @@ -1,4 +1,4 @@ -Copyright 2020-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2020-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/cardano-node-chairman/cardano-node-chairman.cabal b/cardano-node-chairman/cardano-node-chairman.cabal index b5b350234ca..c7aa9f6b94a 100644 --- a/cardano-node-chairman/cardano-node-chairman.cabal +++ b/cardano-node-chairman/cardano-node-chairman.cabal @@ -6,7 +6,7 @@ synopsis: The cardano full node description: The cardano full node. category: Cardano, Test, -copyright: 2020-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2020-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: IOHK maintainer: operations@iohk.io license: Apache-2.0 @@ -44,7 +44,7 @@ executable cardano-node-chairman build-depends: cardano-api , cardano-crypto-class , cardano-git-rev ^>= 0.2.2 - , cardano-node ^>= 10.1.1 + , cardano-node ^>= 10.2 , cardano-prelude , containers , contra-tracer diff --git a/cardano-node/ChangeLog.md b/cardano-node/ChangeLog.md index 76e7cfd2474..17ae59a8358 100644 --- a/cardano-node/ChangeLog.md +++ b/cardano-node/ChangeLog.md @@ -1,22 +1,59 @@ # Changelog for cardano-node -## Next version +## 10.2 -- January 2025 - Use p2p network stack by default, warn when using the legacy network stack. + - Deprecate some CLI flags corresponding to low-level consensus options. They are still accepted but a warning is emitted on startup on stderr suggesting to set them in the configuration file instead: - `--mempool-capacity-override` and `--no-mempool-capacity-override` can be set in the configuration file via the key `MempoolCapacityBytesOverride`. - `--snapshot-interval` can be set in the configuration file via the key `SnapshotInterval`. - `--num-of-disk-snapshots` can be set in the configuration file via the key `NumOfDiskSnapshots`. + - Ledger peer snapshot path entry added to topology JSON parser, which a new decoder function `readPeerSnapshotFile` processes at startup and SIGHUP. Data is available to the diffusion layer via TVar. +- Configuration changes: + - Add `ConsensusMode` and `MinBigLedgerPeersForTrustedState` + - Add Genesis config + - Add `diffusionMode` to local root peers group configuration + - Add `DoDiskSnapshotChecksum` + +- Change fallback node name for trace forwarding from `host:port` to `host_port` - Use metric names of old-tracing in new-tracing as well, and fix some metrics in new tracing. +- Tracing updates: + - Add support for `ChainSelStarvationEvent`, `ExtValidationError` + - Add support for `KeepAlive` protocol + - Add support for `LocalStateQuery` protocol + - Add support for `UsingBigLedgerPeerSnapshot`, `VerifyPeerSnapshot` + - Add support for `ConnectionError` + - Add support for `AddNewNodeIdMapping` + - Add support for `PeerFetch` and `PeerStarvedUs` + - Add support for `SnapshotMissingChecksum` + - Add support for stateful messages + - Add `maximumKesEvolutions` to `InvalidKesSignatureOCERT` event + - Rename kind field of all `MuxXxx` trace messages to be `Mux.Xxx` + - Rename fields in `RotatedDynamo` event to `oldPeer`, `newPeer` + - Rename `ConnectTo` to `Connect` + - Change format of `GenesisPoint`, `LabelPeer`, `DecisionEvent` + - Change format of `ConnectionManagerState` + - Change format of `AddedToCurrentChain` + - Drop support for `ClientAgency`, `ServerAgency` + - Drop support for `FetchDecision declined`, `FetchDecision results` + - Drop support for `StakeKeyInRewardsDELEG` + - Drop support for `ChainSelectionForFutureBlock`, `BlockInTheFuture`, + `CandidateContainsFutureBlocks`, `CandidateContainsFutureBlocksExceedingClockSkew`, + `InvalidBlockReason` + +- Drop NodeToClient versions 9 through 15, and add 19 + +- Increase minor protocol version to `10.3` + ## 8.2.1 -- August 2023 - prevent SIGHUP from killing node during ledger replay diff --git a/cardano-node/NOTICE b/cardano-node/NOTICE index 47f18a85adc..b94237924ee 100644 --- a/cardano-node/NOTICE +++ b/cardano-node/NOTICE @@ -1,4 +1,4 @@ -Copyright 2019-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2019-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index 9874b9c8e3a..68ee7ee961e 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -1,12 +1,12 @@ cabal-version: 3.0 name: cardano-node -version: 10.1.4 +version: 10.2 synopsis: The cardano full node description: The cardano full node. category: Cardano, Validator, -copyright: 2019-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2019-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: IOHK maintainer: operations@iohk.io license: Apache-2.0 @@ -207,8 +207,8 @@ library , strict-sop-core , strict-stm , time - , trace-dispatcher ^>= 2.7.0 - , trace-forward ^>= 2.2.8 + , trace-dispatcher ^>= 2.8.0 + , trace-forward ^>= 2.2.9 , trace-resources ^>= 0.2.3 , tracer-transformers , transformers diff --git a/cardano-node/src/Cardano/Node/Configuration/TopologyP2P.hs b/cardano-node/src/Cardano/Node/Configuration/TopologyP2P.hs index 2e7517bf31e..8d75351255b 100644 --- a/cardano-node/src/Cardano/Node/Configuration/TopologyP2P.hs +++ b/cardano-node/src/Cardano/Node/Configuration/TopologyP2P.hs @@ -250,7 +250,12 @@ readTopologyFile nc tr = do ] genesisIncompatible = Text.pack $ "Cardano.Node.Configuration.Topology.readTopologyFile: " - <> "Bootstrap peers are not used in Genesis consensus mode." + <> "Bootstrap peers (field 'bootstrapPeers') are not compatible " + <> "with Genesis syncing mode, reverting to 'DontUseBootstrapPeers'. " + <> "Big ledger peers will be leveraged for decentralized syncing - it " + <> "is recommened to provide an up-to-date big ledger peer snapshot file " + <> "(field 'peerSnapshotFile' in topology configuration) to facilitate " + <> "this process." handlerBootstrap :: Text handlerBootstrap = mconcat [ "You seem to have not configured any trustable peers. " diff --git a/cardano-node/src/Cardano/Node/Protocol/Cardano.hs b/cardano-node/src/Cardano/Node/Protocol/Cardano.hs index 0fe737d4315..5df21a18528 100644 --- a/cardano-node/src/Cardano/Node/Protocol/Cardano.hs +++ b/cardano-node/src/Cardano/Node/Protocol/Cardano.hs @@ -165,7 +165,7 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { shelleyGenesisHash, shelleyBasedLeaderCredentials = shelleyLeaderCredentials } - , Consensus.cardanoProtocolVersion = ProtVer (natVersion @10) 2 + , Consensus.cardanoProtocolVersion = ProtVer (natVersion @10) 3 -- The remaining arguments specify the parameters needed to transition between two eras , Consensus.cardanoLedgerTransitionConfig = Ledger.mkLatestTransitionConfig diff --git a/cardano-node/src/Cardano/Node/Run.hs b/cardano-node/src/Cardano/Node/Run.hs index e627b75934d..e1e5bdb3633 100644 --- a/cardano-node/src/Cardano/Node/Run.hs +++ b/cardano-node/src/Cardano/Node/Run.hs @@ -930,7 +930,7 @@ mkP2PArguments NodeConfiguration { , P2P.daMinBigLedgerPeersForTrustedState = ncMinBigLedgerPeersForTrustedState } where - deadlineTargets = Configuration.defaultDeadlineTargets { + deadlineTargets = PeerSelectionTargets { targetNumberOfRootPeers = ncDeadlineTargetOfRootPeers, targetNumberOfKnownPeers = ncDeadlineTargetOfKnownPeers, targetNumberOfEstablishedPeers = ncDeadlineTargetOfEstablishedPeers, @@ -939,7 +939,10 @@ mkP2PArguments NodeConfiguration { targetNumberOfEstablishedBigLedgerPeers = ncDeadlineTargetOfEstablishedBigLedgerPeers, targetNumberOfActiveBigLedgerPeers = ncDeadlineTargetOfActiveBigLedgerPeers } - syncTargets = Configuration.defaultSyncTargets { + syncTargets = PeerSelectionTargets { + targetNumberOfRootPeers = 0, + targetNumberOfKnownPeers = 0, + targetNumberOfEstablishedPeers = 0, targetNumberOfActivePeers = ncSyncTargetOfActivePeers, targetNumberOfKnownBigLedgerPeers = ncSyncTargetOfKnownBigLedgerPeers, targetNumberOfEstablishedBigLedgerPeers = ncSyncTargetOfEstablishedBigLedgerPeers, diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/BlockReplayProgress.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/BlockReplayProgress.hs index 61f2850a1e9..27f80d0af4b 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/BlockReplayProgress.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/BlockReplayProgress.hs @@ -8,7 +8,7 @@ module Cardano.Node.Tracing.Tracers.BlockReplayProgress import Cardano.Api (textShow) import Cardano.Logging -import Ouroboros.Consensus.Block (realPointSlot) +import Ouroboros.Consensus.Block (SlotNo, realPointSlot) import qualified Ouroboros.Consensus.Storage.ChainDB as ChainDB import qualified Ouroboros.Consensus.Storage.LedgerDB as LedgerDB import Ouroboros.Network.Block (pointSlot, unSlotNo) @@ -20,12 +20,14 @@ import Data.Text (pack) data ReplayBlockStats = ReplayBlockStats { rpsDisplay :: Bool + , rpsCurSlot :: SlotNo + , rpsGoalSlot :: SlotNo , rpsProgress :: Double , rpsLastProgress :: Double } emptyReplayBlockStats :: ReplayBlockStats -emptyReplayBlockStats = ReplayBlockStats False 0.0 0.0 +emptyReplayBlockStats = ReplayBlockStats False 0 0 0.0 0.0 -------------------------------------------------------------------------------- -- ReplayBlockStats Tracer @@ -37,7 +39,15 @@ instance LogFormatting ReplayBlockStats where [ "kind" .= String "ReplayBlockStats" , "progress" .= String (pack $ show rpsProgress) ] - forHuman ReplayBlockStats {..} = "Block replay progress " <> textShow rpsProgress <> "%" + forHuman ReplayBlockStats {..} = "Replayed block: slot " <> textShow (unSlotNo rpsCurSlot) <> " out of " <> textShow (unSlotNo rpsGoalSlot) <> ". Progress: " <> textShow (round2 rpsProgress) <> "%" + where + round2 :: Double -> Double + round2 num = + let + f :: Int + f = round $ num * 100 + in fromIntegral f / 100 + asMetrics ReplayBlockStats {..} = [DoubleM "blockReplayProgress" rpsProgress] @@ -75,12 +85,12 @@ replayBlockStats :: MonadIO m -> m ReplayBlockStats replayBlockStats ReplayBlockStats {..} _context (ChainDB.TraceLedgerReplayEvent (LedgerDB.ReplayedBlock pt [] - (LedgerDB.ReplayStart replayTo) _)) = do - let slotno = toInteger $ unSlotNo (realPointSlot pt) - endslot = toInteger $ withOrigin 0 unSlotNo (pointSlot replayTo) - progress' = (fromInteger slotno * 100.0) / fromInteger (max slotno endslot) + _ (LedgerDB.ReplayGoal replayTo))) = do + let slotno = realPointSlot pt + endslot = withOrigin 0 id $ pointSlot replayTo + progress' = (fromIntegral (unSlotNo slotno) * 100.0) / fromIntegral (unSlotNo $ max slotno endslot) pure $ if (progress' == 0.0 && not rpsDisplay) - || ((progress' - rpsLastProgress) > 1.0) - then ReplayBlockStats True progress' progress' - else ReplayBlockStats False progress' rpsLastProgress + || ((progress' - rpsLastProgress) > 0.1) + then ReplayBlockStats True slotno endslot progress' progress' + else ReplayBlockStats False slotno endslot progress' rpsLastProgress replayBlockStats st@ReplayBlockStats {} _context _ = pure st diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/ChainDB.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/ChainDB.hs index fe32e91f5a3..b25a8063425 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/ChainDB.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/ChainDB.hs @@ -633,8 +633,8 @@ instance ( LogFormatting (Header blk) , IntM "slotInEpoch" (fromIntegral slotInEpoch) , IntM "epoch" (fromIntegral (unEpochNo epoch)) , PrometheusM "tipBlock" [("hash",tipBlockHash) - ,("parent hash",tipBlockParentHash) - ,("issuer verification key hash", tipBlockIssuerVkHashText)] + ,("parent_hash",tipBlockParentHash) + ,("issuer_verification_key_hash", tipBlockIssuerVkHashText)] ] asMetrics _ = [] diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index c36aa985814..a69a89f7494 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -465,7 +465,6 @@ instance HasSeverityAnnotation (TracePeerSelection addr) where TraceGovernorWakeup {} -> Info TraceChurnWait {} -> Info TraceChurnMode {} -> Info - -- TraceVerifyPeerSnapshot {} -> Info TraceForgetBigLedgerPeers {} -> Info diff --git a/cardano-submit-api/NOTICE b/cardano-submit-api/NOTICE index 3dddab23894..b63858587be 100644 --- a/cardano-submit-api/NOTICE +++ b/cardano-submit-api/NOTICE @@ -1,4 +1,4 @@ -Copyright 2019-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2019-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/cardano-submit-api/cardano-submit-api.cabal b/cardano-submit-api/cardano-submit-api.cabal index 0126b62bcf6..5345979492f 100644 --- a/cardano-submit-api/cardano-submit-api.cabal +++ b/cardano-submit-api/cardano-submit-api.cabal @@ -9,7 +9,7 @@ bug-reports: https://github.com/intersectmbo/cardano-node/issues license: Apache-2.0 license-files: LICENSE NOTICE -copyright: 2019-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2019-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: IOHK Engineering Team maintainer: operations@iohk.io category: Cardano, diff --git a/cardano-testnet/NOTICE b/cardano-testnet/NOTICE index eeb9f4e4dec..f09f988ce59 100644 --- a/cardano-testnet/NOTICE +++ b/cardano-testnet/NOTICE @@ -1,4 +1,4 @@ -Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/cardano-testnet/cardano-testnet.cabal b/cardano-testnet/cardano-testnet.cabal index 6a4eb37efb4..1a9a62e5cb6 100644 --- a/cardano-testnet/cardano-testnet.cabal +++ b/cardano-testnet/cardano-testnet.cabal @@ -4,7 +4,7 @@ name: cardano-testnet version: 10.0.0 synopsis: The cardano full node description: The cardano full node. -copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: IOHK maintainer: operations@iohk.io category: Cardano, diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/ProposeNewConstitution.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/ProposeNewConstitution.hs index 716c46c8ba9..9d677970c8c 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/ProposeNewConstitution.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/ProposeNewConstitution.hs @@ -157,6 +157,9 @@ hprop_ledger_events_propose_new_constitution = integrationWorkspace "propose-new , "--tx-file", stakeCertTxSignedFp ] + -- make sure that stake registration cert gets into a block + H.noteShowM_ $ waitForBlocks epochStateView 1 + -- Create constitution proposal guardRailScriptFp <- H.note $ work "guard-rail-script.plutusV3" H.writeFile guardRailScriptFp $ Text.unpack plutusV3Script diff --git a/cardano-tracer/CHANGELOG.md b/cardano-tracer/CHANGELOG.md index 46749090d83..7ecad637a02 100644 --- a/cardano-tracer/CHANGELOG.md +++ b/cardano-tracer/CHANGELOG.md @@ -1,5 +1,10 @@ # ChangeLog +## 0.3.1 (January 22, 2025) + +* Fix race condition when querying `NodeInfo` data point, occasionally resulting in fallback `NodeName`s instead of proper ones. +* Updated to `typed-protocols-0.3`. + ## 0.3 (September 26, 2024) * Fix the creation of empty logs. diff --git a/cardano-tracer/NOTICE b/cardano-tracer/NOTICE index 020cba08d98..131cd6faec5 100644 --- a/cardano-tracer/NOTICE +++ b/cardano-tracer/NOTICE @@ -1,4 +1,4 @@ -Copyright 2022-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2022-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/cardano-tracer/cardano-tracer.cabal b/cardano-tracer/cardano-tracer.cabal index 78c8e651187..1896fd4396c 100644 --- a/cardano-tracer/cardano-tracer.cabal +++ b/cardano-tracer/cardano-tracer.cabal @@ -1,12 +1,12 @@ cabal-version: 3.0 name: cardano-tracer -version: 0.3 +version: 0.3.1 synopsis: A service for logging and monitoring over Cardano nodes description: A service for logging and monitoring over Cardano nodes. category: Cardano, Trace, -copyright: 2022-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2022-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: IOHK maintainer: operations@iohk.io license: Apache-2.0 diff --git a/configuration/cardano/mainnet-p2p-toplogy.json b/configuration/cardano/mainnet-p2p-toplogy.json deleted file mode 100644 index 2c2d22807aa..00000000000 --- a/configuration/cardano/mainnet-p2p-toplogy.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "LocalRoots": { - "groups": [] - }, - "PublicRoots": [ - { - "publicRoots": { - "accessPoints": [ - { - "address": "relays-new.cardano-mainnet.iohk.io", - "port": 3001 - } - ], - "advertise": false - } - } - ] -} diff --git a/flake.lock b/flake.lock index 030b6061b50..fbc447f1e58 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1737030073, - "narHash": "sha256-Mdf9GfcJG2ehJM4yFkZKjTnOWCbutjAe7s+Z27fusA8=", + "lastModified": 1737566866, + "narHash": "sha256-TQbNlisnUz3RoMb/kc+d6FYET7Qbim+mMMJg76TpLC8=", "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "1013daa305ed2a6e5f50edf8141d4edce94c06bc", + "rev": "1206c99a450da9681fbe5c3a403cff58569a2ca8", "type": "github" }, "original": { diff --git a/nix/nixos/cardano-node-service.nix b/nix/nixos/cardano-node-service.nix index f7940299d43..1bd8c458736 100644 --- a/nix/nixos/cardano-node-service.nix +++ b/nix/nixos/cardano-node-service.nix @@ -26,6 +26,8 @@ let bootstrapPeers = cfg.bootstrapPeers; } // optionalAttrs (cfg.usePeersFromLedgerAfterSlot != null) { useLedgerAfterSlot = cfg.usePeersFromLedgerAfterSlot; + } // optionalAttrs (cfg.peerSnapshotFile i != null) { + peerSnapshotFile = cfg.peerSnapshotFile i; }; oldTopology = i: { @@ -717,6 +719,21 @@ in { else []; description = ''RTS profiling options''; }; + + peerSnapshotFile = mkOption { + type = funcToOr nullOrStr; + default = null; + example = i: "/etc/cardano-node/peer-snapshot-${toString i}.json"; + apply = x: if builtins.isFunction x then x else _: x; + description = '' + If set, cardano-node will load a peer snapshot file from the declared absolute path. + + The peer snapshot file contains a snapshot of big ledger peers taken at some arbitrary slot. + These are the largest pools that cumulatively hold 90% of total stake. + + A peer snapshot file can be generated with a `cardano-cli query ledger-peer-snapshot` command. + ''; + }; }; }; diff --git a/trace-dispatcher/CHANGELOG.md b/trace-dispatcher/CHANGELOG.md index c9eddf21b86..bfa9b033f18 100644 --- a/trace-dispatcher/CHANGELOG.md +++ b/trace-dispatcher/CHANGELOG.md @@ -1,5 +1,9 @@ # Revision history for trace-dispatcher +## 2.8.0 -- Jan 2025 +* Change dependency `ekg` to `ekg-wai`, replacing `snap-server` based web stack with `warp / wai`. +* Add `initForwardingDelayed` which allows for deferred start of forwarding after initialization, instead of tying both together. + ## 2.7.0 -- Sep 2024 * Add `docuResultsToMetricsHelptext` for JSON output of metrics docs; required by `cardano-node` command `trace-documentation --output-metric-help` diff --git a/trace-dispatcher/NOTICE b/trace-dispatcher/NOTICE index a91d98a78bf..eaf1b324b35 100644 --- a/trace-dispatcher/NOTICE +++ b/trace-dispatcher/NOTICE @@ -1,4 +1,4 @@ -Copyright 2020-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2020-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/trace-dispatcher/trace-dispatcher.cabal b/trace-dispatcher/trace-dispatcher.cabal index dfdab693e00..527edf566a4 100644 --- a/trace-dispatcher/trace-dispatcher.cabal +++ b/trace-dispatcher/trace-dispatcher.cabal @@ -1,13 +1,13 @@ cabal-version: 3.0 name: trace-dispatcher -version: 2.7.0 +version: 2.8.0 synopsis: Tracers for Cardano description: Package for development of simple and efficient tracers based on the arrow based contra-tracer package category: Cardano, Trace, -copyright: 2020-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2020-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: Juergen Nicklisch-Franken maintainer: operations@iohk.io license: Apache-2.0 diff --git a/trace-forward/CHANGELOG.md b/trace-forward/CHANGELOG.md index ff76eda49a7..50f0cfd1a2e 100644 --- a/trace-forward/CHANGELOG.md +++ b/trace-forward/CHANGELOG.md @@ -1,6 +1,6 @@ # ChangeLog -## NEXT +## 2.2.9 - Jan 2025 * Updated to `typed-protocols-0.3`. diff --git a/trace-forward/NOTICE b/trace-forward/NOTICE index eeb9f4e4dec..f09f988ce59 100644 --- a/trace-forward/NOTICE +++ b/trace-forward/NOTICE @@ -1,4 +1,4 @@ -Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/trace-forward/trace-forward.cabal b/trace-forward/trace-forward.cabal index d294e5aaf3b..bbdfdd61a70 100644 --- a/trace-forward/trace-forward.cabal +++ b/trace-forward/trace-forward.cabal @@ -1,13 +1,13 @@ cabal-version: 3.0 name: trace-forward -version: 2.2.8 +version: 2.2.9 synopsis: The forwarding protocols library for cardano node. description: The library providing typed protocols for forwarding different information from the cardano node to an external application. category: Cardano, Trace, -copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: IOHK maintainer: operations@iohk.io license: Apache-2.0 diff --git a/trace-resources/NOTICE b/trace-resources/NOTICE index c1189155b54..f63730a6301 100644 --- a/trace-resources/NOTICE +++ b/trace-resources/NOTICE @@ -1,4 +1,4 @@ -Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +Copyright 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/trace-resources/trace-resources.cabal b/trace-resources/trace-resources.cabal index 8147a1cabdd..2f7fa398c5b 100644 --- a/trace-resources/trace-resources.cabal +++ b/trace-resources/trace-resources.cabal @@ -6,7 +6,7 @@ synopsis: Package for tracing resources for linux, mac and windows description: Package for tracing resources for linux, mac and windows. category: Cardano, Trace, -copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2024 Intersect. +copyright: 2021-2023 Input Output Global Inc (IOG), 2023-2025 Intersect. author: Juergen Nicklisch-Franken maintainer: operations@iohk.io license: Apache-2.0