diff --git a/CHANGELOG.md b/CHANGELOG.md index b3f7efd30d..982677b54e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,30 @@ +## 2.26.1 (2024-12-03) +This is a minor point release. Upgrading is **strongly recommended**. + +To upgrade, pull the latest docker image, or download the binary and +restart the node with the same configuration file as before. + +### Changes +- Update to Pact 4.13.2 [`343b6e3`](https://github.com/kadena-io/chainweb-node/commit/343b6e3d9b2c771bb6a9b757a337fca1ec824e91) +- Add informative error messages to pact /send API [`bd5d6af`](https://github.com/kadena-io/chainweb-node/commit/bd5d6af959a986cc3cf690e0eb2180d62f78e51e) +- Increase P2P network resiliency to unreliable nodes [`f784622`](https://github.com/kadena-io/chainweb-node/commit/f7846228795ec93be82ae08ffce60ce4999e19f5) +- Compute P2P session count in O(1) [`cab1674`](https://github.com/kadena-io/chainweb-node/commit/cab1674ce9e25c2aba3690c219351eb7c049988a) +- Order P2P peer list by reliability [`c3130c9`](https://github.com/kadena-io/chainweb-node/commit/c3130c995dcb4cd3923d8d6771acd892cf5d18b1) +- Remove unnecessary performance optimisation in P2P Peer DB update [`b4a4db0`](https://github.com/kadena-io/chainweb-node/commit/b4a4db043fb2a7e1c7665e30f3e31d4f56f7e3ea) +- Compute P2P peer count using faster monomorphic function [`9a95738`](https://github.com/kadena-io/chainweb-node/commit/9a957388a0fac736abdb45c1cbd0d29694731247) +- Randomize P2P peer ordering [`a1198fc`](https://github.com/kadena-io/chainweb-node/commit/a1198fc61f6f50ccf8951be4e61d1967b340ed6c) +- Optimize P2P peer pruning algorithm via set deletion instead of set union [`75ab5b5`](https://github.com/kadena-io/chainweb-node/commit/75ab5b5adc4843084623cfcbba6cb6683a71ac6d) +- Delete unnecessary indices in the P2P peer db [`5f67ad3`](https://github.com/kadena-io/chainweb-node/commit/5f67ad35a44db0ef05ad77e5d705b3f964ee8b69) +- Set the HTTP Server header to distinguish between the P2P and Service REST APIs [`4ecc5a9`](https://github.com/kadena-io/chainweb-node/commit/4ecc5a999742e55d61c15d1c42af37362b4d4a23) +- Support dependency `hashable-1.5.*` [`e5a05c6`](https://github.com/kadena-io/chainweb-node/commit/e5a05c66201a841d20f50babf0b953b9d00594a4) +- Correct node shutdown message due to old Chainweb version [`c0312c1`](https://github.com/kadena-io/chainweb-node/commit/c0312c13a731b0cf8ac8227e9d18ee51442ac326) +- Remove redundant dependency on `sbv` [`8d00677`](https://github.com/kadena-io/chainweb-node/commit/8d00677d9f34107849b010d5cd27becdf2dc0852) +- Split `ea` out into its own executable [`0865649`](https://github.com/kadena-io/chainweb-node/commit/0865649fe6bf68e3ae213dbed522dd14b56ff39b) +- Split up all `cwtool` subcommands into their own executables. Only include necessary executables into the release. [`0cf12a2`](https://github.com/kadena-io/chainweb-node/commit/0cf12a2975d2b82bd26473d5ddf2dca014c4f5c7) +- Stop going through PactService to pre-insert check an empty tx batch [`19f7d63`](https://github.com/kadena-io/chainweb-node/commit/19f7d63cce2c5eed0d473047d4169417e61e1735) +- Update location of `base64-bytestring` dependency to Kadena's fork [`5290cf1`](https://github.com/kadena-io/chainweb-node/commit/5290cf1bc1144524789ce96988428d491090620b) +- Fix some typos in README.md [`7eea51a`](https://github.com/kadena-io/chainweb-node/commit/7eea51a5ad7b3f15abd6e24a6a6ea36f9868b688) + ## 2.26 (2024-11-13) This is a major version update. This release replaces all previous versions. diff --git a/cabal.project.freeze b/cabal.project.freeze index 16606ef967..c2f7623493 100644 --- a/cabal.project.freeze +++ b/cabal.project.freeze @@ -1,6 +1,6 @@ active-repositories: hackage.haskell.org:merge -constraints: any.Cabal ==3.12.1.0, - any.Cabal-syntax ==3.12.1.0, +constraints: any.Cabal ==3.10.2.0, + any.Cabal-syntax ==3.10.2.0, any.Decimal ==0.5.2, any.Diff ==0.5, any.Glob ==0.10.2, @@ -41,11 +41,11 @@ constraints: any.Cabal ==3.12.1.0, attoparsec -developer, any.attoparsec-aeson ==2.2.2.0, any.authenticate-oauth ==1.7, - any.auto-update ==0.2.2, + any.auto-update ==0.2.4, any.barbies ==2.1.1.0, any.base ==4.19.1.0, - any.base-compat ==0.14.0, - any.base-compat-batteries ==0.14.0, + any.base-compat ==0.14.1, + any.base-compat-batteries ==0.14.1, any.base-orphans ==0.9.2, any.base-unicode-symbols ==0.2.4.2, base-unicode-symbols +base-4-8 -old-base, @@ -70,14 +70,14 @@ constraints: any.Cabal ==3.12.1.0, any.bytebuild ==0.3.16.2, bytebuild -checked, any.byteorder ==1.0.4, - any.bytes ==0.17.3, + any.bytes ==0.17.4, any.byteslice ==0.2.13.2, byteslice +avoid-rawmemchr, any.bytesmith ==0.3.11.1, any.bytestring ==0.12.1.0, any.bytestring-builder ==0.10.8.2.0, bytestring-builder +bytestring_has_builder, - any.cabal-doctest ==1.0.10, + any.cabal-doctest ==1.0.11, any.cache ==0.1.3.0, any.call-stack ==0.4.0, any.case-insensitive ==1.2.1.0, @@ -90,7 +90,7 @@ constraints: any.Cabal ==3.12.1.0, chainweb-node -debug -ed25519 -ghc-flags, any.chainweb-storage ==0.1.0.0, any.character-ps ==0.1, - any.charset ==0.3.10, + any.charset ==0.3.11, any.chronos ==1.1.5.1, any.citeproc ==0.8.1.1, citeproc -executable -icu, @@ -104,7 +104,7 @@ constraints: any.Cabal ==3.12.1.0, any.commonmark ==0.2.6.1, any.commonmark-extensions ==0.2.5.5, any.commonmark-pandoc ==0.2.2.2, - any.comonad ==5.0.8, + any.comonad ==5.0.9, comonad +containers +distributive +indexed-traversable, any.concurrent-output ==1.10.21, any.conduit ==1.3.6, @@ -131,7 +131,7 @@ constraints: any.Cabal ==3.12.1.0, any.cryptohash-sha1 ==0.11.101.0, any.crypton ==1.0.1, crypton -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq +support_pclmuldq +support_rdrand -support_sse +use_target_attributes, - any.crypton-connection ==0.4.2, + any.crypton-connection ==0.4.3, any.crypton-x509 ==1.7.7, any.crypton-x509-store ==1.6.9, any.crypton-x509-system ==1.6.7, @@ -140,6 +140,7 @@ constraints: any.Cabal ==3.12.1.0, cryptonite -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq -support_pclmuldq +support_rdrand -support_sse +use_target_attributes, any.cuckoo ==0.3.1, cuckoo -mwc-random -pcg-random, + cwtools -debug -ed25519 -ghc-flags -remote-db, any.data-bword ==0.1.0.2, any.data-default ==0.7.1.3, any.data-default-class ==0.1.2.2, @@ -152,15 +153,13 @@ constraints: any.Cabal ==3.12.1.0, any.dec ==0.0.6, any.deepseq ==1.5.0.0, any.dense-linear-algebra ==0.1.0.0, - any.deriving-compat ==0.6.6, - deriving-compat +base-4-9 +new-functor-classes +template-haskell-2-11, + any.deriving-compat ==0.6.7, any.digest ==0.0.2.1, digest -have_arm64_crc32c -have_builtin_prefetch -have_mm_prefetch -have_sse42 -have_strong_getauxval -have_weak_getauxval +pkg-config, any.digraph ==0.3.0, any.direct-sqlite ==2.3.29, direct-sqlite +dbstat +fulltextsearch +haveusleep +json1 -mathfunctions -systemlib +urifilenames, - any.directory ==1.3.9.0, - directory +os-string, + any.directory ==1.3.8.1, any.distributive ==0.6.2.1, distributive +semigroups +tagged, any.djot ==0.1.2.2, @@ -181,10 +180,7 @@ constraints: any.Cabal ==3.12.1.0, any.extra ==1.7.16, any.fast-logger ==3.2.5, any.file-embed ==0.0.16.0, - any.file-io ==0.1.4, - file-io +os-string, - any.filepath ==1.5.4.0, - filepath -cpphs, + any.filepath ==1.4.200.1, any.fingertree ==0.1.5.0, any.finite-typelits ==0.2.1.0, any.free ==5.2, @@ -203,7 +199,7 @@ constraints: any.Cabal ==3.12.1.0, any.groups ==0.5.3, any.growable-vector ==0.1, any.haddock-library ==1.11.0, - any.half ==0.3.1, + any.half ==0.3.2, any.happy ==2.1.3, any.happy-lib ==2.1.3, any.hashable ==1.5.0.0, @@ -211,11 +207,10 @@ constraints: any.Cabal ==3.12.1.0, any.hashes ==0.3.0, hashes -benchmark-cryptonite -openssl-use-pkg-config -test-cryptonite +with-openssl, any.haskeline ==0.8.2.1, - haskeline +examples +terminfo, any.haskell-lexer ==1.1.2, any.haskell-src-exts ==1.23.1, any.haskell-src-meta ==0.8.14, - any.heaps ==0.4, + any.heaps ==0.4.1, any.hedgehog ==1.5, any.hourglass ==0.2.12, any.hsc2hs ==0.68.10, @@ -229,7 +224,7 @@ constraints: any.Cabal ==3.12.1.0, any.http-media ==0.8.1.1, any.http-semantics ==0.3.0, any.http-types ==0.12.4, - any.http2 ==5.3.6, + any.http2 ==5.3.9, http2 -devel -h2spec, any.indexed-list-literals ==0.2.1.3, any.indexed-profunctors ==0.1.1.1, @@ -239,7 +234,7 @@ constraints: any.Cabal ==3.12.1.0, any.integer-gmp ==1.1, any.integer-logarithms ==1.0.3.1, integer-logarithms -check-bounds +integer-gmp, - any.invariant ==0.6.3, + any.invariant ==0.6.4, any.iproute ==1.7.15, any.ipynb ==0.2, any.ixset-typed ==0.5.1.0, @@ -249,8 +244,6 @@ constraints: any.Cabal ==3.12.1.0, any.lens ==5.3.2, lens -benchmark-uniplate -dump-splices +inlining -j +test-hunit +test-properties +test-templates +trustworthy, any.lens-aeson ==1.2.3, - any.libBF ==0.6.8, - libBF -system-libbf, any.libyaml ==0.1.4, libyaml -no-unicode -system-libyaml, any.libyaml-clib ==0.2.5, @@ -268,7 +261,7 @@ constraints: any.Cabal ==3.12.1.0, massiv -unsafe-checks, any.math-functions ==0.3.4.4, math-functions +system-erf +system-expm1, - any.megaparsec ==9.6.1, + any.megaparsec ==9.7.0, megaparsec -dev, any.memory ==0.18.0, memory +support_bytestring +support_deepseq, @@ -289,7 +282,7 @@ constraints: any.Cabal ==3.12.1.0, mwc-random -benchpapi, any.natural-arithmetic ==0.2.1.0, any.neat-interpolation ==0.5.1.4, - any.network ==3.2.6.0, + any.network ==3.2.7.0, network -devel, any.network-byte-order ==0.1.7, any.network-control ==0.1.3, @@ -333,7 +326,7 @@ constraints: any.Cabal ==3.12.1.0, any.primitive-addr ==0.1.0.3, any.primitive-offset ==0.2.0.1, any.primitive-unlifted ==2.1.0.0, - any.process ==1.6.25.0, + any.process ==1.6.18.0, any.profunctors ==5.6.2, any.psqueues ==0.2.8.0, any.pvar ==1.0.0.0, @@ -341,8 +334,8 @@ constraints: any.Cabal ==3.12.1.0, any.ralist ==0.4.0.0, any.random ==1.2.1.2, any.recv ==0.1.0, - any.reducers ==3.12.4, - any.reflection ==2.1.8, + any.reducers ==3.12.5, + any.reflection ==2.1.9, reflection -slow +template-haskell, any.regex ==1.1.0.2, any.regex-base ==0.94.0.2, @@ -362,7 +355,6 @@ constraints: any.Cabal ==3.12.1.0, any.safe ==0.3.21, any.safe-exceptions ==0.1.7.4, any.safecopy ==0.10.4.2, - any.sbv ==9.2, any.scheduler ==2.0.0.1, any.scientific ==0.3.8.0, scientific -integer-simple, @@ -412,7 +404,7 @@ constraints: any.Cabal ==3.12.1.0, any.strict ==0.5.1, any.strict-concurrency ==0.2.4.3, any.syb ==0.7.2.4, - any.tagged ==0.8.8, + any.tagged ==0.8.9, tagged +deepseq +transformers, any.tagsoup ==0.14.8, any.tasty ==1.5.2, @@ -437,19 +429,19 @@ constraints: any.Cabal ==3.12.1.0, text-rope -debug, any.text-short ==0.1.6, text-short -asserts, - any.th-abstraction ==0.7.0.0, - any.th-compat ==0.1.5, - any.th-expand-syns ==0.4.11.0, - any.th-lift ==0.8.5, + any.th-abstraction ==0.7.1.0, + any.th-compat ==0.1.6, + any.th-expand-syns ==0.4.12.0, + any.th-lift ==0.8.6, any.th-lift-instances ==0.1.20, - any.th-orphans ==0.13.15, + any.th-orphans ==0.13.16, any.th-reify-many ==0.1.10, any.these ==1.2.1, any.time ==1.12.2, any.time-compat ==1.9.7, any.time-locale-compat ==0.1.1.5, time-locale-compat +old-locale, - any.time-manager ==0.1.1, + any.time-manager ==0.2.1, any.tls ==2.1.5, tls -devel, any.tls-session-manager ==0.0.7, @@ -475,8 +467,7 @@ constraints: any.Cabal ==3.12.1.0, any.unicode-transforms ==0.4.0.1, unicode-transforms -bench-show -dev -has-icu -has-llvm -use-gauge, any.uniplate ==1.6.13, - any.unix ==2.8.5.1, - unix +os-string, + any.unix ==2.8.4.0, any.unix-compat ==0.7.3, any.unix-time ==0.4.16, any.unlifted ==0.2.2.0, @@ -492,7 +483,7 @@ constraints: any.Cabal ==3.12.1.0, vault +useghc, any.vector ==0.13.2.0, vector +boundschecks -internalchecks -unsafechecks -wall, - any.vector-algorithms ==0.9.0.2, + any.vector-algorithms ==0.9.0.3, vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks, any.vector-binary-instances ==0.2.5.2, any.vector-sized ==1.6.1, @@ -509,9 +500,9 @@ constraints: any.Cabal ==3.12.1.0, any.wai-logger ==2.5.0, any.wai-middleware-throttle ==0.3.0.1, any.wai-middleware-validation ==0.1.0.2, - any.warp ==3.4.4, + any.warp ==3.4.7, warp +allow-sendfilefd -network-bytestring -warp-debug +x509, - any.warp-tls ==3.4.11, + any.warp-tls ==3.4.12, any.wherefrom-compat ==0.1.1.1, any.wide-word ==0.1.6.0, any.witherable ==0.5, @@ -531,4 +522,4 @@ constraints: any.Cabal ==3.12.1.0, zip-archive -executable, any.zlib ==0.7.1.0, zlib -bundled-c-zlib +non-blocking-ffi +pkg-config -index-state: hackage.haskell.org 2024-11-18T20:13:32Z +index-state: hackage.haskell.org 2024-12-06T18:18:35Z diff --git a/chainweb.cabal b/chainweb.cabal index 98e3f2fbf2..b06fccd0c9 100644 --- a/chainweb.cabal +++ b/chainweb.cabal @@ -1,7 +1,7 @@ cabal-version: 3.8 name: chainweb -version: 2.26 +version: 2.26.1 synopsis: A Proof-of-Work Parallel-Chain Architecture for Massive Throughput description: A Proof-of-Work Parallel-Chain Architecture for Massive Throughput. homepage: https://github.com/kadena-io/chainweb diff --git a/cwtools/cwtools.cabal b/cwtools/cwtools.cabal index 99fcaf8781..f78ac423af 100644 --- a/cwtools/cwtools.cabal +++ b/cwtools/cwtools.cabal @@ -1,7 +1,7 @@ cabal-version: 3.8 name: cwtools -version: 2.26 +version: 2.26.1 synopsis: A collection of various tools for Chainweb users and developers. description: A collection of various tools for Chainweb users and developers. homepage: https://github.com/kadena-io/chainweb diff --git a/node/chainweb-node.cabal b/node/chainweb-node.cabal index b279995c6a..cf708d6789 100644 --- a/node/chainweb-node.cabal +++ b/node/chainweb-node.cabal @@ -1,7 +1,7 @@ cabal-version: 3.8 name: chainweb-node -version: 2.26 +version: 2.26.1 synopsis: A Proof-of-Work Parallel-Chain Architecture for Massive Throughput description: A Proof-of-Work Parallel-Chain Architecture for Massive Throughput. homepage: https://github.com/kadena-io/chainweb diff --git a/src/Chainweb/Sync/WebBlockHeaderStore.hs b/src/Chainweb/Sync/WebBlockHeaderStore.hs index e2b18b59a9..887e669996 100644 --- a/src/Chainweb/Sync/WebBlockHeaderStore.hs +++ b/src/Chainweb/Sync/WebBlockHeaderStore.hs @@ -252,11 +252,11 @@ getBlockPayload s candidateStore priority maybeOrigin h = do pullOrigin _ k Nothing = do logfun Debug $ taskMsg k "no origin" return Nothing - pullOrigin _ k (Just origin) = do + pullOrigin bh k (Just origin) = do let originEnv = setResponseTimeout pullOriginResponseTimeout $ peerInfoClientEnv mgr origin logfun Debug $ taskMsg k "lookup origin" !r <- trace traceLogfun (traceLabel "pullOrigin") k 0 - $ runClientM (payloadClient v cid k Nothing) originEnv + $ runClientM (payloadClient v cid k (Just bh)) originEnv case r of (Right !x) -> do logfun Debug $ taskMsg k "received from origin" @@ -268,11 +268,11 @@ getBlockPayload s candidateStore priority maybeOrigin h = do -- | Query a block payload via the task queue -- queryPayloadTask :: BlockHeight -> BlockPayloadHash -> IO (Task ClientEnv PayloadData) - queryPayloadTask _ k = newTask (sshow k) priority $ \logg env -> do + queryPayloadTask bh k = newTask (sshow k) priority $ \logg env -> do logg @T.Text Debug $ taskMsg k "query remote block payload" let taskEnv = setResponseTimeout taskResponseTimeout env !r <- trace traceLogfun (traceLabel "queryPayloadTask") k (let Priority i = priority in i) - $ runClientM (payloadClient v cid k Nothing) taskEnv + $ runClientM (payloadClient v cid k (Just bh)) taskEnv case r of (Right !x) -> do logg @T.Text Debug $ taskMsg k "received remote block payload"