Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
7dee974
feat(ffi-refactor): replace sequence id with pointer to proposals (8/8)
demosdemon Aug 22, 2025
2808bf2
feat: verify range proofs
demosdemon Aug 22, 2025
53fb5f4
Merge branch 'main' into brandon.leblanc/ffi-refactor
demosdemon Aug 27, 2025
ffcd74d
Merge branch 'main' into brandon.leblanc/range-proofs
demosdemon Aug 27, 2025
7efdf98
Merge branch 'main' into brandon.leblanc/ffi-refactor
demosdemon Aug 27, 2025
9071f19
Merge remote-tracking branch 'origin/main' into brandon.leblanc/ffi-r…
demosdemon Sep 5, 2025
483538f
use something adding in merge
demosdemon Sep 5, 2025
d8ebb92
Merge remote-tracking branch 'origin/main' into brandon.leblanc/ffi-r…
demosdemon Sep 5, 2025
87515fc
errant change from resolving merge conflicts
demosdemon Sep 5, 2025
6b1e3af
start moving things out of memory.go
demosdemon Sep 5, 2025
8171ef7
fix doc error
demosdemon Sep 5, 2025
6623b24
Merge branch 'brandon.leblanc/ffi-refactor' into brandon.leblanc/rang…
demosdemon Sep 8, 2025
d3e2ac7
Merge branch 'main' into brandon.leblanc/ffi-refactor
demosdemon Sep 8, 2025
508dceb
Merge branch 'brandon.leblanc/range-proofs' of github.com:ava-labs/fi…
demosdemon Sep 8, 2025
293c1bb
Merge branch 'brandon.leblanc/ffi-refactor' into brandon.leblanc/rang…
demosdemon Sep 8, 2025
b91c949
replace broken code with todo
demosdemon Sep 8, 2025
c04104b
feat!: rename `Hashable::key`
demosdemon Sep 9, 2025
6792c2f
put back the filtered child_hashes
demosdemon Sep 9, 2025
1d1c29a
comments
demosdemon Sep 9, 2025
1705b44
correct comments on the trait
demosdemon Sep 9, 2025
acf3e94
feat(proofs)!: add v0 serialization for RangeProofs
demosdemon Sep 10, 2025
eb9e4ec
go fmt
demosdemon Sep 10, 2025
febb68e
update err to match on both ethhash and not
demosdemon Sep 10, 2025
49f9366
ensure partial range proofs generate and serialize
demosdemon Sep 10, 2025
ec8ee02
Merge branch 'main' into brandon.leblanc/ffi-refactor
demosdemon Sep 10, 2025
c3e0da7
feedback updates
demosdemon Sep 10, 2025
9cc3c53
golint
demosdemon Sep 10, 2025
e0fc829
Merge branch 'brandon.leblanc/ffi-refactor' into brandon.leblanc/rang…
demosdemon Sep 10, 2025
7802d5e
update documentation
demosdemon Sep 10, 2025
40c33cc
make ChildrenMap generic
demosdemon Sep 10, 2025
3629d76
fix docs
demosdemon Sep 10, 2025
ccc5f1c
Merge branch 'brandon.leblanc/hashable-trait-methods' into brandon.le…
demosdemon Sep 10, 2025
d182370
Merge branch 'brandon.leblanc/serialized-range-proofs' into brandon.l…
demosdemon Sep 10, 2025
5238e10
Merge branch 'brandon.leblanc/ffi-refactor' into brandon.leblanc/rang…
demosdemon Sep 10, 2025
7aaa681
more tests and document the DOS
demosdemon Sep 10, 2025
6b33cf2
simplify tests
demosdemon Sep 10, 2025
31648d7
consistency
demosdemon Sep 10, 2025
e84ae42
rewrite reader to be easier to read
demosdemon Sep 10, 2025
60b54ae
finish moving things around
demosdemon Sep 10, 2025
f0375c4
fix docs
demosdemon Sep 10, 2025
72a444d
hide ProofType too
demosdemon Sep 10, 2025
4ed5534
Merge branch 'brandon.leblanc/serialized-range-proofs' into brandon.l…
demosdemon Sep 10, 2025
b46ca19
check that the keys drom the dropped proposal are not in the db
demosdemon Sep 10, 2025
4cd489b
Merge branch 'brandon.leblanc/ffi-refactor' into brandon.leblanc/rang…
demosdemon Sep 10, 2025
d7b0aaf
remove unused variants
demosdemon Sep 10, 2025
00fd3fb
wip
demosdemon Sep 12, 2025
4593409
wip
demosdemon Sep 12, 2025
52f0435
undo the Copy
demosdemon Sep 12, 2025
4e4aa06
resolve recursive type problem
demosdemon Sep 12, 2025
0892ad5
resolve doc errors
demosdemon Sep 12, 2025
1cc7451
wip
demosdemon Sep 12, 2025
0fe84f6
wip
demosdemon Sep 12, 2025
77fd1a1
some logger changes
demosdemon Sep 12, 2025
71352a1
more wip
demosdemon Sep 12, 2025
3cd0009
reorganize
demosdemon Sep 13, 2025
c98b53b
missed change
demosdemon Sep 13, 2025
27b64b1
reorganize more
demosdemon Sep 13, 2025
1563f22
wip
demosdemon Sep 13, 2025
f8c9d9d
tweak test_bad_range_proof
demosdemon Sep 13, 2025
67c0f20
trace logging on tries
demosdemon Sep 13, 2025
89085a7
iter and collect missing keys
demosdemon Sep 14, 2025
39cb739
fix 1 test
demosdemon Sep 14, 2025
081d56d
timing logs for init_merkle
demosdemon Sep 14, 2025
38bf64e
skip step for large number of items
demosdemon Sep 14, 2025
e267470
lower threshold
demosdemon Sep 14, 2025
18cedb2
fix but with exclusion proofs from before the first key
demosdemon Sep 14, 2025
7508405
Merge branch 'main' into brandon.leblanc/hashable-trait-methods
demosdemon Sep 15, 2025
21ba3b7
Merge branch 'brandon.leblanc/hashable-trait-methods' into brandon.le…
demosdemon Sep 15, 2025
3669d24
Merge branch 'brandon.leblanc/serialized-range-proofs' into brandon.l…
demosdemon Sep 15, 2025
403a158
test(firewood): use ctor section to init logger for all tests
demosdemon Sep 15, 2025
cdc8744
Merge branch 'main' into brandon.leblanc/logging-in-tests
demosdemon Sep 15, 2025
5e7cca7
fix(range-proofs): serialize range proof key consistently
demosdemon Sep 15, 2025
87f3252
Merge branch 'brandon.leblanc/fix-left-exclusion-proof' into brandon.…
demosdemon Sep 15, 2025
c57a8d4
Merge branch 'brandon.leblanc/logging-in-tests' into brandon.leblanc/…
demosdemon Sep 15, 2025
6a6648d
Merge remote-tracking branch 'origin/main' into brandon.leblanc/seria…
demosdemon Sep 15, 2025
b818975
Merge remote-tracking branch 'origin/main' into brandon.leblanc/fix-l…
demosdemon Sep 15, 2025
7ab26ab
Merge branch 'main' into brandon.leblanc/serialized-range-proofs
demosdemon Sep 15, 2025
6348f89
fix(range-proofs): fix verify of exclusion proofs
demosdemon Sep 15, 2025
55c34f6
wip
demosdemon Sep 15, 2025
4a6a77d
Merge branch 'brandon.leblanc/fix-left-exclusion-proof' into brandon.…
demosdemon Sep 15, 2025
662daa3
Merge branch 'main' into brandon.leblanc/fix-left-exclusion-proof
demosdemon Sep 15, 2025
ff250bc
Merge branch 'brandon.leblanc/fix-left-exclusion-proof' into brandon.…
demosdemon Sep 15, 2025
329f69e
ethhash difference
demosdemon Sep 15, 2025
7d2b524
wip
demosdemon Sep 15, 2025
e57666a
fix for ethhash
demosdemon Sep 15, 2025
e4f8ee8
Merge branch 'brandon.leblanc/fix-left-exclusion-proof' into brandon.…
demosdemon Sep 15, 2025
07bf0d1
Merge branch 'brandon.leblanc/serialized-range-proofs' into brandon.l…
demosdemon Sep 15, 2025
ef33c2c
unwrap_err
demosdemon Sep 15, 2025
d34e0cf
check for state from outside the range
demosdemon Sep 16, 2025
e7f0714
enable tests
demosdemon Sep 16, 2025
7580057
Merge remote-tracking branch 'origin/brandon.leblanc/fix-verify-exclu…
demosdemon Sep 16, 2025
2bf78f1
Merge branch 'brandon.leblanc/ffi-refactor' into brandon.leblanc/rang…
demosdemon Sep 16, 2025
228b463
Merge remote-tracking branch 'origin/main' into brandon.leblanc/ffi-r…
demosdemon Sep 16, 2025
ec865c8
Merge branch 'main' into brandon.leblanc/ffi-refactor
demosdemon Sep 16, 2025
e016324
Merge branch 'brandon.leblanc/ffi-refactor' into brandon.leblanc/rang…
demosdemon Sep 16, 2025
eabf086
minor cleanup
demosdemon Sep 16, 2025
c29d530
undo unrelated change
demosdemon Sep 16, 2025
4d68ad9
fix collecting the path during iterating
demosdemon Sep 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ firewood-triehash = { path = "triehash", version = "0.0.12" }

# common dependencies
aquamarine = "0.6.0"
bytemuck = "1.23.1"
bytemuck = { version = "1.23.1", features = ["must_cast"] }
bytemuck_derive = "1.10.0"
clap = { version = "4.5.41", features = ["derive"] }
coarsetime = "0.1.36"
Expand All @@ -75,7 +75,7 @@ metrics-util = "0.20.0"
nonzero_ext = "0.3.0"
rand_distr = "0.5.1"
sha2 = "0.10.9"
smallvec = "1.15.1"
smallvec = { version = "1.15.1", features = ["write", "union"] }
test-case = "3.3.1"
thiserror = "2.0.12"

Expand Down
25 changes: 23 additions & 2 deletions ffi/firewood.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,7 @@ func (db *Database) Propose(keys, vals [][]byte) (*Proposal, error) {
return nil, err
}

val := C.fwd_propose_on_db(db.handle, kvp)
return newProposal(db.handle, &val)
return getProposalFromProposalResult(C.fwd_propose_on_db(db.handle, kvp), db)
}

// Get retrieves the value for the given key. It always returns a nil error.
Expand Down Expand Up @@ -231,3 +230,25 @@ func (db *Database) Revision(root []byte) (*Revision, error) {

return &Revision{database: db, root: root}, nil
}

// Close releases the memory associated with the Database.
//
// This is not safe to call while there are any outstanding Proposals. All proposals
// must be freed or committed before calling this.
//
// This is safe to call if the pointer is nil, in which case it does nothing. The
// pointer will be set to nil after freeing to prevent double free. However, it is
// not safe to call this method concurrently from multiple goroutines.
func (db *Database) Close() error {
if db.handle == nil {
return nil
}

if err := getErrorFromVoidResult(C.fwd_close_db(db.handle)); err != nil {
return fmt.Errorf("unexpected error when closing database: %w", err)
}

db.handle = nil // Prevent double free

return nil
}
Loading
Loading