-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hello,
Stacks core developers have released Stacks Core version 3.4.0.0.2, available here:
https://github.com/stacks-network/stacks-core/releases/tag/3.4.0.0.2.
This release contains several bugfixes and improvements to the stacks-node and stacks-signer binaries, ensuring more consistent block production.
This release is compatible with chainstate directories from 3.4.x.x.x.
The version of stacks-signer compatible with this release is 3.4.0.0.2.0, available at:
https://github.com/stacks-network/stacks-core/releases/tag/signer-3.4.0.0.2.0.
Docker images have been published to GitHub Container Registry:
* stacks-core:
https://github.com/stacks-network/stacks-core/pkgs/container/stacks-core ```sh
docker pull
ghcr.io/stacks-network/stacks-core:3.4.0.0.2 ```
* stacks-signer:
https://github.com/stacks-network/stacks-core/pkgs/container/stacks-signer ```sh
docker pull
ghcr.io/stacks-network/stacks-signer:3.4.0.0.2.0 ```
This release is recommended for all Stacks node operators.
### Added
* Miners now track `failed_txid` from signer block rejections. When a blocking minority (>30%) of signers report the same transaction as failed, the miner excludes it from the next block proposal. A new `ProblematicTransaction` validation reject code distinguishes genuinely broken transactions (permanently blacklisted from the mempool) from context-dependent failures like deadline exceeded (excluded until a successful block only).
* Added some diagnostics data to a miner's block proposal StackerDB message. This data contains nothing confidential, only some information about the miner's view of the world. This may help with investigating issues where a miner keeps submitting blocks that are then rejected by signers.
* Added `error!`-level logging with `UNREACHABLE_ERROR_TRIGGERED` marker and `stacks_unreachable_errors_total` Prometheus counter when unreachable errors are hit during transaction processing ([#7046](
https://github.com/stacks-network/stacks-core/pull/7046))
* Add a helper script for creating changelog fragments.
* Add tests for handling of bad block commits (vtxindex=0, wrong parent).
* Signers now include a `failed_txid` field in block rejection messages, reporting which transaction caused block validation to fail. This allows miners to skip problematic transactions in subsequent proposals rather than repeatedly proposing blocks that will be rejected.
### Changed
* Optimized `SequenceData::retain_values` built-in from O(n²) to O(n)
* Renamed `SequenceData::retain_values` to `SequenceData::try_retain` and changed it to take `self` by value instead of `&mut self`
* **Breaking**: Removed duplicate `value` field from NFT and SmartContract observer event payloads. Use `raw_value` (hex-encoded Clarity value) instead.
* **Breaking**: Removed `result` field from block replay/simulate transaction responses. Use `result_hex` (hex-encoded Clarity value) instead.
* `BlockResponseData` version bumped from 4 to 5 to include the new `failed_txid` field. Older signers that don't send this field are handled gracefully via backwards-compatible deserialization.
* Remove unused `version_string` function (for building binary version) from `clarity` and `clarity-types` crates.
* Improved performance for `fold`, `map`, and `filter` Clarity functions
* Refactor to avoid the risk of panics when creating `ClarityName`s and similar
* Updated deprecated usage of `slog` macros and `GenericArray`
* Updates the PoX constants used in various test scenarios to ensure there are 3 blocks in the prepare phase, which is required for Nakamoto.
* Moved codec types and traits into a new `stacks-codec` crate, extracted from `stacks-common`
### Fixed
* Fix to clear ongoing block commits when a `send_transaction` call fails ([#6976](
https://github.com/stacks-network/stacks-core/pull/6976))
* Fixed `clarity-cli` to print errors to stderr and exit gracefully instead of panicking with a backtrace on invalid inputs.
* Fixed flakiness in Bitcoin integration tests due to shutdown timing.
* Fixed flakiness in `fuzzed_median_fee_rate_estimation_test` tests.
* Fixed flaky `miner_stackerdb_version_rollover` and `multiple_miners_mock_sign_epoch_25` integration tests by increasing polling frequency and extending the timeout in `wait_for_registered` and `wait_for_registered_both_reward_cycles`, and aligning `boot_to_epoch_25_reward_cycle` with `boot_to_epoch_3` (extended timeout plus mine-another-block recovery when the reward set isn't yet available)
* Fixed flakiness in `signer_waits_for_validation_before_signing` by waiting for state machine updates to prevent the signer from rejecting immediately.
* Fixed logical operator in tenure-start block validation to correctly reject blocks where either the coinbase or tenure-change transaction is in the wrong position, not only when both are wrong
* Fix duplicated binary name when running `stacks-signer --version` cli command
* Fixed an issue in the signer where it would return early if it detected a message from an unrecognized signer.
* Fixed flakiness in `check_capitulate_miner_view` test.
* When checking tenure change blocks, ensure there are no locally accepted blocks in the tenure, not just globally accepted blocks.
************************************************************************************************************************************************************************************
Stacks Core:
Git commit hash: 5db680a8811909a29b614b3b7f1646f1dc6eab45
SHA512SUMS:
b04269f688b987982f78d2b8783c87829b4de2693899b920dfb33ef17598645f91d765c40816b8d130b66578dfe639499da9af7328c49fb2507eabd34e72f3d3 linux-glibc-arm64.zip
2d8142ba61ff450b61970dc51ea923c21ba85114fda6a5f6d8c91599ccd3b676e14ae7a2a0edbb18d25a651eb7477af947ef77c7e391e1ea93ca5702f7a0ad32 linux-glibc-x64.zip
20c1de6f9f58d6ecc57d17065c7160724844e6358078b90351a447e73757f6cc4cccfdaf00822277a4d1cbf26630e6810226fea54a07a554676a9a0206bc3acd linux-musl-arm64.zip
55dd189ff3edc0f170d00b647a567954f33216dbd8c49a5beff063a4090ab5016a5ca1a1c3ed8dfb28b729a6e32195eebd76fad614c7a331c8b9fb09802e6041 linux-musl-x64.zip
c0955f3573666761b22aec626730e298877f755c4aeae3f6ff9bff6bd5d122322f35d5819b0848d242eb56176e57fc55250a4e3b733b0afdc32897819017ce86 macos-arm64.zip
23212b445ef940e7d00394b422a3bcc97d23909c2563561ce7276b1c5b192a7e4ece2d4e0da6e9f5d9d74fa190e5bd642fe6454c04376be70315be045dce1020 windows-x64.zip
************************************************************************************************************************************************************************************
Stacks Signer:
Git commit hash: 5db680a8811909a29b614b3b7f1646f1dc6eab45
SHA512SUMS:
4f18c2d5db2522143601e508e6a158da7b16777d56a2377af885380cc149ff8551b802ec8b8f61a2b0126f7ab3a0b872932bd28d7e2a1a092516a2f3bceebbec linux-glibc-arm64.zip
5ab041e5fab093f2d831c093cb30f0e613567af4968fa40785d37566e3f92ac18cf5a3d907e42ec7089e79a9907a5679521e430a0e64f5de5b259947cc9e38dc linux-glibc-x64.zip
56fd2f82be442d9dd94ebc3ccadccafb35c6f95d63d38d7bdd01ec9b010afe6d6cf76f6edf100d80b47e59bd72a1dce732e2c2fe66d671283f4bbb25fe9119a6 linux-musl-arm64.zip
678431e2313f3d3691d7cf104bc2bb33ef3754620113f912199af1c8e0b6235e3c367fcee569213e03df149df3a8336bbf7f7eb3d7229ff0d6e4b69aed7daa31 linux-musl-x64.zip
5c813d92c6db7c539e71fa66e44f6414c5a3a93dcfa02e39268d3e39fdfb59565a1d929391f725848665a4fb6400da831322e5ec5e7c2a0888d5e4eafc39536b macos-arm64.zip
f210d700bdb8803ab484777d8fb5180a8a5ea9da67e7deb48bd1d5c7754954f21c1a057a235fd437c1e4f635d7c4897e29b26a6f87b2e1ae8124e37c106cd6a6 windows-x64.zip
Best,
Jesse Wiley
Engineering Partner, Stacks Foundation
-----BEGIN PGP SIGNATURE-----
iQJFBAEBCgAvFiEEcyLAWCVQ3ogXwlXZge1cNguBENcFAmn5GTQRHGplc3NlQHN0
YWNrcy5vcmcACgkQge1cNguBENcdiQ//S8BfIFlspXP+JXpfZx+CYcus2mTP49vv
ajT0YxeEhrfD2HABDvMDVVT+oIq9nSYrwotCLRhFiqZOg8Ep1foSX6p2fOjH4LTE
gjgc18XDrJT06WuCFPGWF9x6JHdYYlEY1cYM1eX25dr0m2EkYkbl/BS3BP6t8YvZ
YbuHAcOql9zfSfZmZrLu0ycEIS/lR7WXytHZ4159z95OFRJ/mGbfJ3Q60UDe6Tni
1o6RAjTB5bypv0m2itoKXG+1vOE5mZombrVaA4g8ZpVj5y5wbXPKQ6YcTHKVVLBg
YlCbQR9kB+EsEoaCbx3lrzt7hQpT7/+iXjUrHQdfaentkqg4XSiUkAgjqXquGjd3
mW4kd1BAooAzLP8BkX93zLWpVDG0HYzkGq6XDlzCKUOg92odYCAvHWiv/jxWbq46
bFkjxmk2EAB15+uT0JFY4Dx94qSrtl2r43SJzoZlEL/FqfvTebCSbOQunl7FhctK
mU2dFuolPd/I+DMCflwONmoMckui+CFWPdjp8ZrMZeSxrcnWRLjjPseOZb7Nw6Qk
LtaVIs/wVDqVLZOK2ln+8D4pna/WPCAMFt55wNilrqQL37FDRB9FoRxDIHe7Q5qV
HR/I7YnhF92q1IP1DyDRRHr5T0VkGwBQIqaEFPW+2EQMxDTK9Lr1bPe319fzF/xX
KJWxWnze22c=
=e9jm
-----END PGP SIGNATURE-----