Skip to content

Commit dbebebf

Browse files
committed
Merge remote-tracking branch 'origin/main' into rkuris/simple-range-proof-verification
2 parents a051559 + 71ccab6 commit dbebebf

Some content is hidden

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

92 files changed

+4357
-2582
lines changed

.config/nextest.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[profile.default]
2+
# Skip tests prefixed with test_slow in default profile
3+
default-filter = "not test(test_slow)"
4+
5+
[profile.ci]
6+
# Do not cancel the test run on the first failure.
7+
fail-fast = false
8+
# Override default filter to run all tests including slow ones
9+
default-filter = "all()"
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
16+
**Expected behavior**
17+
A clear and concise description of what you expected to happen.
18+
19+
**Possible Solutions**
20+
If known, give some ideas of what may be done to fix the problem.
21+
22+
**Additional context**
23+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

.github/pull_request_template.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
## Why this should be merged
2+
3+
## How this works
4+
5+
## How this was tested

.github/workflows/ci.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,17 +151,18 @@ jobs:
151151
- profile-key: debug-ethhash-logger
152152
profile-args: "--features ethhash,logger"
153153
- profile-key: maxperf-ethhash-logger
154-
profile-args: "--profile maxperf --features ethhash,logger"
154+
profile-args: "--cargo-profile maxperf --features ethhash,logger"
155155
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
156156
steps:
157157
- uses: actions/checkout@v4
158158
- uses: dtolnay/rust-toolchain@stable
159+
- uses: taiki-e/install-action@nextest
159160
- uses: Swatinem/rust-cache@v2
160161
with:
161162
save-if: "false"
162163
shared-key: ${{ matrix.profile-key }}
163-
- name: Run tests with features enabled
164-
run: cargo test --locked --verbose ${{ matrix.profile-args }}
164+
- name: Run tests with cargo-nextest
165+
run: cargo nextest run --locked --profile ci --verbose ${{ matrix.profile-args }}
165166

166167
examples:
167168
needs: build
@@ -210,6 +211,7 @@ jobs:
210211
**/*.md
211212
!CHANGELOG.md
212213
!target/**
214+
!.github/**
213215
- name: doc generation
214216
run: RUSTDOCFLAGS="-D warnings" cargo doc --locked --document-private-items --no-deps
215217

.github/workflows/publish.yaml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@ jobs:
2020
run: |
2121
cargo login ${{ secrets.CARGO_TOKEN }}
2222
cargo publish -p firewood-macros
23-
- name: publish firewood-triehash crate
24-
continue-on-error: false
25-
run: |
26-
cargo login ${{ secrets.CARGO_TOKEN }}
27-
cargo publish -p firewood-triehash
23+
# TODO(demosdemon): detect when version is bumped and only publish then
24+
# - name: publish firewood-triehash crate
25+
# continue-on-error: false
26+
# run: |
27+
# cargo login ${{ secrets.CARGO_TOKEN }}
28+
# cargo publish -p firewood-triehash
2829
- name: publish firewood-storage crate
2930
continue-on-error: false
3031
run: |

AGENTS.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,23 @@ Before submitting/updating a PR, run the following
112112

113113
```bash
114114
cargo fmt # Format code
115-
cargo test --workspace --features ethhash,logger --all-targets # Run tests
115+
cargo nextest run --workspace --features ethhash,logger --all-targets # Run tests
116116
cargo clippy --workspace --features ethhash,logger --all-targets # Linter
117117
cargo doc --no-deps # Ensure docs build
118118
```
119119

120120
All tests must pass, and there should be no clippy warnings.
121121

122+
### Slow Tests
123+
124+
If your PR modifies code that is tested by any test prefixed with `test_slow_`, you should also run the full test suite with the `ci` profile to ensure those tests pass:
125+
126+
```bash
127+
cargo nextest run --workspace --features ethhash,logger --all-targets --profile ci
128+
```
129+
130+
The `ci` profile includes slow tests that are skipped in the default profile for faster local development.
131+
122132
### Markdown Linter
123133

124134
If your PR touches any Markdown file, run the following:
@@ -170,7 +180,7 @@ Key dependencies are centrally managed in workspace `Cargo.toml`:
170180
blocks without documentation and strong justification. Unsafe code could be
171181
utilized in the `ffi` crate.
172182

173-
2. **Testing**: Any changes should include appropriate tests. Run `cargo test --release` to verify.
183+
2. **Testing**: Any changes should include appropriate tests. Run `cargo nextest run --release` to verify.
174184

175185
3. **Performance Context**: This is a database designed for blockchain state. Performance matters. Consider allocation patterns and hot paths.
176186

CHANGELOG.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,101 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [0.0.18] - 2025-12-17
6+
7+
### 🐛 Bug Fixes
8+
9+
- Hash mismatch when proposing on uncommitted proposal ([#1557](https://github.com/ava-labs/firewood/pull/1557))
10+
11+
### 🧪 Testing
12+
13+
- Guarantee that revisions work after commit ([#1558](https://github.com/ava-labs/firewood/pull/1558))
14+
15+
## [0.0.17] - 2025-12-16
16+
17+
### 🚀 Features
18+
19+
- *(ffi)* Stub for code hashes in proof ([#1526](https://github.com/ava-labs/firewood/pull/1526))
20+
- Add ffi support for dump() ([#1527](https://github.com/ava-labs/firewood/pull/1527))
21+
- Disable automatic io-uring enablement ([#1528](https://github.com/ava-labs/firewood/pull/1528))
22+
- [**breaking**] Open database with directory instead of filepath ([#1532](https://github.com/ava-labs/firewood/pull/1532))
23+
24+
### 🐛 Bug Fixes
25+
26+
- *(io-uring)* Use sqwait to correctly synchronize kernel updates ([#1523](https://github.com/ava-labs/firewood/pull/1523))
27+
- *(rootstore)* Respect db truncation ([#1538](https://github.com/ava-labs/firewood/pull/1538))
28+
- *(ffi/iterator)* Keep view alive for iterator lifetime ([#1542](https://github.com/ava-labs/firewood/pull/1542))
29+
- Generated instance names have whitespace ([#1550](https://github.com/ava-labs/firewood/pull/1550))
30+
31+
### 🚜 Refactor
32+
33+
- [**breaking**] Remove branch_factor_256 ([#1533](https://github.com/ava-labs/firewood/pull/1533))
34+
- [**breaking**] Go DB config to functional options pattern ([#1534](https://github.com/ava-labs/firewood/pull/1534))
35+
- *(ffi/iterator)* Move tests into a separate file ([#1543](https://github.com/ava-labs/firewood/pull/1543))
36+
37+
### 🧪 Testing
38+
39+
- *(fwdctl)* Parallelize test suite ([#1540](https://github.com/ava-labs/firewood/pull/1540))
40+
- *(firewood)* Reduce thread spawn count ([#1547](https://github.com/ava-labs/firewood/pull/1547))
41+
42+
### ⚙️ Miscellaneous Tasks
43+
44+
- Update GitHub templates ([#1525](https://github.com/ava-labs/firewood/pull/1525))
45+
- *(benchmark/bootstrap)* Remove Coreth branch option ([#1530](https://github.com/ava-labs/firewood/pull/1530))
46+
- *(firewood)* Clean up RevisionManager fields ([#1536](https://github.com/ava-labs/firewood/pull/1536))
47+
- Remove reference to RELEASES.md ([#1544](https://github.com/ava-labs/firewood/pull/1544))
48+
- Switch to cargo-nextest ([#1541](https://github.com/ava-labs/firewood/pull/1541))
49+
- Aws-launch.sh: libevm-commit -> libevm-branch ([#1552](https://github.com/ava-labs/firewood/pull/1552))
50+
- *(nextest)* Skip slow tests in local development ([#1551](https://github.com/ava-labs/firewood/pull/1551))
51+
52+
## [0.0.16] - 2025-12-09
53+
54+
### 🚀 Features
55+
56+
- Use `parking_lot` to eliminate lock poisoning ([#1476](https://github.com/ava-labs/firewood/pull/1476))
57+
- *(ffi)* Protect unsafe concurrent ops ([#1474](https://github.com/ava-labs/firewood/pull/1474))
58+
59+
### 🐛 Bug Fixes
60+
61+
- Mark node as allocated before serializing parent ([#1489](https://github.com/ava-labs/firewood/pull/1489))
62+
- *(parallel)* Track deleted nodes from root branch in parallel propose ([#1491](https://github.com/ava-labs/firewood/pull/1491))
63+
- Refactor io-uring to drive the queue to completion ([#1498](https://github.com/ava-labs/firewood/pull/1498))
64+
- *(ffi)* Hold onto verification context in next key range ([#1486](https://github.com/ava-labs/firewood/pull/1486))
65+
- *(range-proof)* Skip leaf nodes that come before lower bound ([#1512](https://github.com/ava-labs/firewood/pull/1512))
66+
- Correct architecture for m5ad.2xlarge ([#1514](https://github.com/ava-labs/firewood/pull/1514))
67+
- Race condition between view and commit ([#1519](https://github.com/ava-labs/firewood/pull/1519))
68+
- *(range-proofs)* Generate proofs for lower and upper bounds correctly ([#1513](https://github.com/ava-labs/firewood/pull/1513))
69+
70+
### 🚜 Refactor
71+
72+
- *(rootstore)* Remove `MockStore` ([#1477](https://github.com/ava-labs/firewood/pull/1477))
73+
- *(firewood/db)* Unify reopen methods ([#1481](https://github.com/ava-labs/firewood/pull/1481))
74+
- *(db/revisionmanager)* Move `RootStore` creation to `RevisionManager` ([#1482](https://github.com/ava-labs/firewood/pull/1482))
75+
- *(rootstore)* Remove box pointer ([#1484](https://github.com/ava-labs/firewood/pull/1484))
76+
- *(rootstore)* Own nodestore logic ([#1495](https://github.com/ava-labs/firewood/pull/1495))
77+
- *(checker)* Separate check and fix ([#1506](https://github.com/ava-labs/firewood/pull/1506))
78+
79+
### 📚 Documentation
80+
81+
- *(ffi)* Update godoc ([#1466](https://github.com/ava-labs/firewood/pull/1466))
82+
83+
### ⚡ Performance
84+
85+
- Avoid extra copying when comparing `HashOrRlp` ([#1505](https://github.com/ava-labs/firewood/pull/1505))
86+
87+
### 🧪 Testing
88+
89+
- Optimize init_merkle by removing redundant verification passes ([#1504](https://github.com/ava-labs/firewood/pull/1504))
90+
- Enhance aws-launch with show and terminate options ([#1517](https://github.com/ava-labs/firewood/pull/1517))
91+
92+
### ⚙️ Miscellaneous Tasks
93+
94+
- Update golangci yaml files ([#1492](https://github.com/ava-labs/firewood/pull/1492))
95+
- Remove windows remnants ([#1503](https://github.com/ava-labs/firewood/pull/1503))
96+
- *(db)* Remove unused `all_hashes()` method ([#1509](https://github.com/ava-labs/firewood/pull/1509))
97+
- *(bootstrap)* Update SSH authorized key for user 'brandon' ([#1510](https://github.com/ava-labs/firewood/pull/1510))
98+
- [**breaking**] Reorganize proof code ([#1511](https://github.com/ava-labs/firewood/pull/1511))
99+
5100
## [0.0.15] - 2025-11-18
6101

7102
### 🚀 Features

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ guidelines for contributing to firewood.
2323
After submitting a PR, we'll run all the tests and verify your code meets our submission guidelines. To ensure it's more likely to pass these checks, you should run the following commands locally:
2424

2525
cargo fmt
26-
cargo test
26+
cargo nextest run
2727
cargo clippy
2828
cargo doc --no-deps
2929

0 commit comments

Comments
 (0)