Releases: stacks-network/stacks-core
Release 3.1.0.0.6
This release contains several bugfixes and improvements in the stacks-node binary, 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.6.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.6.0.
Added
- The
BlockProposal
StackerDB message serialization struct now includes aserver_version
string, which represents the version of the node that the miner is using. (#5803) - Add
vrf_seed
to the/v3/sortitions
rpc endpoint
Changed
- Miner will stop waiting for signatures on a block if the Stacks tip advances (causing the block it had proposed to be invalid).
- Logging improvements:
- P2P logs now includes a reason for dropping a peer or neighbor
- Improvements to how a PeerAddress is logged (human readable format vs hex)
Fixed
- Error responses to /v2/transactions/fees are once again expressed as JSON (#4145).
What's Changed
- Merge 3.1.0.0.5 to develop by @wileyj in #5798
- Add default version to
version_string
function by @hstove in #5399 - CI: Generating the e2e test matrix by @kantai in #5763
- Fix: well-formed JSON error responses on /v2/fees/transaction by @jcnelson in #5793
- chore: extend the default
block_proposal_timeout
to 4 hours by @obycode in #5768 - CI: disable mutants on PRs by @kantai in #5809
- Add reorg_attempts_activity_timeout_ms config option and tenure_activity table to track miner activity by @jferrant in #5755
- Fix flake: shadow recovery by @kantai in #5808
- Fix: Wait until in nakamoto to shutdown 2.x block downloader #5676 by @jcnelson in #5735
- Adding block replay script to contrib/tools folder by @wileyj in #5804
- Feat/vrf seed in get sortition rpc endpoint by @hugocaillard in #5772
- feat: stop waiting for signatures if the chain tip advances by @obycode in #5801
- chore: Apply Clippy lints
derivable_impls
,eq_op
, andexpect_fun_call
by @jbencin in #5773 - Release Signer Alongside Node by @BowTiedDevOps in #5756
- Fix int_plus_one warnings by @jferrant in #5626
- Add DropReason and DropPeer structs to pass reason string to logs about Dropping a Neighbor by @jferrant in #5720
- feat: add versioned and backwards-compatible server version to block proposal by @hstove in #5803
- fix: signerDB index improvements by @hstove in #5811
- feat: add build-time git info by @hstove in #5579
- feat: add
tenure_extend_buffer_secs
signer config option by @obycode in #5816 - Issue tenure extend if incoming miner fails to mine by @jferrant in #5805
- Update release docs/dockerfile fixes by @wileyj in #5824
- fix: update versions.toml after merge by @hstove in #5826
- Add port to DropPeer by @jferrant in #5838
Full Changelog: 3.1.0.0.5...3.1.0.0.6
Release signer-3.1.0.0.6.0
This release contains several bugfixes and improvements in the stacks-node binary, 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.6.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.6.0.
Added
- Introduced the
reorg_attempts_activity_timeout_ms
configuration option for signers which is used to determine the length of time after the last block of a tenure is confirmed that an incoming miner's attempts to reorg it are considered valid miner activity. - Add signer configuration option
tenure_idle_timeout_buffer_secs
to specify the number of seconds of buffer the signer will add to its tenure extend time that it sends to miners. The idea is to allow for some clock skew between the miner and signers, preventing the case where the miner attempts to tenure extend too early.
Changed
- Increase default
block_proposal_timeout_ms
from 10 minutes to 4 hours. Until #5729 is implemented, there is no value in rejecting a late block from a miner, since a late block is better than no block at all. - Signers no longer view any block proposal by a miner in their DB as indicative of valid miner activity.
- Various index improvements to the signer's database to improve performance.
What's Changed
- Merge 3.1.0.0.5 to develop by @wileyj in #5798
- Add default version to
version_string
function by @hstove in #5399 - CI: Generating the e2e test matrix by @kantai in #5763
- Fix: well-formed JSON error responses on /v2/fees/transaction by @jcnelson in #5793
- chore: extend the default
block_proposal_timeout
to 4 hours by @obycode in #5768 - CI: disable mutants on PRs by @kantai in #5809
- Add reorg_attempts_activity_timeout_ms config option and tenure_activity table to track miner activity by @jferrant in #5755
- Fix flake: shadow recovery by @kantai in #5808
- Fix: Wait until in nakamoto to shutdown 2.x block downloader #5676 by @jcnelson in #5735
- Adding block replay script to contrib/tools folder by @wileyj in #5804
- Feat/vrf seed in get sortition rpc endpoint by @hugocaillard in #5772
- feat: stop waiting for signatures if the chain tip advances by @obycode in #5801
- chore: Apply Clippy lints
derivable_impls
,eq_op
, andexpect_fun_call
by @jbencin in #5773 - Release Signer Alongside Node by @BowTiedDevOps in #5756
- Fix int_plus_one warnings by @jferrant in #5626
- Add DropReason and DropPeer structs to pass reason string to logs about Dropping a Neighbor by @jferrant in #5720
- feat: add versioned and backwards-compatible server version to block proposal by @hstove in #5803
- fix: signerDB index improvements by @hstove in #5811
- feat: add build-time git info by @hstove in #5579
- feat: add
tenure_extend_buffer_secs
signer config option by @obycode in #5816 - Issue tenure extend if incoming miner fails to mine by @jferrant in #5805
- Update release docs/dockerfile fixes by @wileyj in #5824
- fix: update versions.toml after merge by @hstove in #5826
- Add port to DropPeer by @jferrant in #5838
Full Changelog: 3.1.0.0.5...signer-3.1.0.0.6.0
[DRAFT] Release 3.1.0.0.6-rc1
Merge pull request #5826 from stacks-network/fix/versions-file fix: update versions.toml after merge
[DRAFT] Release signer-3.1.0.0.6.0-rc1
Merge pull request #5826 from stacks-network/fix/versions-file fix: update versions.toml after merge
Release 3.1.0.0.5
This release contains several bugfixes and improvements in the stacks-node binary, 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.5.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.5.0.
Added
- Add miner configuration option
tenure_extend_cost_threshold
to specify the percentage of the tenure budget that must be spent before a time-based tenure extend is attempted - Add
dry_run
configuration option tostacks-signer
config toml. Dry run mode will
run the signer binary as if it were a registered signer. Instead of broadcasting
StackerDB
messages, it logsINFO
messages. Other interactions with thestacks-node
behave normally (e.g., submitting validation requests, submitting finished blocks). A
dry run signer will error out if the supplied key is actually a registered signer.
Changed
- Miner will include other transactions in blocks with tenure extend transactions (#5760)
- Add
block_rejection_timeout_steps
to miner configuration for defining rejections-based timeouts while waiting for signers response (#5705) - Miner will not issue a tenure extend until at least half of the block budget has been spent (#5757)
Fixed
- Miners who restart their nodes immediately before a winning tenure now correctly detect that
they won the tenure after their nodes restart (#5750).
What's Changed
- chore: don't log the contract source on deploy error by @obycode in #5736
- chore: Apply Clippy
vec_init_then_push
,map_clone
,map_entry
, anditer_*
lints by @jbencin in #5656 - Test: attempt to reduce flakiness in miner-forking test by @kantai in #5722
- chore: Apply Clippy lint
redundant_clone
by @jbencin in #5713 - Fix clippy::needless_borrow throughout stackslib by @jferrant in #5651
- fix:
cargo clippy-stacks
errors by @jbencin in #5746 - fixed race condition in tests assuming TEST_EVENT_OBSERVER_SKIP_RETRY… by @rdeioris in #5669
- chore: Apply Clippy lint
match_like_matches_macro
by @jbencin in #5744 - Apply
clippy::unnecesary_to_owned
andclippy::unwrap_or_default
fixes throughout stacks core by @jferrant in #5741 - chore: Apply Clippy lint
manual_inspect
by @jbencin in #5748 - chore(stacks-common): Remove unused imports and enable warning by @jbencin in #5633
- chore: Apply Clippy lint
collection_is_never_used
by @jbencin in #5654 - feat: allow other transactions with tenure extends by @obycode in #5760
- fix: always send pending block validation after receiving a block validation result by @hstove in #5766
- feat: implement dry-run mode for signer by @kantai in #5680
- deps: fix crate vulnerabilities by @rex4539 in #5730
- Fix: better win detection on restart by @kantai in #5752
- Test: fix some test flake in partial_tenure_forking by @kantai in #5769
- feat: do not issue a time-based tenure extend earlier than needed by @obycode in #5787
- fix: Disable flaky test
flash_blocks_on_epoch_3
by @jbencin in #5785 - Test: Refactor block waits by @kantai in #5784
- chore: Apply Clippy lints
single_match
andredundant_pattern_matching
by @jbencin in #5740 - Feat/block rejections timeout heuristic by @rdeioris in #5731
- update changelog for 3.1.0.0.5 by @wileyj in #5791
New Contributors
Full Changelog: 3.1.0.0.4...3.1.0.0.5
Release signer-3.1.0.0.5.0
This release contains several bugfixes and improvements in the stacks-node binary, 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.5.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.5.0.
Added
- Add miner configuration option
tenure_extend_cost_threshold
to specify the percentage of the tenure budget that must be spent before a time-based tenure extend is attempted - Add
dry_run
configuration option tostacks-signer
config toml. Dry run mode will
run the signer binary as if it were a registered signer. Instead of broadcasting
StackerDB
messages, it logsINFO
messages. Other interactions with thestacks-node
behave normally (e.g., submitting validation requests, submitting finished blocks). A
dry run signer will error out if the supplied key is actually a registered signer.
Changed
- Miner will include other transactions in blocks with tenure extend transactions (#5760)
- Add
block_rejection_timeout_steps
to miner configuration for defining rejections-based timeouts while waiting for signers response (#5705) - Miner will not issue a tenure extend until at least half of the block budget has been spent (#5757)
Fixed
- Miners who restart their nodes immediately before a winning tenure now correctly detect that
they won the tenure after their nodes restart (#5750).
What's Changed
- chore: don't log the contract source on deploy error by @obycode in #5736
- chore: Apply Clippy
vec_init_then_push
,map_clone
,map_entry
, anditer_*
lints by @jbencin in #5656 - Test: attempt to reduce flakiness in miner-forking test by @kantai in #5722
- chore: Apply Clippy lint
redundant_clone
by @jbencin in #5713 - Fix clippy::needless_borrow throughout stackslib by @jferrant in #5651
- fix:
cargo clippy-stacks
errors by @jbencin in #5746 - fixed race condition in tests assuming TEST_EVENT_OBSERVER_SKIP_RETRY… by @rdeioris in #5669
- chore: Apply Clippy lint
match_like_matches_macro
by @jbencin in #5744 - Apply
clippy::unnecesary_to_owned
andclippy::unwrap_or_default
fixes throughout stacks core by @jferrant in #5741 - chore: Apply Clippy lint
manual_inspect
by @jbencin in #5748 - chore(stacks-common): Remove unused imports and enable warning by @jbencin in #5633
- chore: Apply Clippy lint
collection_is_never_used
by @jbencin in #5654 - feat: allow other transactions with tenure extends by @obycode in #5760
- fix: always send pending block validation after receiving a block validation result by @hstove in #5766
- feat: implement dry-run mode for signer by @kantai in #5680
- deps: fix crate vulnerabilities by @rex4539 in #5730
- Fix: better win detection on restart by @kantai in #5752
- Test: fix some test flake in partial_tenure_forking by @kantai in #5769
- feat: do not issue a time-based tenure extend earlier than needed by @obycode in #5787
- fix: Disable flaky test
flash_blocks_on_epoch_3
by @jbencin in #5785 - Test: Refactor block waits by @kantai in #5784
- chore: Apply Clippy lints
single_match
andredundant_pattern_matching
by @jbencin in #5740 - Feat/block rejections timeout heuristic by @rdeioris in #5731
- update changelog for 3.1.0.0.5 by @wileyj in #5791
New Contributors
Full Changelog: 3.1.0.0.4...signer-3.1.0.0.5.0
Release 3.1.0.0.4
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
Release signer-3.1.0.0.4.0
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-node compatible with this release is 3.1.0.0.4, available at: https://github.com/stacks-network/stacks-core/releases/tag/3.1.0.0.4.
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...signer-3.1.0.0.4.0
Release 3.1.0.0.3
This release contains several bugfixes and improvements, such as the stacks-signer binary will no longer accept messages for blocks from different reward cycles.
This release is compatible with chainstate directories from 3.x.x.x.x.
Everyone running the stacks-signer
binary is strongly encouraged to upgrade to this release.
For signers, there is an additional configuration change that is recommended for this upgrade.
This change configures your signer to allow tenure extensions after 2 minutes of idle time, aligning with the behavior of the majority of other signers.
In the stacks-signer config TOML file, set the following value
tenure_idle_timeout_secs = 120
The version of stacks-signer compatible with this release is 3.1.0.0.3.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.3.0.
Added
- Add
tenure_timeout_secs
to the miner for determining when a time-based tenure extend should be attempted. - Added configuration option
block_proposal_max_age_secs
under[connection_options]
to prevent processing stale block proposals - Introduced the
block_proposal_max_age_secs
configuration option for signers, enabling them to automatically ignore block proposals that exceed the specified age in seconds.
Changed
- The RPC endpoint
/v3/block_proposal
no longer will evaluate block proposals more thanblock_proposal_max_age_secs
old - When a transaction is dropped due to replace-by-fee, the
/drop_mempool_tx
event observer payload now includesnew_txid
, which is the transaction that replaced this dropped transaction. When a transaction is dropped for other reasons,new_txid
isnull
. #5381 - Nodes will assume that all PoX anchor blocks exist by default, and stall initial block download indefinitely to await their arrival (#5502)
- Improvements to the stale signer cleanup logic: deletes the prior signer if it has no remaining unprocessed blocks in its database
- Signers now listen to new block events from the stacks node to determine whether a block has been successfully appended to the chain tip
Fixed
- Signers no longer accept messages for blocks from different reward cycles (#5662)
What's Changed
- [signer] Add block_proposal_max_age_secs signer configuration to drop old proposals without further processing by @jferrant in #5549
- fix: New lifetime warnings in Rust 1.83 by @jbencin in #5564
- chore: fix typo in log by @obycode in #5565
- Remove signers older than the current reward cycle if they have no more blocks to process by @jferrant in #5562
- Adding changelog for 3.1.0.0.2.x by @wileyj in #5571
- merge Release/3.1.0.0.2 to master by @wileyj in #5572
- fix: set epoch to 3.1 in Clarity DB by @obycode in #5561
- Fix p2p ci no tests errors by @jferrant in #5574
- feat: Add
--config
and--network
flags to severalstacks-inspect
subcommands by @jbencin in #5551 - Feat/miner self issued time based tenure extend by @jferrant in #5573
- Fix/ci no tests full genesis test by @jferrant in #5576
- Add clippy to CI by @jferrant in #5582
- Add SignerEvent::NewNakamotoBlock and do not update a block to GloballyAccepted until event arrives by @jferrant in #5516
- Fix/5502 by @jcnelson in #5544
- fix: remove DNS names from
peer_host
field by @obycode in #5604 - Fix/naka unlock events by @zone117x in #5597
- Add clarity and libsigner to clippy CI and fix all clippy warnings by @jferrant in #5592
- Do not process block validation responses for the wrong reward cycle by @jferrant in #5612
- Add stacks-common to clippy CI and fix errors by @jferrant in #5598
- Fix profile-sqlite feature build errors by @jferrant in #5623
- test: fix bitcoin test yaml by @obycode in #5603
- Fix all redundant_field_name warnings in stackslib by @jferrant in #5627
- update peer host to parse dns instead of ip by @ASuciuX in #5533
- Chore/standardized sample dir by @wileyj in #5594
- Fix unused_unit clippy warnings in stackslib by @jferrant in #5631
- feat: Nakamoto block support for
stacks-insepct try-mine
by @jbencin in #5584 - Fix all redundant-static-lifetimes clippy warnings by @jferrant in #5625
- chore: Remove unused deps found by
cargo udeps
by @jbencin in #5632 - chore: Apply Clippy lint
iter_with_drain
by @jbencin in #5641 - feat: event emitter will now emit new_txid in-case a tx replaces another by @hstove in #5605
- Fix clippy::inconsistent_digit_grouping warnings in stacks lib by @jferrant in #5636
- Fix clippy::needless_lifetimes warnings throughout stackslib by @jferrant in #5638
- Fix zero_prefixed_literal warnings by @jferrant in #5639
- Remove unnecessary casts throughout stackslib by @jferrant in #5624
- Filter out phantom txs from test_observer::parse_transaction fn by @jferrant in #5635
- Fix validation queue race condition in block approval vs validaiton submission by @jferrant in #5497
- Fix string to empty string comparison and len zero warnings by @jferrant in #5628
- chore: Apply new lints in Clippy 1.78 (version 2) by @jbencin in #5643
- chore: Apply Clippy lint
borrow_deref_ref
by @jbencin in #5648 - Fix mistaken 0 as u32 replacement with 0_u8 in delegate_stx.rs serial… by @jferrant in #5653
- Fix/use cargo workspace by @rdeioris in #5658
- Merge master to develop (3.1.0.0.2) via intermediary branch by @wileyj in #5607
- docs: update testnet configs with new epoch heights by @CharlieC3 in #5672
- Fix clippy::bind_instead_of_map, clippy::map_flatten, clippy::*map_identity throughout stackslib by @jferrant in #5652
- [node] Add "connections.block_proposal_max_age_secs" and ignore block proposals more than the configured amount by @jferrant in #5552
- Increased mining timeout in mock_mining and partial_tenure_fork integration tests by @rdeioris in #5670
- Fix/bitcoind forking test signerdb state by @jferrant in #5674
- fix: do not enable
testing
feature instacks-common
by @obycode in #5675 - Release Signer Alongside Node by @BowTiedDevOps in #5495
- Do not accept signatures, block proposals, or block responses for blocks from different reward cycles by @jferrant in #5662
- Revert "Release Signer Alongside Node" by @wileyj in #5681
- Update versioning for stacks-signer changelog in release branch by @wileyj in #5709
Full Changelog: 3.1.0.0.2...3.1.0.0.3
Release signer-3.1.0.0.3.0
This release contains several bugfixes and improvements, such as the stacks-signer binary will no longer accept messages for blocks from different reward cycles.
This release is compatible with chainstate directories from 3.x.x.x.x.
Everyone running the stacks-signer
binary is strongly encouraged to upgrade to this release.
For signers, there is an additional configuration change that is recommended for this upgrade.
This change configures your signer to allow tenure extensions after 2 minutes of idle time, aligning with the behavior of the majority of other signers.
In the stacks-signer config TOML file, set the following value
tenure_idle_timeout_secs = 120
The version of stacks-signer compatible with this release is 3.1.0.0.3.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.1.0.0.3.0.
Added
- Add
tenure_timeout_secs
to the miner for determining when a time-based tenure extend should be attempted. - Added configuration option
block_proposal_max_age_secs
under[connection_options]
to prevent processing stale block proposals - Introduced the
block_proposal_max_age_secs
configuration option for signers, enabling them to automatically ignore block proposals that exceed the specified age in seconds.
Changed
- The RPC endpoint
/v3/block_proposal
no longer will evaluate block proposals more thanblock_proposal_max_age_secs
old - When a transaction is dropped due to replace-by-fee, the
/drop_mempool_tx
event observer payload now includesnew_txid
, which is the transaction that replaced this dropped transaction. When a transaction is dropped for other reasons,new_txid
isnull
. #5381 - Nodes will assume that all PoX anchor blocks exist by default, and stall initial block download indefinitely to await their arrival (#5502)
- Improvements to the stale signer cleanup logic: deletes the prior signer if it has no remaining unprocessed blocks in its database
- Signers now listen to new block events from the stacks node to determine whether a block has been successfully appended to the chain tip
Fixed
- Signers no longer accept messages for blocks from different reward cycles (#5662)
What's Changed
- [signer] Add block_proposal_max_age_secs signer configuration to drop old proposals without further processing by @jferrant in #5549
- fix: New lifetime warnings in Rust 1.83 by @jbencin in #5564
- chore: fix typo in log by @obycode in #5565
- Remove signers older than the current reward cycle if they have no more blocks to process by @jferrant in #5562
- Fix p2p ci no tests errors by @jferrant in #5574
- feat: Add
--config
and--network
flags to severalstacks-inspect
subcommands by @jbencin in #5551 - Feat/miner self issued time based tenure extend by @jferrant in #5573
- Fix/ci no tests full genesis test by @jferrant in #5576
- Add clippy to CI by @jferrant in #5582
- Add SignerEvent::NewNakamotoBlock and do not update a block to GloballyAccepted until event arrives by @jferrant in #5516
- Fix/5502 by @jcnelson in #5544
- fix: remove DNS names from
peer_host
field by @obycode in #5604 - Fix/naka unlock events by @zone117x in #5597
- Add clarity and libsigner to clippy CI and fix all clippy warnings by @jferrant in #5592
- Add stacks-common to clippy CI and fix errors by @jferrant in #5598
- Fix profile-sqlite feature build errors by @jferrant in #5623
- test: fix bitcoin test yaml by @obycode in #5603
- Fix all redundant_field_name warnings in stackslib by @jferrant in #5627
- update peer host to parse dns instead of ip by @ASuciuX in #5533
- Chore/standardized sample dir by @wileyj in #5594
- Fix unused_unit clippy warnings in stackslib by @jferrant in #5631
- feat: Nakamoto block support for
stacks-insepct try-mine
by @jbencin in #5584 - Fix all redundant-static-lifetimes clippy warnings by @jferrant in #5625
- chore: Remove unused deps found by
cargo udeps
by @jbencin in #5632 - chore: Apply Clippy lint
iter_with_drain
by @jbencin in #5641 - feat: event emitter will now emit new_txid in-case a tx replaces another by @hstove in #5605
- Fix clippy::inconsistent_digit_grouping warnings in stacks lib by @jferrant in #5636
- Fix clippy::needless_lifetimes warnings throughout stackslib by @jferrant in #5638
- Fix zero_prefixed_literal warnings by @jferrant in #5639
- Remove unnecessary casts throughout stackslib by @jferrant in #5624
- Filter out phantom txs from test_observer::parse_transaction fn by @jferrant in #5635
- Fix validation queue race condition in block approval vs validaiton submission by @jferrant in #5497
- Fix string to empty string comparison and len zero warnings by @jferrant in #5628
- chore: Apply new lints in Clippy 1.78 (version 2) by @jbencin in #5643
- chore: Apply Clippy lint
borrow_deref_ref
by @jbencin in #5648 - Fix mistaken 0 as u32 replacement with 0_u8 in delegate_stx.rs serial… by @jferrant in #5653
- Fix/use cargo workspace by @rdeioris in #5658
- Merge master to develop (3.1.0.0.2) via intermediary branch by @wileyj in #5607
- docs: update testnet configs with new epoch heights by @CharlieC3 in #5672
- Fix clippy::bind_instead_of_map, clippy::map_flatten, clippy::*map_identity throughout stackslib by @jferrant in #5652
- [node] Add "connections.block_proposal_max_age_secs" and ignore block proposals more than the configured amount by @jferrant in #5552
- Increased mining timeout in mock_mining and partial_tenure_fork integration tests by @rdeioris in #5670
- Fix/bitcoind forking test signerdb state by @jferrant in #5674
- fix: do not enable
testing
feature instacks-common
by @obycode in #5675 - Release Signer Alongside Node by @BowTiedDevOps in #5495
- Do not accept signatures, block proposals, or block responses for blocks from different reward cycles by @jferrant in #5662
- Revert "Release Signer Alongside Node" by @wileyj in #5681
- Update versioning for stacks-signer changelog in release branch by @wileyj in #5708
Full Changelog: signer-3.1.0.0.2.1...signer-3.1.0.0.3.0