Skip to content

Commit c1a1f50

Browse files
authored
Merge pull request #5797 from stacks-network/release/3.1.0.0.5
Merge 3.1.0.0.5 to master
2 parents 9c8ed7b + 513dbc5 commit c1a1f50

File tree

358 files changed

+16085
-13476
lines changed

Some content is hidden

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

358 files changed

+16085
-13476
lines changed

.cargo/config.toml

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[alias]
22
stacks-node = "run --package stacks-node --"
33
fmt-stacks = "fmt -- --config group_imports=StdExternalCrate,imports_granularity=Module"
4+
clippy-stacks = "clippy -p libstackerdb -p stacks-signer -p pox-locking -p clarity -p libsigner -p stacks-common --no-deps --tests --all-features -- -D warnings"
45

56
# Uncomment to improve performance slightly, at the cost of portability
67
# * Note that native binaries may not run on CPUs that are different from the build machine

.github/workflows/bitcoin-tests.yml

+17-2
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,10 +81,10 @@ 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
86-
- tests::nakamoto_integrations::flash_blocks_on_epoch_3
86+
# Disable this flaky test. We don't need continue testing Epoch 2 -> 3 transition
87+
# - tests::nakamoto_integrations::flash_blocks_on_epoch_3_FLAKY
8788
- tests::nakamoto_integrations::mine_multiple_per_tenure_integration
8889
- tests::nakamoto_integrations::block_proposal_api_endpoint
8990
- tests::nakamoto_integrations::miner_writes_proposed_block_to_stackerdb
@@ -124,21 +125,32 @@ jobs:
124125
- tests::signer::v0::signing_in_0th_tenure_of_reward_cycle
125126
- tests::signer::v0::continue_after_tenure_extend
126127
- tests::signer::v0::tenure_extend_after_idle_signers
128+
- tests::signer::v0::tenure_extend_with_other_transactions
127129
- tests::signer::v0::tenure_extend_after_idle_miner
130+
- tests::signer::v0::tenure_extend_after_failed_miner
128131
- tests::signer::v0::tenure_extend_succeeds_after_rejected_attempt
129132
- tests::signer::v0::stx_transfers_dont_effect_idle_timeout
130133
- tests::signer::v0::idle_tenure_extend_active_mining
131134
- tests::signer::v0::multiple_miners_with_custom_chain_id
132135
- tests::signer::v0::block_commit_delay
133136
- tests::signer::v0::continue_after_fast_block_no_sortition
134137
- tests::signer::v0::block_validation_response_timeout
138+
- tests::signer::v0::block_validation_check_rejection_timeout_heuristic
139+
- tests::signer::v0::block_validation_pending_table
140+
- tests::signer::v0::new_tenure_while_validating_previous_scenario
135141
- tests::signer::v0::tenure_extend_after_bad_commit
136142
- tests::signer::v0::block_proposal_max_age_rejections
137143
- tests::signer::v0::global_acceptance_depends_on_block_announcement
138144
- tests::signer::v0::no_reorg_due_to_successive_block_validation_ok
139145
- tests::signer::v0::incoming_signers_ignore_block_proposals
140146
- tests::signer::v0::outgoing_signers_ignore_block_proposals
141147
- tests::signer::v0::injected_signatures_are_ignored_across_boundaries
148+
- tests::signer::v0::fast_sortition
149+
- tests::signer::v0::single_miner_empty_sortition
150+
- tests::signer::v0::multiple_miners_empty_sortition
151+
- tests::signer::v0::block_proposal_timeout
152+
- tests::signer::v0::rejected_blocks_count_towards_miner_validity
153+
- tests::signer::v0::allow_reorg_within_first_proposal_burn_block_timing_secs
142154
- tests::nakamoto_integrations::burn_ops_integration_test
143155
- tests::nakamoto_integrations::check_block_heights
144156
- tests::nakamoto_integrations::clarity_burn_state
@@ -158,6 +170,9 @@ jobs:
158170
- tests::nakamoto_integrations::sip029_coinbase_change
159171
- tests::nakamoto_integrations::clarity_cost_spend_down
160172
- tests::nakamoto_integrations::v3_blockbyheight_api_endpoint
173+
- tests::nakamoto_integrations::mine_invalid_principal_from_consensus_buff
174+
- tests::nakamoto_integrations::test_tenure_extend_from_flashblocks
175+
- tests::nakamoto_integrations::restarting_miner
161176
# TODO: enable these once v1 signer is supported by a new nakamoto epoch
162177
# - tests::signer::v1::dkg
163178
# - tests::signer::v1::sign_request_rejected

.github/workflows/ci.yml

+16-66
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/clippy.yml

+1-4
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,4 @@ jobs:
3434
components: clippy
3535
- name: Clippy
3636
id: clippy
37-
uses: actions-rs/clippy-check@v1
38-
with:
39-
token: ${{ secrets.GITHUB_TOKEN }}
40-
args: -p libstackerdb -p stacks-signer -p pox-locking -p clarity -p libsigner -p stacks-common --no-deps --tests --all-features -- -D warnings
37+
run: cargo clippy-stacks

.github/workflows/docs-pr.yml

-114
This file was deleted.

CHANGELOG.md

+39
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,45 @@ 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]
9+
10+
### Added
11+
12+
### Changed
13+
14+
### Fixed
15+
16+
## [3.1.0.0.5]
17+
18+
### Added
19+
20+
- 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
21+
22+
### Changed
23+
24+
- Miner will include other transactions in blocks with tenure extend transactions (#5760)
25+
- Add `block_rejection_timeout_steps` to miner configuration for defining rejections-based timeouts while waiting for signers response (#5705)
26+
- Miner will not issue a tenure extend until at least half of the block budget has been spent (#5757)
27+
28+
### Fixed
29+
30+
- Miners who restart their nodes immediately before a winning tenure now correctly detect that
31+
they won the tenure after their nodes restart ([#5750](https://github.com/stacks-network/stacks-core/issues/5750)).
32+
33+
## [3.1.0.0.4]
34+
35+
### Added
36+
37+
- The stacks-node miner now performs accurate tenure-extensions in certain bitcoin block production
38+
cases: when a bitcoin block is produced before the previous bitcoin block's Stacks tenure started.
39+
Previously, the miner had difficulty restarting their missed tenure and extending into the new
40+
bitcoin block, leading to 1-2 bitcoin blocks of missed Stacks block production.
41+
- The event dispatcher now includes `consensus_hash` in the `/new_block` and `/new_burn_block` payloads. ([#5677](https://github.com/stacks-network/stacks-core/pull/5677))
42+
43+
## Changed
44+
45+
- 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)
46+
847
## [3.1.0.0.3]
948

1049
### Added

CONTRIBUTING.md

+12
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,18 @@ You can automatically reformat your commit via:
387387
cargo fmt-stacks
388388
```
389389

390+
## Clippy Warnings
391+
392+
PRs will be checked against `clippy` and will _fail_ if any clippy warnings are generated.
393+
Unfortunately, not all existing clippy warnings have been addressed throughout stacks-core, so arguments must be passed via the command line.
394+
Therefore, we handle `clippy` configurations using a Cargo alias: `cargo clippy-stacks`
395+
396+
You can check what warnings need to be addressed locally via:
397+
398+
```bash
399+
cargo clippy-stacks
400+
```
401+
390402
## Comments
391403

392404
Comments are very important for the readability and correctness of the codebase. The purpose of comments is:

0 commit comments

Comments
 (0)