This release resolves a critical vulnerability and all node operators are strongly encouraged to upgrade
This release contains several bugfixes and improvements in 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.2.0.0.2.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.2.0.0.2.0.
Note: blockstack-cli
binary has been renamed to stacks-cli
from this release forward.
Added
- Renamed
clarity-serialization
toclarity-types
. - Add
stackerdb_timeout_secs
to miner config for limiting duration of StackerDB HTTP requests. - When determining a global transaction replay set, the state evaluator now uses a longest-common-prefix algorithm to find a replay set in the case where a single replay set has less than 70% of signer weight.
- New endpoints /v3/tenures/blocks/, /v3/tenures/blocks/hash, /v3/tenures/blocks/height allowing retrieving the list of stacks blocks from a burn block
- New authenticated endpoint /v3/block/replay to replay the execution of any Nakamoto block in the chain (useful for validation, simulation, getting events...)
- Creates epoch 3.3 and costs-4 in preparation for a hardfork to activate Clarity 4
- Adds support for new Clarity 4 builtins (not activated until epoch 3.3):
contract-hash?
current-contract
block-time
to-ascii?
- Added
contract_cost_limit_percentage
to the miner config file — sets the percentage of a block’s execution cost at which, if a large non-boot contract call would cause a BlockTooBigError, the miner will stop adding further non-boot contract calls and only include STX transfers and boot contract calls for the remainder of the block.
Changed
- Clarity errors pertaining to syntax binding errors have been made more
expressive (#6337) - Removed affirmation maps logic throughout, upgrading chainstate DB schema to 11 and burnchain DB schema to 3 (#6314)
Fixed
- When running
stacks-inspect decode-tx
, print the correct version of the address (mainnet or testnet) based on the transaction passed in - When a contract deploy is analyzed, it will no longer throw a
CostError
when the contract contains an undefined top-level variable. Instead, it will throw aUndefinedVariable
error.