Skip to content

Commit 49e418e

Browse files
committed
Merge branch 'develop' into chore/clarity-wasm-merge-develop
2 parents 8ad0d2a + b47cfb8 commit 49e418e

File tree

141 files changed

+13334
-4604
lines changed

Some content is hidden

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

141 files changed

+13334
-4604
lines changed

.github/actions/open-api/Dockerfile.open-api-validate

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

.github/workflows/bitcoin-tests.yml

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ jobs:
4545
- tests::neon_integrations::liquid_ustx_integration
4646
- tests::neon_integrations::microblock_fork_poison_integration_test
4747
- tests::neon_integrations::microblock_integration_test
48-
- tests::neon_integrations::microblock_large_tx_integration_test_FLAKY
48+
# Disable this flaky test. Microblocks are no longer supported anyways.
49+
# - tests::neon_integrations::microblock_large_tx_integration_test_FLAKY
4950
- tests::neon_integrations::microblock_limit_hit_integration_test
5051
- tests::neon_integrations::miner_submit_twice
5152
- tests::neon_integrations::mining_events_integration_test
@@ -73,9 +74,14 @@ jobs:
7374
- tests::neon_integrations::min_txs
7475
- tests::neon_integrations::vote_for_aggregate_key_burn_op_test
7576
- tests::neon_integrations::mock_miner_replay
77+
- tests::neon_integrations::listunspent_max_utxos
78+
- tests::neon_integrations::bitcoin_reorg_flap
79+
- tests::neon_integrations::bitcoin_reorg_flap_with_follower
80+
- tests::neon_integrations::start_stop_bitcoind
7681
- tests::epoch_25::microblocks_disabled
7782
- tests::should_succeed_handling_malformed_and_valid_txs
7883
- tests::nakamoto_integrations::simple_neon_integration
84+
- tests::nakamoto_integrations::simple_neon_integration_with_flash_blocks_on_epoch_3
7985
- tests::nakamoto_integrations::mine_multiple_per_tenure_integration
8086
- tests::nakamoto_integrations::block_proposal_api_endpoint
8187
- tests::nakamoto_integrations::miner_writes_proposed_block_to_stackerdb
@@ -86,19 +92,28 @@ jobs:
8692
- tests::nakamoto_integrations::nakamoto_attempt_time
8793
- tests::signer::v0::block_proposal_rejection
8894
- tests::signer::v0::miner_gather_signatures
89-
- tests::signer::v0::mine_2_nakamoto_reward_cycles
9095
- tests::signer::v0::end_of_tenure
9196
- tests::signer::v0::forked_tenure_okay
9297
- tests::signer::v0::forked_tenure_invalid
9398
- tests::signer::v0::empty_sortition
9499
- tests::signer::v0::bitcoind_forking_test
95100
- tests::signer::v0::multiple_miners
96101
- tests::signer::v0::mock_sign_epoch_25
97-
- tests::signer::v0::signer_set_rollover
102+
- tests::signer::v0::multiple_miners_mock_sign_epoch_25
98103
- tests::signer::v0::miner_forking
99104
- tests::signer::v0::reloads_signer_set_in
100105
- tests::signer::v0::signers_broadcast_signed_blocks
101106
- tests::signer::v0::min_gap_between_blocks
107+
- tests::signer::v0::duplicate_signers
108+
- tests::signer::v0::retry_on_rejection
109+
- tests::signer::v0::locally_accepted_blocks_overriden_by_global_rejection
110+
- tests::signer::v0::locally_rejected_blocks_overriden_by_global_acceptance
111+
- tests::signer::v0::reorg_locally_accepted_blocks_across_tenures_succeeds
112+
- tests::signer::v0::miner_recovers_when_broadcast_block_delay_across_tenures_occurs
113+
- tests::signer::v0::multiple_miners_with_nakamoto_blocks
114+
- tests::signer::v0::partial_tenure_fork
115+
- tests::signer::v0::mine_2_nakamoto_reward_cycles
116+
- tests::signer::v0::signer_set_rollover
102117
- tests::nakamoto_integrations::stack_stx_burn_op_integration_test
103118
- tests::nakamoto_integrations::check_block_heights
104119
- tests::nakamoto_integrations::clarity_burn_state
@@ -108,9 +123,10 @@ jobs:
108123
- tests::nakamoto_integrations::continue_tenure_extend
109124
- tests::nakamoto_integrations::mock_mining
110125
- tests::nakamoto_integrations::multiple_miners
111-
# Do not run this one until we figure out why it fails in CI
112-
# - tests::neon_integrations::bitcoin_reorg_flap
113-
# - tests::neon_integrations::bitcoin_reorg_flap_with_follower
126+
- tests::nakamoto_integrations::follower_bootup_across_multiple_cycles
127+
- tests::nakamoto_integrations::utxo_check_on_startup_panic
128+
- tests::nakamoto_integrations::utxo_check_on_startup_recover
129+
- tests::nakamoto_integrations::v3_signer_api_endpoint
114130
# TODO: enable these once v1 signer is supported by a new nakamoto epoch
115131
# - tests::signer::v1::dkg
116132
# - tests::signer::v1::sign_request_rejected
@@ -127,6 +143,11 @@ jobs:
127143
with:
128144
btc-version: "25.0"
129145

146+
## Increase open file descriptors limit
147+
- name: Increase Open File Descriptors
148+
run: |
149+
sudo prlimit --nofile=4096:4096
150+
130151
## Run test matrix using restored cache of archive file
131152
## - Test will timeout after env.TEST_TIMEOUT minutes
132153
- name: Run Tests

.github/workflows/ci.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,29 @@ jobs:
186186
- check-release
187187
uses: ./.github/workflows/bitcoin-tests.yml
188188

189+
190+
p2p-tests:
191+
if: |
192+
needs.check-release.outputs.is_release == 'true' || (
193+
github.event_name == 'workflow_dispatch' ||
194+
github.event_name == 'pull_request' ||
195+
github.event_name == 'merge_group' ||
196+
(
197+
contains('
198+
refs/heads/master
199+
refs/heads/develop
200+
refs/heads/next
201+
', github.event.pull_request.head.ref) &&
202+
github.event_name == 'push'
203+
)
204+
)
205+
name: P2P Tests
206+
needs:
207+
- rustfmt
208+
- create-cache
209+
- check-release
210+
uses: ./.github/workflows/p2p-tests.yml
211+
189212
## Test to run on a tagged release
190213
##
191214
## Runs when:

.github/workflows/p2p-tests.yml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
## Github workflow to run p2p tests
2+
3+
name: Tests::P2P
4+
5+
on:
6+
workflow_call:
7+
8+
## env vars are transferred to composite action steps
9+
env:
10+
BITCOIND_TEST: 0
11+
RUST_BACKTRACE: full
12+
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 15
13+
TEST_TIMEOUT: 30
14+
15+
concurrency:
16+
group: stackslib-tests-${{ github.head_ref || github.ref || github.run_id}}
17+
## Only cancel in progress if this is for a PR
18+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
19+
20+
jobs:
21+
# p2p integration tests with code coverage
22+
integration-tests:
23+
name: Integration Tests
24+
runs-on: ubuntu-latest
25+
strategy:
26+
## Continue with the test matrix even if we've had a failure
27+
fail-fast: false
28+
## Run a maximum of 32 concurrent tests from the test matrix
29+
max-parallel: 32
30+
matrix:
31+
test-name:
32+
- net::tests::convergence::test_walk_ring_allow_15
33+
- net::tests::convergence::test_walk_ring_15_plain
34+
- net::tests::convergence::test_walk_ring_15_pingback
35+
- net::tests::convergence::test_walk_ring_15_org_biased
36+
- net::tests::convergence::test_walk_line_allowed_15
37+
- net::tests::convergence::test_walk_line_15_plain
38+
- net::tests::convergence::test_walk_line_15_org_biased
39+
- net::tests::convergence::test_walk_line_15_pingback
40+
- net::tests::convergence::test_walk_star_allowed_15
41+
- net::tests::convergence::test_walk_star_15_plain
42+
- net::tests::convergence::test_walk_star_15_pingback
43+
- net::tests::convergence::test_walk_star_15_org_biased
44+
- net::tests::convergence::test_walk_inbound_line_15
45+
steps:
46+
## Setup test environment
47+
- name: Setup Test Environment
48+
id: setup_tests
49+
uses: stacks-network/actions/stacks-core/testenv@main
50+
with:
51+
btc-version: "25.0"
52+
53+
## Increase open file descriptors limit
54+
- name: Increase Open File Descriptors
55+
run: |
56+
sudo prlimit --nofile=4096:4096
57+
58+
## Run test matrix using restored cache of archive file
59+
## - Test will timeout after env.TEST_TIMEOUT minutes
60+
- name: Run Tests
61+
id: run_tests
62+
timeout-minutes: ${{ fromJSON(env.TEST_TIMEOUT) }}
63+
uses: stacks-network/actions/stacks-core/run-tests@main
64+
with:
65+
test-name: ${{ matrix.test-name }}
66+
threads: 1
67+
68+
## Create and upload code coverage file
69+
- name: Code Coverage
70+
id: codecov
71+
uses: stacks-network/actions/codecov@main
72+
with:
73+
test-name: ${{ matrix.test-name }}
74+
75+
check-tests:
76+
name: Check Tests
77+
runs-on: ubuntu-latest
78+
if: always()
79+
needs:
80+
- integration-tests
81+
steps:
82+
- name: Check Tests Status
83+
id: check_tests_status
84+
uses: stacks-network/actions/check-jobs-status@main
85+
with:
86+
jobs: ${{ toJson(needs) }}
87+
summary_print: "true"

.github/workflows/standalone-tests.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ on:
2121
- Atlas Tests
2222
- Bitcoin Tests
2323
- Epoch Tests
24+
- P2P Tests
2425
- Slow Tests
2526
- Stacks-Core Tests
2627
- SBTC Tests
@@ -69,6 +70,23 @@ jobs:
6970
- create-cache
7071
uses: ./.github/workflows/bitcoin-tests.yml
7172

73+
## Runs when:
74+
## either or of the following:
75+
## - workflow is 'Release Tests'
76+
## - workflow is 'CI Tests'
77+
## - workflow is 'P2P Tests'
78+
p2p-tests:
79+
if: |
80+
(
81+
inputs.workflow == 'Release Tests' ||
82+
inputs.workflow == 'CI Tests' ||
83+
inputs.workflow == 'P2P Tests'
84+
)
85+
name: P2P Tests
86+
needs:
87+
- create-cache
88+
uses: ./.github/workflows/p2p-tests.yml
89+
7290
#####################################################
7391
## Runs when:
7492
## either or of the following:

.vscode/settings.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
{
2-
"lldb.adapterType": "native",
3-
"lldb.launch.sourceLanguages": ["rust"]
2+
"lldb.adapterType": "native",
3+
"lldb.launch.sourceLanguages": ["rust"],
4+
"rust-analyzer.runnables.extraEnv": {
5+
"BITCOIND_TEST": "1"
6+
}
47
}

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,29 @@ and this project adheres to the versioning scheme outlined in the [README.md](RE
1616
- `get-stacks-block-info?` added
1717
- `get-tenure-info?` added
1818
- `get-block-info?` removed
19+
- Added `/v3/signer/{signer_pubkey}/{reward_cycle}` endpoint
20+
21+
## [2.5.0.0.7]
22+
23+
### Added
24+
25+
- Add warn logs for block validate rejections (#5079)
26+
- Neon mock miner replay (#5060)
27+
28+
### Changed
29+
30+
- Revert BurnchainHeaderHash serialization change (#5094)
31+
- boot_to_epoch_3 in SignerTest should wait for a new commit (#5087)
32+
- Fix block proposal rejection test (#5084)
33+
- Mock signing revamp (#5070)
34+
- Multi miner fixes jude (#5040)
35+
- Remove spurious deadlock condition whenever the sortition DB is opened
36+
37+
## [2.5.0.0.6]
38+
39+
### Changed
40+
41+
- If there is a getchunk/putchunk that fails due to a stale (or future) version NACK, the StackerDB sync state machine should immediately retry sync (#5066)
1942

2043
## [2.5.0.0.5]
2144

Cargo.lock

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

clarity/src/vm/database/sqlite.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use rusqlite::{
2121
};
2222
use stacks_common::types::chainstate::{BlockHeaderHash, StacksBlockId};
2323
use stacks_common::types::sqlite::NO_PARAMS;
24-
use stacks_common::util::db_common::tx_busy_handler;
24+
use stacks_common::util::db::tx_busy_handler;
2525
use stacks_common::util::hash::Sha512Trunc256Sum;
2626

2727
use super::clarity_store::{make_contract_hash_key, ContractCommitment};

clarity/src/vm/docs/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1830,7 +1830,7 @@ and block times are accurate only to within two hours. See [BIP113](https://gith
18301830
For a block mined after epoch 3.0, this timestamp comes from the Stacks block header. **Note**: this is the time, according to the miner, when
18311831
the mining of this block started, but is not guaranteed to be accurate. This time will be validated by the signers to be:
18321832
- Greater than the timestamp of the previous block
1833-
- Less than 15 seconds into the future (according to their own local clocks)
1833+
- At most 15 seconds into the future (according to their own local clocks)
18341834
",
18351835
example: "(get-stacks-block-info? time u0) ;; Returns (some u1557860301)
18361836
(get-stacks-block-info? header-hash u0) ;; Returns (some 0x374708fff7719dd5979ec875d56cd2286f6d3cf7ec317a3b25632aab28ec37bb)

0 commit comments

Comments
 (0)