This release contains several bugfixes and improvements in both the stacks-signer and the stacks-node binaries, ensuring more consistent block production.
This release is compatible with chainstate directories from 3.x.x.x.x.
This is a required upgrade for miners and signers
The version of stacks-signer compatible with this release is 3.1.0.0.4.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.4.0.
Added
- The stacks-node miner now performs accurate tenure-extensions in certain bitcoin block production
cases: when a bitcoin block is produced before the previous bitcoin block's Stacks tenure started.
Previously, the miner had difficulty restarting their missed tenure and extending into the new
bitcoin block, leading to 1-2 bitcoin blocks of missed Stacks block production. - The event dispatcher now includes
consensus_hash
in the/new_block
and/new_burn_block
payloads. (#5677) - When a new block proposal is received while the signer is waiting for an existing proposal to be validated, the signer will wait until the existing block is done validating before submitting the new one for validating. (#5453)
- Introduced two new prometheus metrics:
stacks_signer_block_validation_latencies_histogram
: the validation_time_ms reported by the node when validating a block proposalstacks_signer_block_response_latencies_histogram
: the "end-to-end" time it takes for the signer to issue a block response
Changed
- When a miner reorgs the previous tenure due to a poorly timed block, it can now continue to build blocks on this new chain tip (#5691)
What's Changed
- Fix useless-vec warnings throughout stackslib by @jferrant in #5629
- chore: add allow(clippy::needless_as_bytes) for some Clarity codecs by @kantai in #5678
- feat: prevent multiple block proposal evals by @hstove in #5453
- feat: include consensus_hash in emitted events by @hstove in #5677
- chore: add consensus hash to signer's new proposal log by @obycode in #5685
- Fix get_latest_block_proposal function to return an err if no block proposals in list by @jferrant in #5689
- Fix clippy::unnecessary_sort_by throughout stacks core by @jferrant in #5703
- Fix clippy::unnecessary_unwrap throughout stacks core by @jferrant in #5701
- Fix: explicit burnchain checks in miner thread by @kantai in #5717
- [Signer] Make any miner's block proposal that passes initial checks count towards miner activity/validity by @jferrant in #5686
- chore: update default idle timeout to 120s by @obycode in #5706
- fix: disable
tests::epoch_25::microblocks_disabled
by @obycode in #5715 - Fix miner_forking test by @jferrant in #5707
- Fix collapsible_else_if clippy warnings in stackslib by @jferrant in #5630
- Release 3.1.0.0.3 to master by @obycode in #5721
- Fix clippy::redundant_closure throughout stackslib by @jferrant in #5645
- Fix clippy::useless_conversions throughout stacks core by @jferrant in #5700
- fix: Flaky integration test
simple_neon_integration
by @jbencin in #5726 - Fix flakiness in forked_tenure_is_ignored by @kantai in #5725
- Master -> develop by @obycode in #5724
- Don't re-run tests on
push
by @obycode in #5727 - Fix clippy::unnecessary_operation throughout stacks core by @jferrant in #5702
- Fix clippy::needless_borrowed_ref throughout by @jferrant in #5693
- Fix clippy::unnecessary_lazy_evaluations throughout stacks core by @jferrant in #5695
- Fix clippy::unnecessary_mut_passed throughout by @jferrant in #5698
- Fix clippy::unnecessary_literal_unwrap throughout stacks core by @jferrant in #5696
- feat: record validation and end-to-end response time in signer metrics by @hstove in #5664
- fix: increase timeout for waiting for signer set calculation by @obycode in #5716
- fix: prevent flaky check for responses by only checking threshold by @hstove in #5719
- Fix: correct burn view for miner block broadcast by @jcnelson in #5515
- Fix clippy::unnecessary_fold throughout stacks core by @jferrant in #5694
- Ensure miner builds on its own blocks when reorging due to badly timed blocks by @obycode in #5691
- fix: moving and adding to unreleased changelog by @hstove in #5732
- chore: Apply Clippy lint
needless_collect
by @jbencin in #5697 - chore: Apply Clippy format string lints by @jbencin in #5723
- chore: Apply Clippy
set_contains_or_insert
by @jbencin in #5699 - chore(clarity): Remove unused imports and enable warning by @jbencin in #5660
- Test flake: global_acceptance_depends_on_block_announcement by @kantai in #5733
- Chore/add clippy-stacks alias by @jferrant in #5734
- Refactor: StacksAddress and PrincipalData cleanup by @jcnelson in #5739
Full Changelog: 3.1.0.0.3...3.1.0.0.4