Releases: stacks-network/stacks-core
Release signer-3.2.0.0.0.0
This release implements the 3.2 Stacks consensus rules which activates at Bitcoin block 907,740. For more details see SIP-031.
This is a required upgrade
- Activation is estimated for July 29th, 2025 around 1800 UTC, or Bitcoin block
907,740. - Upgrading after Bitcoin block
907,740will require a genesis sync.
This release is compatible with chainstate directories from 3.x.x.x.x.
The version of stacks-node compatible with this release is 3.2.0.0.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/3.2.0.0.0.
Note: This version of the stacks-signer (3.2.0.0.0.0) requires stacks-node 3.2.0.0.0 as it contains a DB schema change.
Added
- Added
infologs to the signer to provide more visibility into the block approval/rejection status - Introduced
capitulate_miner_view_timeout_secs: the duration (in seconds) for the signer to wait between updating the local state machine viewpoint and capitulating to other signers' miner views. - Added codepath to enable signers to evaluate block proposals and miner activity against global signer state for improved consistency and correctness. Currently feature gated behind the
SUPPORTED_SIGNER_PROTOCOL_VERSION
Changed
- Do not count both a block acceptance and a block rejection for the same signer/block. Also ignore repeated responses (mainly for logging purposes).
- Database schema updated to version 16
Release 3.1.0.0.13
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.x.x.x.x.
The version of stacks-signer compatible with this release is 3.1.0.0.13.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.13.0.
Added
- Added a new RPC endpoint
/v3/healthto query the node's health status. The endpoint returns a 200 status code with relevant synchronization information (including the node's current Stacks tip height, the maximum Stacks tip height among its neighbors, and the difference between these two). A user can use thedifference_from_max_peervalue to decide what is a good threshold for them before considering the node out of sync. The endpoint returns a 500 status code if the query cannot retrieve viable data.
- Improve prometheus metrics to gain more insights into the current state of the mempool
-stacks_node_miner_stop_reason_total: Counts the number of times the miner stopped mining due to various reasons. - Always report the number of transactions mined in the last attempt, even if there were 0
- Added a new option
--hex-file <file_path>toblockstack-cli contract-callcommand, that allows to pass a serialized Clarity value by file. - Added a new option
--postcondition-mode [allow, deny]toblockstack-cli publishcommand, to set the post-condition mode to allow or deny on the transaction (default is deny)
Changed
- Changed default mempool walk strategy to
NextNonceWithHighestFeeRate
Fixed
- Fixed an issue that prevented the correct usage of anchor mode options (
--microblock-only,--block-only) when usingblockstack-cli publishcommand. - Fix several bugs in the mock-miner that caused it to fail to mine blocks in certain conditions
Release signer-3.1.0.0.13.0
This release contains several bugfixes and improvements to the stacks-signer binary, ensuring more consistent block production.
This release is compatible with chainstate directories from 3.x.x.x.x.
The version of stacks-node compatible with this release is 3.1.0.0.13, available at: https://github.com/stacks-network/stacks-core/releases/tag/3.1.0.0.13.
Note: This version of the stacks-signer (3.1.0.0.13.0) requires stacks-node 3.1.0.0.13 as it contains a DB schema change and is not backwards compatible with previous releases.
Changed
- Database schema update (requires stacks-node >= 3.1.0.0.13)
Release 3.1.0.0.12
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.x.x.x.x.
The version of stacks-signer compatible with this release is 3.1.0.0.12.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.12.0.
Added
- Document missing config structs
- Document MinerConfig parameters
- Document BurnchainConfig parameters
- Document NodeConfig parameters
Changed
get_fresh_random_neighborsto include allowed neigbors- Logging improvements and cleanup
- Move serde serializers to stacks_common
- Depend on clarity backing store interface
- Updated
./docs/event-dispacher.md
Fixed
- Handle Bitcoin reorgs during Stacks tenure extend
Release signer-3.1.0.0.12.0
This release contains several bugfixes and improvements to the stacks-signer binary, ensuring more consistent block production.
This release is compatible with chainstate directories from 3.x.x.x.x.
The version of stacks-node compatible with this release is 3.1.0.0.12, available at: https://github.com/stacks-network/stacks-core/releases/tag/3.1.0.0.12.
Changed
- Refactor / cleanup signerDB migrations code
- Signers should not infinitely loop when pushing a block to stacks-node
- Logging improvements and cleanup
Fixed
- Fix
capitulate_miner_viewso stacks-node won't swap between multiple miners - Mark current miner as invalid on capitulation
- Fix flaky
miner_recovers_when_broadcast_block_delay_across_tenures_occurstest
Release 3.1.0.0.11
This is an urgent hotfix release
The bug itself actually goes back to 2020 and has to do with misbehavior in the stacks-node's mempool syncing logic which causes some nodes to return improper messages in response to RPC calls used by normal mempool syncing.
Stacks-nodes who invoke that RPC call have misbehaving logic which causes their networking to become unresponsive, which hasn't been an issue until there was a lot more data getting run through some recent blocks.
A Deeper post-mortem will be released after full resolution as well.
This release is compatible with chainstate directories from 3.x.x.x.x.
The version of stacks-signer compatible with this release is 3.1.0.0.11.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.11.0.
Added
- Hotfix for p2p stack misbehavior in mempool syncing conditions
Release signer-3.1.0.0.11.0
This is an urgent hotfix release
The bug itself actually goes back to 2020 and has to do with misbehavior in the stacks-node's mempool syncing logic which causes some nodes to return improper messages in response to RPC calls used by normal mempool syncing.
Stacks-nodes who invoke that RPC call have misbehaving logic which causes their networking to become unresponsive, which hasn't been an issue until there was a lot more data getting run through some recent blocks.
A Deeper post-mortem will be released after full resolution as well.
This release is compatible with chainstate directories from 3.x.x.x.x.
The version of stacks-core compatible with this release is 3.1.0.0.11, available at: https://github.com/stacks-network/stacks-core/releases/tag/3.1.0.0.11.
Added
- Hotfix for p2p stack misbehavior in mempool syncing conditions
Release 3.1.0.0.10
This release primarily contains improvements to the P2P system, ensuring more consistent block production.
This release is compatible with chainstate directories from 3.x.x.x.x.
The version of stacks-signer compatible with this release is 3.1.0.0.10.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.10.0.
Added
- Persisted tracking of StackerDB slot versions for mining. This improves miner p2p performance.
Release signer-3.1.0.0.10.0
This release primarily contains improvements to the P2P system, ensuring more consistent block production.
This release is compatible with chainstate directories from 3.x.x.x.x.
The version of stacks-core compatible with this release is 3.1.0.0.10, available at: https://github.com/stacks-network/stacks-core/releases/tag/3.1.0.0.10.
Added
- Persisted tracking of StackerDB slot versions. This improves signer p2p performance.
Release 3.1.0.0.9
This release contains several bugfixes and improvements in the stacks-node and stacks-signer binaries, ensuring more consistent block production.
Notably, there are several performance improvements in this release which improve block processing (sync) time considerably.
This release is compatible with chainstate directories from 3.x.x.x.x.
The version of stacks-signer compatible with this release is 3.1.0.0.9.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.9.0.
Added
- Added field
vm_errorto EventObserver transaction outputs - Added new
ValidateRejectCodevalues to the/v3/block_proposalendpoint - Added
StateMachineUpdateContent::V1to support a vector ofStacksTransactionexpected to be replayed in subsequent Stacks blocks - Include a reason string in the transaction receipt when a transaction is rolled back due to a post-condition. This should help users in understanding what went wrong.
Changed
- Reduce the default
block_rejection_timeout_stepsconfiguration so that miners will retry faster when blocks fail to reach 70% approved or 30% rejected. - Added index for
next_ready_nakamoto_block()which improves block processing performance. - Added a new field,
parent_burn_block_hash, to the payload that is included in the/new_burn_blockevent observer payload.
Fixed
- Fix regression in mock-mining, allowing the mock miner to continue mining blocks throughout a tenure instead of failing after mining the tenure change block.