Skip to content

Commit 52950a6

Browse files
committed
Merge branch 'develop' of https://github.com/stacks-network/stacks-core into feat/signer-two-phase-commit-impl
2 parents ca4431c + 8e32466 commit 52950a6

Some content is hidden

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

85 files changed

+4542
-1626
lines changed

.cargo/config.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
stacks-node = "run --package stacks-node --"
33
fmt-stacks = "fmt -- --config group_imports=StdExternalCrate,imports_granularity=Module"
44
clippy-stacks = "clippy -p stx-genesis -p libstackerdb -p stacks-signer -p pox-locking -p clarity-serialization -p clarity -p libsigner -p stacks-common --no-deps --tests --all-features -- -D warnings"
5-
clippy-stackslib = "clippy -p stackslib --no-deps -- -Aclippy::all -Wclippy::indexing_slicing"
5+
clippy-stackslib = "clippy -p stackslib --no-deps -- -Aclippy::all -Wclippy::indexing_slicing -Wclippy::nonminimal_bool"
66

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

.github/workflows/cargo-hack-check.yml

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,12 @@ jobs:
3838
with:
3939
persist-credentials: false
4040

41-
- name: Setup Rust with Cache
41+
- name: Setup Rust
4242
uses: actions-rust-lang/setup-rust-toolchain@11df97af8e8102fd60b60a77dfbf58d40cd843b8 # v1.10.1
4343
with:
4444
toolchain: ${{ needs.setup.outputs.rust-toolchain }}
4545
target: x86_64-pc-windows-gnu,x86_64-unknown-linux-gnu
46-
cache: true
47-
cache-key: cargo-hack-native-${{ needs.setup.outputs.rust-toolchain }}-${{ hashFiles('**/Cargo.lock') }}
46+
cache: false
4847

4948
- name: Install cargo-hack
5049
uses: taiki-e/install-action@2383334cf567d78771fc7d89b6b3802ef1412cf6 # v2.56.8
@@ -66,54 +65,49 @@ jobs:
6665
--target x86_64-pc-windows-gnu \
6766
--target x86_64-unknown-linux-gnu
6867
69-
# WASM targets - separate cache since dependencies differ
68+
# WASM targets - No caching needed as it runs in parallel with longer jobs
7069
wasm-targets:
71-
name: ${{ matrix.name }}
70+
name: WASM targets
7271
runs-on: ubuntu-latest
7372
needs: setup
74-
strategy:
75-
fail-fast: false
76-
matrix:
77-
include:
78-
- name: "Clarity & Stacks-Common WASM Web"
79-
command: |
80-
cargo hack check \
81-
-p clarity-serialization \
82-
-p stacks-common \
83-
--each-feature \
84-
--no-dev-deps \
85-
--exclude-features=default,rusqlite,ctrlc-handler,wasm-deterministic \
86-
--features=wasm-web
87-
88-
- name: "Clarity & Stacks-Common WASM Deterministic"
89-
command: |
90-
cargo hack check \
91-
-p clarity-serialization \
92-
-p stacks-common \
93-
--each-feature \
94-
--no-dev-deps \
95-
--include-features=wasm-deterministic,slog_json \
96-
--features=wasm-deterministic
97-
9873
steps:
9974
- name: Checkout
10075
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
10176
with:
10277
persist-credentials: false
10378

104-
- name: Setup Rust with Cache
79+
- name: Setup Rust
10580
uses: actions-rust-lang/setup-rust-toolchain@11df97af8e8102fd60b60a77dfbf58d40cd843b8 # v1.10.1
10681
with:
10782
toolchain: ${{ needs.setup.outputs.rust-toolchain }}
10883
target: wasm32-unknown-unknown
109-
cache: true
110-
cache-key: cargo-hack-wasm-${{ matrix.name }}-${{ needs.setup.outputs.rust-toolchain }}-${{ hashFiles('**/Cargo.lock') }}
84+
cache: false
11185

11286
- name: Install cargo-hack
11387
uses: taiki-e/install-action@2383334cf567d78771fc7d89b6b3802ef1412cf6 # v2.56.8
11488
with:
11589
tool: cargo-hack
11690

91+
- name: Run cargo hack check (WASM Web)
92+
run: |
93+
cargo hack check \
94+
-p clarity-serialization \
95+
-p stacks-common \
96+
--each-feature \
97+
--no-dev-deps \
98+
--exclude-features=default,rusqlite,ctrlc-handler,wasm-deterministic \
99+
--features=wasm-web
100+
101+
- name: Run cargo hack check (WASM Deterministic)
102+
run: |
103+
cargo hack check \
104+
-p clarity-serialization \
105+
-p stacks-common \
106+
--each-feature \
107+
--no-dev-deps \
108+
--include-features=wasm-deterministic,slog_json \
109+
--features=wasm-deterministic
110+
117111
- name: Run cargo hack check
118112
run: ${{ matrix.command }}
119113

@@ -130,10 +124,18 @@ jobs:
130124
uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 # v1.13.0
131125
with:
132126
toolchain: nightly
127+
cache: false
133128

134-
- name: Check fuzz targets
129+
- name: Check fuzz targets (clarity)
135130
run: |
136131
cargo +nightly check \
137132
--manifest-path clarity/fuzz/Cargo.toml \
138133
--bins \
139134
--locked
135+
136+
- name: Check fuzz targets (stackslib)
137+
run: |
138+
cargo +nightly check \
139+
--manifest-path stackslib/fuzz/Cargo.toml \
140+
--bins \
141+
--locked

.github/workflows/clippy.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,19 @@ jobs:
2626
- name: Checkout the latest code
2727
id: git_checkout
2828
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
29+
2930
- name: Define Rust Toolchain
3031
id: define_rust_toolchain
3132
run: echo "RUST_TOOLCHAIN=$(cat ./rust-toolchain)" >> $GITHUB_ENV
33+
3234
- name: Setup Rust Toolchain
3335
id: setup_rust_toolchain
3436
uses: actions-rust-lang/setup-rust-toolchain@11df97af8e8102fd60b60a77dfbf58d40cd843b8 # v1.10.1
3537
with:
3638
toolchain: ${{ env.RUST_TOOLCHAIN }}
3739
components: clippy
40+
cache: false
41+
3842
- name: Clippy
3943
id: clippy
4044
run: cargo clippy-stacks

.github/workflows/constants-check.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,17 @@ jobs:
1717
- name: Checkout the latest code
1818
id: git_checkout
1919
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
20+
2021
- name: Define Rust Toolchain
2122
id: define_rust_toolchain
2223
run: echo "RUST_TOOLCHAIN=$(cat ./rust-toolchain)" >> $GITHUB_ENV
24+
2325
- name: Setup Rust Toolchain
2426
id: setup_rust_toolchain
2527
uses: actions-rust-lang/setup-rust-toolchain@11df97af8e8102fd60b60a77dfbf58d40cd843b8 # v1.10.1
2628
with:
2729
toolchain: ${{ env.RUST_TOOLCHAIN }}
30+
cache: false
2831

2932
- name: Dump constants JSON
3033
id: consts-dump

.github/workflows/nix-check.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,5 @@ jobs:
3838
- uses: DeterminateSystems/magic-nix-cache-action@e1c1dae8e170ed20fd2e6aaf9979ca2d3905d636 # v12
3939
with:
4040
use-flakehub: false # Remove error when trying to authenticate without credentials
41+
use-gha-cache: false # Disable uploading cache to gha cache
4142
- run: nix flake check ./contrib/nix

CHANGELOG.md

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

1010
### Added
1111

12+
- Add `stackerdb_timeout_secs` to miner config for limiting duration of StackerDB HTTP requests.
1213
- When determining a global transaction replay set, the state evaluator now uses a longest-common-prefix algorithm to find a replay set in the case where a single replay set has less than 70% of signer weight.
1314

1415
### Changed

Cargo.lock

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

clarity/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ features = ["arbitrary_precision", "unbounded_depth"]
3737
[dev-dependencies]
3838
assert-json-diff = "1.0.0"
3939
mutants = "0.0.3"
40+
proptest = { version = "1.6.0", default-features = false, features = ["std"] }
4041
rstest = { version = "0.17.0" }
4142
rstest_reuse = { version = "0.5.0" }
4243
# a nightly rustc regression (35dbef235 2021-03-02) prevents criterion from compiling

clarity/fuzz/Cargo.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,10 @@ name = "fuzz_value_sanitize"
3737
path = "fuzz_targets/fuzz_value_sanitize.rs"
3838
test = false
3939
doc = false
40+
41+
[[bin]]
42+
name = "execute_v2_raw"
43+
path = "fuzz_targets/execute_v2_raw.rs"
44+
test = false
45+
doc = false
46+
bench = false
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Copyright (C) 2025 Stacks Open Internet Foundation
2+
//
3+
// This program is free software: you can redistribute it and/or modify
4+
// it under the terms of the GNU General Public License as published by
5+
// the Free Software Foundation, either version 3 of the License, or
6+
// (at your option) any later version.
7+
//
8+
// This program is distributed in the hope that it will be useful,
9+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
// GNU General Public License for more details.
12+
//
13+
// You should have received a copy of the GNU General Public License
14+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
15+
16+
#![no_main]
17+
18+
use libfuzzer_sys::fuzz_target;
19+
20+
fuzz_target!(|s: &str| {
21+
let _ = clarity::vm::execute_v2(s);
22+
});

0 commit comments

Comments
 (0)