Skip to content

Commit 6260c16

Browse files
committed
Merge branch 'develop' into feat/rpc-endpoints-to-fetch-data-from-key
2 parents 74ac33f + d11ed3c commit 6260c16

File tree

273 files changed

+37677
-23067
lines changed

Some content is hidden

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

273 files changed

+37677
-23067
lines changed

.github/ISSUE_TEMPLATE/signer_bug.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
name: Signer Bug
3+
about: Create a report to help us improve the signer
4+
title: "[SIGNER BUG]"
5+
labels: signer
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**Steps To Reproduce**
14+
Please provide detailed instructions (e.g. command line invocation with parameters) to reproduce the behavior.
15+
16+
**Expected behavior**
17+
A clear and concise description of what you expected to happen.
18+
19+
**Environment (please complete the following information):**
20+
- OS: [e.g. Ubuntu / Debian]
21+
- Rust version
22+
- Version of the appropriate binary / software packages
23+
- Signer public key
24+
- Relevant log messages
25+
- Tx ID of any transaction you were trying to execute
26+
- Tx ID of `aggregation-commit-indexed` call in registered cycle (if applicable)
27+
28+
29+
**Additional context**
30+
Please include any relevant stack traces, error messages and logs.
31+
32+

.github/ISSUE_TEMPLATE/testnet-bug.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: Testnet Bug
33
about: Use this template to submit Stacks 2.0 testnet bugs
44
title: "[TESTNET BUG]"
55
labels: bug, testnet
6-
assignees: 'timstackblock'
6+
assignees: ''
77

88
---
99

.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: 54 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ jobs:
3232
- tests::bitcoin_regtest::bitcoind_integration_test
3333
- tests::integrations::integration_test_get_info
3434
- tests::neon_integrations::antientropy_integration_test
35-
- tests::neon_integrations::bad_microblock_pubkey
3635
- tests::neon_integrations::bitcoind_forking_test
3736
- tests::neon_integrations::bitcoind_integration_test
3837
- tests::neon_integrations::block_large_tx_integration_test
@@ -43,20 +42,26 @@ jobs:
4342
- tests::neon_integrations::fuzzed_median_fee_rate_estimation_test_window10
4443
- tests::neon_integrations::fuzzed_median_fee_rate_estimation_test_window5
4544
- tests::neon_integrations::liquid_ustx_integration
46-
- tests::neon_integrations::microblock_fork_poison_integration_test
47-
- tests::neon_integrations::microblock_integration_test
48-
- tests::neon_integrations::microblock_large_tx_integration_test_FLAKY
49-
- tests::neon_integrations::microblock_limit_hit_integration_test
45+
# Microblock tests that are no longer needed on every CI run
46+
# (microblocks are unsupported starting in Epoch 2.5)
47+
# - tests::neon_integrations::bad_microblock_pubkey
48+
# - tests::neon_integrations::microblock_fork_poison_integration_test
49+
# - tests::neon_integrations::microblock_integration_test
50+
# - tests::neon_integrations::microblock_limit_hit_integration_test
51+
# - tests::neon_integrations::test_problematic_microblocks_are_not_mined
52+
# - tests::neon_integrations::test_problematic_microblocks_are_not_relayed_or_stored
53+
# - tests::neon_integrations::size_overflow_unconfirmed_invalid_stream_microblocks_integration_test
54+
# - tests::neon_integrations::size_overflow_unconfirmed_microblocks_integration_test
55+
# - tests::neon_integrations::size_overflow_unconfirmed_stream_microblocks_integration_test
56+
# - tests::neon_integrations::runtime_overflow_unconfirmed_microblocks_integration_test
57+
# Disable this flaky test. Microblocks are no longer supported anyways.
58+
# - tests::neon_integrations::microblock_large_tx_integration_test_FLAKY
5059
- tests::neon_integrations::miner_submit_twice
5160
- tests::neon_integrations::mining_events_integration_test
5261
- tests::neon_integrations::pox_integration_test
5362
- tests::neon_integrations::push_boot_receipts
54-
- tests::neon_integrations::runtime_overflow_unconfirmed_microblocks_integration_test
5563
- tests::neon_integrations::should_fix_2771
5664
- tests::neon_integrations::size_check_integration_test
57-
- tests::neon_integrations::size_overflow_unconfirmed_invalid_stream_microblocks_integration_test
58-
- tests::neon_integrations::size_overflow_unconfirmed_microblocks_integration_test
59-
- tests::neon_integrations::size_overflow_unconfirmed_stream_microblocks_integration_test
6065
- tests::neon_integrations::stx_delegate_btc_integration_test
6166
- tests::neon_integrations::stx_transfer_btc_integration_test
6267
- tests::neon_integrations::stack_stx_burn_op_test
@@ -65,16 +70,20 @@ jobs:
6570
- tests::neon_integrations::test_flash_block_skip_tenure
6671
- tests::neon_integrations::test_problematic_blocks_are_not_mined
6772
- tests::neon_integrations::test_problematic_blocks_are_not_relayed_or_stored
68-
- tests::neon_integrations::test_problematic_microblocks_are_not_mined
69-
- tests::neon_integrations::test_problematic_microblocks_are_not_relayed_or_stored
7073
- tests::neon_integrations::test_problematic_txs_are_not_stored
7174
- tests::neon_integrations::use_latest_tip_integration_test
7275
- tests::neon_integrations::confirm_unparsed_ongoing_ops
7376
- tests::neon_integrations::min_txs
7477
- tests::neon_integrations::vote_for_aggregate_key_burn_op_test
78+
- tests::neon_integrations::mock_miner_replay
79+
- tests::neon_integrations::listunspent_max_utxos
80+
- tests::neon_integrations::bitcoin_reorg_flap
81+
- tests::neon_integrations::bitcoin_reorg_flap_with_follower
82+
- tests::neon_integrations::start_stop_bitcoind
7583
- tests::epoch_25::microblocks_disabled
7684
- tests::should_succeed_handling_malformed_and_valid_txs
7785
- tests::nakamoto_integrations::simple_neon_integration
86+
- tests::nakamoto_integrations::flash_blocks_on_epoch_3
7887
- tests::nakamoto_integrations::mine_multiple_per_tenure_integration
7988
- tests::nakamoto_integrations::block_proposal_api_endpoint
8089
- tests::nakamoto_integrations::miner_writes_proposed_block_to_stackerdb
@@ -83,23 +92,47 @@ jobs:
8392
- tests::nakamoto_integrations::follower_bootup
8493
- tests::nakamoto_integrations::forked_tenure_is_ignored
8594
- tests::nakamoto_integrations::nakamoto_attempt_time
95+
- tests::nakamoto_integrations::skip_mining_long_tx
8696
- tests::signer::v0::block_proposal_rejection
8797
- tests::signer::v0::miner_gather_signatures
88-
- tests::signer::v0::mine_2_nakamoto_reward_cycles
8998
- tests::signer::v0::end_of_tenure
9099
- tests::signer::v0::forked_tenure_okay
91100
- tests::signer::v0::forked_tenure_invalid
101+
- tests::signer::v0::empty_sortition
92102
- tests::signer::v0::bitcoind_forking_test
93-
- tests::nakamoto_integrations::stack_stx_burn_op_integration_test
103+
- tests::signer::v0::multiple_miners
104+
- tests::signer::v0::mock_sign_epoch_25
105+
- tests::signer::v0::multiple_miners_mock_sign_epoch_25
106+
- tests::signer::v0::miner_forking
107+
- tests::signer::v0::reloads_signer_set_in
108+
- tests::signer::v0::signers_broadcast_signed_blocks
109+
- tests::signer::v0::min_gap_between_blocks
110+
- tests::signer::v0::duplicate_signers
111+
- tests::signer::v0::retry_on_rejection
112+
- tests::signer::v0::locally_accepted_blocks_overriden_by_global_rejection
113+
- tests::signer::v0::locally_rejected_blocks_overriden_by_global_acceptance
114+
- tests::signer::v0::reorg_locally_accepted_blocks_across_tenures_succeeds
115+
- tests::signer::v0::miner_recovers_when_broadcast_block_delay_across_tenures_occurs
116+
- tests::signer::v0::multiple_miners_with_nakamoto_blocks
117+
- tests::signer::v0::partial_tenure_fork
118+
- tests::signer::v0::mine_2_nakamoto_reward_cycles
119+
- tests::signer::v0::signer_set_rollover
120+
- tests::signer::v0::signing_in_0th_tenure_of_reward_cycle
121+
- tests::signer::v0::continue_after_tenure_extend
122+
- tests::signer::v0::multiple_miners_with_custom_chain_id
123+
- tests::nakamoto_integrations::burn_ops_integration_test
94124
- tests::nakamoto_integrations::check_block_heights
95125
- tests::nakamoto_integrations::clarity_burn_state
96126
- tests::nakamoto_integrations::check_block_times
97127
- tests::nakamoto_integrations::check_block_info
98128
- tests::nakamoto_integrations::check_block_info_rewards
99129
- tests::nakamoto_integrations::continue_tenure_extend
100-
# Do not run this one until we figure out why it fails in CI
101-
# - tests::neon_integrations::bitcoin_reorg_flap
102-
# - tests::neon_integrations::bitcoin_reorg_flap_with_follower
130+
- tests::nakamoto_integrations::mock_mining
131+
- tests::nakamoto_integrations::multiple_miners
132+
- tests::nakamoto_integrations::follower_bootup_across_multiple_cycles
133+
- tests::nakamoto_integrations::utxo_check_on_startup_panic
134+
- tests::nakamoto_integrations::utxo_check_on_startup_recover
135+
- tests::nakamoto_integrations::v3_signer_api_endpoint
103136
# TODO: enable these once v1 signer is supported by a new nakamoto epoch
104137
# - tests::signer::v1::dkg
105138
# - tests::signer::v1::sign_request_rejected
@@ -116,6 +149,11 @@ jobs:
116149
with:
117150
btc-version: "25.0"
118151

152+
## Increase open file descriptors limit
153+
- name: Increase Open File Descriptors
154+
run: |
155+
sudo prlimit --nofile=4096:4096
156+
119157
## Run test matrix using restored cache of archive file
120158
## - Test will timeout after env.TEST_TIMEOUT minutes
121159
- 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/pr-differences-mutants.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,34 @@ on:
99
- ready_for_review
1010
paths:
1111
- '**.rs'
12+
workflow_dispatch:
1213

1314
concurrency:
1415
group: pr-differences-${{ github.head_ref || github.ref || github.run_id }}
1516
# Always cancel duplicate jobs
1617
cancel-in-progress: true
1718

1819
jobs:
20+
check-access-permissions:
21+
name: Check Access Permissions
22+
runs-on: ubuntu-latest
23+
24+
steps:
25+
- name: Check Access Permissions To Trigger This
26+
id: check_access_permissions
27+
uses: stacks-network/actions/team-membership@main
28+
with:
29+
username: ${{ github.actor }}
30+
team: 'blockchain-team'
31+
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
32+
33+
outputs:
34+
ignore_timeout: ${{ steps.check_access_permissions.outputs.is_team_member == 'true' && github.event_name == 'workflow_dispatch' }}
35+
1936
# Check and output whether to run big (`stacks-node`/`stackslib`) or small (others) packages with or without shards
2037
check-big-packages-and-shards:
2138
name: Check Packages and Shards
39+
needs: check-access-permissions
2240

2341
runs-on: ubuntu-latest
2442

@@ -30,10 +48,13 @@ jobs:
3048
run_small_packages: ${{ steps.check_packages_and_shards.outputs.run_small_packages }}
3149
small_packages_with_shards: ${{ steps.check_packages_and_shards.outputs.small_packages_with_shards }}
3250
run_stacks_signer: ${{ steps.check_packages_and_shards.outputs.run_stacks_signer }}
51+
too_many_mutants: ${{ steps.check_packages_and_shards.outputs.too_many_mutants }}
3352

3453
steps:
3554
- id: check_packages_and_shards
3655
uses: stacks-network/actions/stacks-core/mutation-testing/check-packages-and-shards@main
56+
with:
57+
ignore_timeout: ${{ needs.check-access-permissions.outputs.ignore_timeout }}
3758

3859
# Mutation testing - Execute on PR on small packages that have functions modified (normal run, no shards)
3960
pr-differences-mutants-small-normal:
@@ -220,3 +241,4 @@ jobs:
220241
small_packages: ${{ needs.check-big-packages-and-shards.outputs.run_small_packages }}
221242
shards_for_small_packages: ${{ needs.check-big-packages-and-shards.outputs.small_packages_with_shards }}
222243
stacks_signer: ${{ needs.check-big-packages-and-shards.outputs.run_stacks_signer }}
244+
too_many_mutants: ${{ needs.check-big-packages-and-shards.outputs.too_many_mutants }}

.github/workflows/stacks-core-tests.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,6 @@ jobs:
187187
if: always()
188188
needs:
189189
- full-genesis
190-
- unit-tests
191190
- open-api-validation
192191
- core-contracts-clarinet-test
193192
steps:

.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:

0 commit comments

Comments
 (0)