Skip to content

Commit 0deeebb

Browse files
authored
Merge branch 'develop' into chore/remove-unused-imports-stacks-common
2 parents 7e7a381 + 619c2fe commit 0deeebb

File tree

151 files changed

+3371
-2610
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

151 files changed

+3371
-2610
lines changed

.github/workflows/bitcoin-tests.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ jobs:
5454
# - tests::neon_integrations::size_overflow_unconfirmed_microblocks_integration_test
5555
# - tests::neon_integrations::size_overflow_unconfirmed_stream_microblocks_integration_test
5656
# - tests::neon_integrations::runtime_overflow_unconfirmed_microblocks_integration_test
57+
# - tests::epoch_25::microblocks_disabled
5758
# Disable this flaky test. Microblocks are no longer supported anyways.
5859
# - tests::neon_integrations::microblock_large_tx_integration_test_FLAKY
5960
- tests::neon_integrations::miner_submit_twice
@@ -80,7 +81,6 @@ jobs:
8081
- tests::neon_integrations::bitcoin_reorg_flap
8182
- tests::neon_integrations::bitcoin_reorg_flap_with_follower
8283
- tests::neon_integrations::start_stop_bitcoind
83-
- tests::epoch_25::microblocks_disabled
8484
- tests::should_succeed_handling_malformed_and_valid_txs
8585
- tests::nakamoto_integrations::simple_neon_integration
8686
- tests::nakamoto_integrations::flash_blocks_on_epoch_3
@@ -132,13 +132,17 @@ jobs:
132132
- tests::signer::v0::block_commit_delay
133133
- tests::signer::v0::continue_after_fast_block_no_sortition
134134
- tests::signer::v0::block_validation_response_timeout
135+
- tests::signer::v0::block_validation_pending_table
136+
- tests::signer::v0::new_tenure_while_validating_previous_scenario
135137
- tests::signer::v0::tenure_extend_after_bad_commit
136138
- tests::signer::v0::block_proposal_max_age_rejections
137139
- tests::signer::v0::global_acceptance_depends_on_block_announcement
138140
- tests::signer::v0::no_reorg_due_to_successive_block_validation_ok
139141
- tests::signer::v0::incoming_signers_ignore_block_proposals
140142
- tests::signer::v0::outgoing_signers_ignore_block_proposals
141143
- tests::signer::v0::injected_signatures_are_ignored_across_boundaries
144+
- tests::signer::v0::block_proposal_timeout
145+
- tests::signer::v0::rejected_blocks_count_towards_miner_validity
142146
- tests::nakamoto_integrations::burn_ops_integration_test
143147
- tests::nakamoto_integrations::check_block_heights
144148
- tests::nakamoto_integrations::clarity_burn_state

.github/workflows/ci.yml

Lines changed: 16 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -112,19 +112,10 @@ jobs:
112112
## - commit to either (development, master) branch
113113
create-cache:
114114
if: |
115-
needs.check-release.outputs.is_release == 'true' || (
116-
github.event_name == 'workflow_dispatch' ||
117-
github.event_name == 'pull_request' ||
118-
github.event_name == 'merge_group' ||
119-
(
120-
contains('
121-
refs/heads/master
122-
refs/heads/develop
123-
refs/heads/next
124-
', github.event.pull_request.head.ref) &&
125-
github.event_name == 'push'
126-
)
127-
)
115+
needs.check-release.outputs.is_release == 'true' ||
116+
github.event_name == 'workflow_dispatch' ||
117+
github.event_name == 'pull_request' ||
118+
github.event_name == 'merge_group'
128119
name: Create Test Cache
129120
needs:
130121
- rustfmt
@@ -144,19 +135,9 @@ jobs:
144135
## - commit to either (development, next, master) branch
145136
stacks-core-tests:
146137
if: |
147-
needs.check-release.outputs.is_release == 'true' || (
148-
github.event_name == 'workflow_dispatch' ||
149-
github.event_name == 'pull_request' ||
150-
github.event_name == 'merge_group' ||
151-
(
152-
contains('
153-
refs/heads/master
154-
refs/heads/develop
155-
refs/heads/next
156-
', github.event.pull_request.head.ref) &&
157-
github.event_name == 'push'
158-
)
159-
)
138+
github.event_name == 'workflow_dispatch' ||
139+
github.event_name == 'pull_request' ||
140+
github.event_name == 'merge_group'
160141
name: Stacks Core Tests
161142
needs:
162143
- rustfmt
@@ -177,19 +158,9 @@ jobs:
177158
## - commit to either (development, next, master) branch
178159
stacks-core-build-tests:
179160
if: |
180-
needs.check-release.outputs.is_release == 'true' || (
181-
github.event_name == 'workflow_dispatch' ||
182-
github.event_name == 'pull_request' ||
183-
github.event_name == 'merge_group' ||
184-
(
185-
contains('
186-
refs/heads/master
187-
refs/heads/develop
188-
refs/heads/next
189-
', github.event.pull_request.head.ref) &&
190-
github.event_name == 'push'
191-
)
192-
)
161+
github.event_name == 'workflow_dispatch' ||
162+
github.event_name == 'pull_request' ||
163+
github.event_name == 'merge_group'
193164
name: Stacks Core Build Tests
194165
needs:
195166
- rustfmt
@@ -198,42 +169,21 @@ jobs:
198169

199170
bitcoin-tests:
200171
if: |
201-
needs.check-release.outputs.is_release == 'true' || (
202-
github.event_name == 'workflow_dispatch' ||
203-
github.event_name == 'pull_request' ||
204-
github.event_name == 'merge_group' ||
205-
(
206-
contains('
207-
refs/heads/master
208-
refs/heads/develop
209-
refs/heads/next
210-
', github.event.pull_request.head.ref) &&
211-
github.event_name == 'push'
212-
)
213-
)
172+
github.event_name == 'workflow_dispatch' ||
173+
github.event_name == 'pull_request' ||
174+
github.event_name == 'merge_group'
214175
name: Bitcoin Tests
215176
needs:
216177
- rustfmt
217178
- create-cache
218179
- check-release
219180
uses: ./.github/workflows/bitcoin-tests.yml
220181

221-
222182
p2p-tests:
223183
if: |
224-
needs.check-release.outputs.is_release == 'true' || (
225-
github.event_name == 'workflow_dispatch' ||
226-
github.event_name == 'pull_request' ||
227-
github.event_name == 'merge_group' ||
228-
(
229-
contains('
230-
refs/heads/master
231-
refs/heads/develop
232-
refs/heads/next
233-
', github.event.pull_request.head.ref) &&
234-
github.event_name == 'push'
235-
)
236-
)
184+
github.event_name == 'workflow_dispatch' ||
185+
github.event_name == 'pull_request' ||
186+
github.event_name == 'merge_group'
237187
name: P2P Tests
238188
needs:
239189
- rustfmt

.github/workflows/docs-pr.yml

Lines changed: 0 additions & 114 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,23 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to the versioning scheme outlined in the [README.md](README.md).
77

8-
## [Unreleased]
8+
## [3.1.0.0.3]
99

1010
### Added
1111

1212
- Add `tenure_timeout_secs` to the miner for determining when a time-based tenure extend should be attempted.
1313
- Added configuration option `block_proposal_max_age_secs` under `[connection_options]` to prevent processing stale block proposals
1414

1515
### Changed
16-
- The RPC endpoint `/v3/block_proposal` no longer will evaluate block proposals more than `block_proposal_max_age_secs` old
1716

17+
- The RPC endpoint `/v3/block_proposal` no longer will evaluate block proposals more than `block_proposal_max_age_secs` old
1818
- When a transaction is dropped due to replace-by-fee, the `/drop_mempool_tx` event observer payload now includes `new_txid`, which is the transaction that replaced this dropped transaction. When a transaction is dropped for other reasons, `new_txid` is `null`. [#5381](https://github.com/stacks-network/stacks-core/pull/5381)
1919
- Nodes will assume that all PoX anchor blocks exist by default, and stall initial block download indefinitely to await their arrival (#5502)
2020

21+
### Fixed
22+
23+
- Signers no longer accept messages for blocks from different reward cycles (#5662)
24+
2125
## [3.1.0.0.2]
2226

2327
### Added

clarity/src/vm/representations.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ guarded_string!(
8484
);
8585

8686
impl StacksMessageCodec for ClarityName {
87+
#[allow(clippy::needless_as_bytes)] // as_bytes isn't necessary, but verbosity is preferable in the codec impls
8788
fn consensus_serialize<W: Write>(&self, fd: &mut W) -> Result<(), codec_error> {
8889
// ClarityName can't be longer than vm::representations::MAX_STRING_LEN, which itself is
8990
// a u8, so we should be good here.
@@ -124,6 +125,7 @@ impl StacksMessageCodec for ClarityName {
124125
}
125126

126127
impl StacksMessageCodec for ContractName {
128+
#[allow(clippy::needless_as_bytes)] // as_bytes isn't necessary, but verbosity is preferable in the codec impls
127129
fn consensus_serialize<W: Write>(&self, fd: &mut W) -> Result<(), codec_error> {
128130
if self.as_bytes().len() < CONTRACT_MIN_NAME_LENGTH
129131
|| self.as_bytes().len() > CONTRACT_MAX_NAME_LENGTH

libsigner/src/v0/messages.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,7 @@ pub struct PeerInfo {
283283
}
284284

285285
impl StacksMessageCodec for PeerInfo {
286+
#[allow(clippy::needless_as_bytes)] // as_bytes isn't necessary, but verbosity is preferable in the codec impls
286287
fn consensus_serialize<W: Write>(&self, fd: &mut W) -> Result<(), CodecError> {
287288
write_next(fd, &self.burn_block_height)?;
288289
write_next(fd, self.stacks_tip_consensus_hash.as_bytes())?;
@@ -687,6 +688,14 @@ impl BlockResponse {
687688
}
688689
}
689690

691+
/// The signer signature hash for the block response
692+
pub fn signer_signature_hash(&self) -> Sha512Trunc256Sum {
693+
match self {
694+
BlockResponse::Accepted(accepted) => accepted.signer_signature_hash,
695+
BlockResponse::Rejected(rejection) => rejection.signer_signature_hash,
696+
}
697+
}
698+
690699
/// Get the block accept data from the block response
691700
pub fn as_block_accepted(&self) -> Option<&BlockAccepted> {
692701
match self {

pox-locking/src/events.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ use clarity::vm::costs::LimitedCostTracker;
2020
use clarity::vm::errors::Error as ClarityError;
2121
use clarity::vm::types::{PrincipalData, QualifiedContractIdentifier, ResponseData, TupleData};
2222
use clarity::vm::Value;
23-
#[cfg(test)]
23+
#[cfg(any(test, feature = "testing"))]
2424
use slog::slog_debug;
2525
use slog::slog_error;
26-
#[cfg(test)]
26+
#[cfg(any(test, feature = "testing"))]
2727
use stacks_common::debug;
2828
use stacks_common::types::StacksEpochId;
2929
use stacks_common::{error, test_debug};

pox-locking/src/events_24.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ use clarity::vm::contexts::GlobalContext;
1919
use clarity::vm::errors::Error as ClarityError;
2020
use clarity::vm::types::{PrincipalData, QualifiedContractIdentifier, TupleData};
2121
use clarity::vm::Value;
22-
#[cfg(test)]
22+
#[cfg(any(test, feature = "testing"))]
2323
use slog::slog_debug;
2424
use slog::slog_error;
25-
#[cfg(test)]
25+
#[cfg(any(test, feature = "testing"))]
2626
use stacks_common::debug;
2727
use stacks_common::{error, test_debug};
2828

stacks-signer/CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,17 @@ and this project adheres to the versioning scheme outlined in the [README.md](RE
99

1010
## Added
1111

12+
## Changed
13+
14+
## [3.1.0.0.3.0]
15+
16+
## Added
17+
1218
- 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.
19+
- 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](https://github.com/stacks-network/stacks-core/pull/5453))
20+
- Introduced two new prometheus metrics:
21+
- `stacks_signer_block_validation_latencies_histogram`: the validation_time_ms reported by the node when validating a block proposal
22+
- `stacks_signer_block_response_latencies_histogram`: the "end-to-end" time it takes for the signer to issue a block response
1323

1424
## Changed
1525
- Improvements to the stale signer cleanup logic: deletes the prior signer if it has no remaining unprocessed blocks in its database
@@ -23,6 +33,14 @@ and this project adheres to the versioning scheme outlined in the [README.md](RE
2333

2434
- Prevent old reward cycle signers from processing block validation response messages that do not apply to blocks from their cycle.
2535

36+
# [3.1.0.0.2.1]
37+
38+
## Added
39+
40+
## Changed
41+
42+
- Prevent old reward cycle signers from processing block validation response messages that do not apply to blocks from their cycle.
43+
2644
## [3.1.0.0.2.0]
2745

2846
## Added

0 commit comments

Comments
 (0)