v0.0.5
What's Changed
- build(deps): update pprof requirement from 0.12.1 to 0.13.0 by @dependabot in #283
- Correct some spelling errors in README.md by @rkuris in #284
- Update README.md by @JacobEverly in #286
- Nibbles nits by @gubatron in #285
- Corrected various typographical errors in code comments by @gubatron in #288
- Refactor
buffer.rsfor better readability and maintainability by @gubatron in #287 - 1/3 Implement improved API implementation for database by @rkuris in #227
- Remove 'static lifetime on key-type trait by @richardpringle in #289
- 2/3 Implement v2::api for the real DB by @rkuris in #292
- Untangling lifetimes and borrows by @richardpringle in #291
- chore: use
decodein single key proof verification by @xinifinity in #295 - Move methods to functions that don't reference self by @richardpringle in #296
- Remove proof feature from Cargo.toml by @rkuris in #300
- Renames for readability by @rkuris in #301
- Remove line about Docker in README by @richardpringle in #302
- chore: use
decodein range proof verification by @xinifinity in #303 - build(deps): update lru requirement from 0.11.0 to 0.12.0 by @dependabot in #306
- Switch to unbounded channel by @rkuris in #304
- chore: naming the elements of
ExtNodeby @xinifinity in #305 - Rely on mutable iterators instead of offsets by @richardpringle in #307
- Use iterators instead of continue by @richardpringle in #309
- chore: Remove the getter pattern over
ExtNodeby @xinifinity in #310 - API implementation part 3 by @rkuris in #308
- Cleanup merkle-insert code by @richardpringle in #311
- Simplify test by @rkuris in #312
- chore: proof cleanup by @xinifinity in #316
- Use bincode for serialization by @rkuris in #319
- Cleanup split logic by @richardpringle in #313
- Fix up example, use new async interface by @rkuris in #314
- build(deps): update typed-builder requirement from 0.16.0 to 0.17.0 by @dependabot in #320
- Add verify option to insert example by @rkuris in #321
- Rkuris/dead code cleanup by @rkuris in #322
- build(deps): update typed-builder requirement from 0.17.0 to 0.18.0 by @dependabot in #324
- Cleanup insert example verification by @richardpringle in #325
- Insert test by @richardpringle in #328
- Check all features by @richardpringle in #330
- More dead code cleanup by @rkuris in #331
- More merkle.rs cleanup by @richardpringle in #329
- Make Db::new async, force use of new API by @rkuris in #323
- Refactor tests by @rkuris in #332
- Shale: Remove dead code by @rkuris in #333
- Remove unused U64Field implementation for Storable by @rkuris in #334
- Remove MSIZE from DiskAddress by @rkuris in #335
- Remove TypedView trait by @rkuris in #336
- More shale cleanups by @rkuris in #337
- Move shale into firewood as a module by @rkuris in #338
- Enable manual trigger of default-cache build by @richardpringle in #339
- Rename hydrate/dehydrate to serialize/deserialize by @rkuris in #340
- Rkuris/streaming iterator from start by @rkuris in #346
- 1/3: kv_dump should be done with the iterator by @rkuris in #347
- Fix new clippy lint (rust 1.74.0) by @rkuris in #355
- Rkuris/range proofs by @rkuris in #345
- README updates by @rkuris in #357
- Enable lints for discussion by @rkuris in #356
- Add proof verification test by @richardpringle in #359
- Move range-proof-builder by @richardpringle in #361
- split node files by @richardpringle in #360
- Box the branch-node by @richardpringle in #367
- Rename Node Constructors by @richardpringle in #368
- Centralize Node Atomics by @richardpringle in #369
- Use leaf-node size by @richardpringle in #370
- Use bitflags for leaf-node attributes by @richardpringle in #371
- Use more strict types in node-(de)serialization by @richardpringle in #372
- Growth ring const function checks by @rkuris in #383
- Growth ring file handling improvements by @rkuris in #381
- Growth ring unwrap cleanups by @rkuris in #382
- Dead code removal by @rkuris in #385
- Unwrap warning addition by @rkuris in #384
- Expose NibblesIterator::is_empty by @rkuris in #389
- Range proof middles should contain all by @rkuris in #387
- Remove test for edge key length differences by @rkuris in #388
- Delegate branch-storage logic to the branch mod by @richardpringle in #373
- Range proofs can contain zero length data by @rkuris in #386
- Deserialize branch by @richardpringle in #374
- Implement Storable for LeafNode by @richardpringle in #376
- Finish deserialization of extension-node by @richardpringle in #377
- Move proof to be a sub-module of merkle by @richardpringle in #378
- growth-ring: Add remaining lint checks by @rkuris in #397
- Add shared-path-on-insert test by @richardpringle in #379
- Remove some unsafe code by @rkuris in #400
- Centralize trie-traversal for proof generation by @richardpringle in #380
- Cleanup
insert_and_return_updatesmethod by @richardpringle in #391 - Don't ignore results in tests by @richardpringle in #393
- Pluggable encoding for nodes by @xinifinity in #317
- Prefer bytemuck::Pod over Uninit by @rkuris in #405
- Rkuris/deny new unsafe growth ring by @rkuris in #401
- Rename rpc -> grpc-testtool by @rkuris in #407
- Bring grpc-testtool up to the lint standard by @rkuris in #409
- Rkuris/grpc make process server by @rkuris in #413
- More improvements for grpc service by @rkuris in #415
- Update process server proto by @rkuris in #417
- Write panics to the log by @rkuris in #419
- grpc-testtool: Finish error handler mapper by @rkuris in #421
- grpc-testtool: Switch from EmptyDB to Db by @rkuris in #422
- Rename revision() to latest() by @rkuris in #420
- Orchestrator interface changes by @rkuris in #423
- Update milestone by @xinifinity in #427
- Add more iterator tests by @richardpringle in #429
- Add Merkledb encoding schema by @xinifinity in #425
- build(deps): update aquamarine requirement from 0.3.1 to 0.4.0 by @dependabot in #434
- Update grpc-testtool README with specifics by @rkuris in #428
- Make encode test generic to cover all schemas by @xinifinity in #436
- Add nibbles_into_bytes for an arbitrary iterator by @rkuris in #435
- Handle Extension-nodes in Iterator by @richardpringle in #430
- Update testing instructions by @rkuris in #441
- fix readme instructions to run merkledb-tester by @danlaine in #445
- Add environment vars to instructions by @rkuris in #446
- Add docker instructions by @richardpringle in #437
- Allow for a seed by @rkuris in #453
- Only call
Obj.flush_dirtyindropif it is actually dirty by @xinifinity in #450 - Remove cache for is_longer_than_hash_len by @rkuris in #452
Proposal.commitconsume the underlyingDbRevdirectly to the base committed revision by @xinifinity in #456- explicit deref methods removal by @rkuris in #458
- Fix upcoming clippy lint by @rkuris in #459
- Delay block in place by @rkuris in #454
- Rename the arguments name for better clarification in
insertexample by @xinifinity in #463 - Consolidate attributes by @richardpringle in #466
- Add Dan Laine as a code owner by @rkuris in #467
- Remove unnecessary wrapper around Revision by @rkuris in #455
- Idiomatic conversion between
MutStoreandSharedStoreby @xinifinity in #468 - Change new_store method to use self by @rkuris in #470
- Make ObjRef Debug by @rkuris in #475
- Make range proof generation error on invalid bounds by @danlaine in #465
- build(deps): update serial_test requirement from 2.0.0 to 3.0.0 by @dependabot in #477
- Persist
is_encoded_longer_than_hash_lenproperty of a Node by @xinifinity in #474 - Add type-id to node::Meta struct for deserializing by @richardpringle in #480
- Use nibbles iterator in proof code by @richardpringle in #460
- Rename ObjRef type-alias by @richardpringle in #483
- Use
HashKeyalias instead of plain array by @richardpringle in #484 - Only use an iterator instead of an index by @richardpringle in #482
- Simplify proof-to-path errors by @richardpringle in #485
- Fix
serialized_lenin Node by @xinifinity in #486 - Clippy Warning fix with latest rust upgrade by @xinifinity in #488
- Persist the encoded value of a Node if its length is less than the hash by @xinifinity in #487
- build(deps): update aquamarine requirement from 0.4.0 to 0.5.0 by @dependabot in #496
- PlainMem is only for testing by @rkuris in #493
- Use fast crc32 crate instead in growth-ring by @xinifinity in #494
- Simplify path advancement in proof verification by @richardpringle in #497
- Logging in firewood, initial version by @rkuris in #489
- Add CONTRIBUTING.md by @rkuris in #490
- Fix a stream edge case by @richardpringle in #498
- build(deps): update env_logger requirement from 0.10.1 to 0.11.0 by @dependabot in #502
- Fix clippy by @richardpringle in #506
- update instructions for running tests by @danlaine in #510
- Use test-matrix for testing encoding for storage by @richardpringle in #509
- Simplify node-attribute flags for storage by @richardpringle in #505
- use bytemuck for metadata by @richardpringle in #500
- Add path to Branch-Nodes (don't use Extension-Nodes) by @richardpringle in #344
- Remove tracing subscriber by @rkuris in #515
- Add an upgrade check to CI by @rkuris in #519
- Make upgrade check a separate step by @rkuris in #524
- build(deps): update tonic-build requirement from 0.10.2 to 0.11.0 by @dependabot in #522
- build(deps): update tonic requirement from 0.10.2 to 0.11.0 by @dependabot in #523
- update clap dependency by @danlaine in #521
- Remove versioning-strategy: increase by @rkuris in #525
- update deps by @danlaine in #526
- Implement iterator over nodes; refactor key-value iterator by @danlaine in #517
- add support for start key argument in fwdctl dump command by @danlaine in #476
- Cargo upgrades by @rkuris in #531
- Improve build.rs by @rkuris in #535
- Take out the updates step for now by @rkuris in #536
- Add some rust-based benchmarks by @rkuris in #528
- Switch to strum's from_repr by @rkuris in #541
- Path iterator by @danlaine in #530
- Add proto file for service exposing views/proposals by @danlaine in #529
- Use path iterator in
merkle.proveandmerkle.get_node_by_keyby @danlaine in #534 - Name the diskbuffer thread by @rkuris in #540
- Removed the only dbg! macro in firewood by @rkuris in #539
- remove dead code
remove_oldand helpers by @danlaine in #542 - update merkle proto definition by @danlaine in #546
- Box over vec for io by @rkuris in #543
- Update or insert nodes by @richardpringle in #545
- Add
into_innermethod so we don't have tocloneby @richardpringle in #548 - Use
Keytype instead ofBox<[u8]>by @danlaine in #550 - Remove extension nodes by @danlaine in #552
- Remove Option from ObjPtr by @rkuris in #551
- merkle.proto cleanups by @rkuris in #562
- MerkleKeyValueStream and friends should implement Debug by @rkuris in #561
- Fix
bincodeencoding of partial paths by @danlaine in #560 - Add the iterator to the public async API by @rkuris in #544
- rename MerkleSetup to InMemoryMerkle by @danlaine in #564
- Prevent mutations to DbRev by @rkuris in #566
- replace NodeObjRef with NodeType as merkle.encode arg by @danlaine in #565
- build(deps): update nix requirement from 0.27.1 to 0.28.0 by @dependabot in #563
- remove dead code from bincode deserialize of EncodedNode by @danlaine in #567
- remove
Encodedtype by @danlaine in #568 - remove terminal flag from PartialPath by @danlaine in #571
- Use the typed encoder, not always Bincode by @rkuris in #573
- Make the merkle tests idempotent by @rkuris in #572
- Make sure free space has a writeable CachedStore by @rkuris in #574
- shale naming cleanups by @danlaine in #582
- clean up new_internal by @danlaine in #580
- nit: move clippy pragma closer to usage by @danlaine in #578
- dont panic on error during disk buffer creation by @danlaine in #579
- remove plainmem by @danlaine in #583
- rename compact_space to data_space by @danlaine in #585
- remove unused type DiskWrite by @danlaine in #584
- remove
ShaleStoretrait by @danlaine in #586 - rename node
pathfields topartial_pathby @danlaine in #587 - rename
PartialPathtoPathby @danlaine in #588 - remove
EncodedNodeTypeby @danlaine in #589 - remove
Datatype by @danlaine in #590 - always use 'value' instead of 'data' to describe the thing inside nodes by @danlaine in #591
- proof nits by @danlaine in #592
- Don't
Boxthe children! by @richardpringle in #594 - don't assume DiskAddress is 8 bytes in CompactSpaceHeader by @danlaine in #596
- dont panic on invalid
DiskAddresslength by @danlaine in #595 - delete unused sender.rs by @danlaine in #600
- Warning cleanups for next version of rust by @rkuris in #601
- rename MSIZE to SERIALIZED_LEN by @danlaine in #598
- fix/clarify MSIZE declarations by @danlaine in #599
- remove PayloadSize type by @danlaine in #597
- Shale cleanup by @danlaine in #607
- nit reorder impl by @danlaine in #608
- rename cached.rs to in_mem.rs by @danlaine in #609
- Rename
Compacttypes by @danlaine in #610 - Clean up header and footer usage by @danlaine in #611
- rename space to store by @danlaine in #612
- tweak descriptor method names by @danlaine in #614
- Improve
freereadability by @danlaine in #613 - rename ptr to addr by @danlaine in #619
- Improve
alloc_from_freedreadability by @danlaine in #615 - clean up
delete_descriptorby @danlaine in #616 - rename root to sentinel where needed by @danlaine in #622
- Update README.md by @ForestKeeperIO in #623
- more
compactnits/cleanup by @danlaine in #618 - New node store interface by @rkuris in #625
- add comments on where nibbles vs bytes are expected by @danlaine in #702
- Remove nix dependency by @rkuris in #703
- Rkuris/fix codeowners by @rkuris in #704
- build(deps): update typed-builder requirement from 0.18.1 to 0.19.1 by @dependabot in #684
- Update dependencies from dependabot by @rkuris in #705
- Implement commit by @rkuris in #701
- build(deps): update lru requirement from 0.8.0 to 0.12.4 by @dependabot in #708
- Code cleanups by @rkuris in #709
- Implement reparenting (depends on 701) by @rkuris in #706
- build(deps): update typed-builder requirement from 0.19.1 to 0.20.0 by @dependabot in #711
- Implement more of the API by @rkuris in #710
- Implement reopen by @rkuris in #713
- Reap deleted nodes by @rkuris in #714
- build(deps): bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows by @dependabot in #715
- Re-enable fwdctl by @rkuris in #716
- Use a boxed slice instead of a vec by @rkuris in #718
- Doc update by @rkuris in #717
- Benchmark + metrics by @rkuris in #719
- For NodeStoreHeader, use bytemuck not bincode by @rkuris in #723
- Improve revision reaping by @rkuris in #725
- Expose graph option for fwdctl by @rkuris in #724
- Benchmark stats by @rkuris in #726
- build(deps): update aquamarine requirement from 0.5.0 to 0.6.0 by @dependabot in #727
- Allow configurable dbname in benchmark by @rkuris in #728
- Break after determining we can't reap the latest by @rkuris in #729
- Allow for arbitrary sized allocations by @rkuris in #730
- Rkuris/varint everywhere by @rkuris in #731
- Must delete from context of latest revision by @rkuris in #732
- Cache size adjustments by @rkuris in #733
- Terminate the benchmark after 65 mintues by @rkuris in #734
- Increase free list cache sizes by @rkuris in #735
- Remove histograms by @rkuris in #736
- Rkuris/giant node test by @rkuris in #737
- Metrics updates by @rkuris in #745
- Add feature branch_factor_256 by @rkuris in #746
- Lint cleanups by @rkuris in #748
- build(deps): update thiserror requirement from 1.0.57 to 2.0.3 by @dependabot in #751
- build(deps): update pprof requirement from 0.13.0 to 0.14.0 by @dependabot in #750
- Benchmark README updates by @rkuris in #752
- Single now takes batch size argument by @rkuris in #753
- Fix deprecated gh-pages action by @rkuris in #754
- Add build prerequisites to readme by @sergerad in #756
- Rkuris/manual serialization by @rkuris in #757
- README updates by @rkuris in #758
- Rkuris/readme by @rkuris in #759
- Elide lifetimes by @rkuris in #760
- Opentelemetry implementation by @rkuris in #761
- build(deps): update metrics-util requirement from 0.18.0 to 0.19.0 by @dependabot in #765
- Fix delete wrong key by @rkuris in #766
- Improve fwdctl dump by @zdf1230 in #764
- Rkuris/golang ffi by @rkuris in #763
- build(deps): update cbindgen requirement from 0.27.0 to 0.28.0 by @dependabot in #767
- Fix leak for db.Root() method by @rkuris in #768
- build(deps): update bitfield requirement from 0.17.0 to 0.18.1 by @dependabot in #772
- Don't use smallvec for the value by @rkuris in #774
- Properly document recursive hash committed by @rkuris in #773
- build(deps): update lru requirement from 0.12.4 to 0.13.0 by @dependabot in #771
- Migrate to rand_distr for zipf by @rkuris in #775
- Use read_at and write_at to avoid mutating File by @rkuris in #776
- Remove one more seek by @rkuris in #777
- Add option to disable the telemetry reporting by @rkuris in #779
- Upgrade rand to 0.9.0 by @rkuris in #780
- Remove or downgrade dependencies by @rkuris in #782
- Invert and rename telemetry argument by @rkuris in #784
- Reformat all imports by @rkuris in #788
- Allow for caching of reads by @rkuris in #789
- Rkuris/cache read strategy in benchmark cmd by @rkuris in #790
- Rkuris/cache read strategy expose to ffi by @rkuris in #791
- Add periodic metric reporting to the ffi by @rkuris in #792
- Switch Arc for triomphe::Arc by @rkuris in #793
- io_uring implementation by @rkuris in #778
- Include a mode for cache metrics. by @rkuris in #796
- Add metrics for prefix deletes by @rkuris in #794
- Dashboard updates by @rkuris in #797
- Adds the following metrics: by @rkuris in #800
- Rkuris/write stats by @rkuris in #802
- build(deps): update bitfield requirement from 0.18.1 to 0.19.0 by @dependabot in #801
- Remove MerkleError and DbError by @rkuris in #811
- refactor!(ffi): overhaul Go bindings by @ARR4N in #810
- ethhash WIP by @rkuris in #807
- build(deps): update typed-builder requirement from 0.20.0 to 0.21.0 by @dependabot in #815
- Add logging to ffi by @rkuris in #820
- Fix branch delete with value by @rkuris in #821
- Fix ethhash rehash logic by @rkuris in #823
- Remove an allocation by @rkuris in #822
- Use jemalloc in ffi by @rkuris in #824
- Fixes build --release warning by @rkuris in #828
- build(deps): update tonic requirement from 0.12.1 to 0.13.0 by @dependabot in #826
- build(deps): update opentelemetry requirement from 0.28.0 to 0.29.0 by @dependabot in #816
- return nil, nil on not found by @darioush in #829
- Rust 2024 by @rkuris in #799
- Move triehash to here by @rkuris in #830
- Rust 1.86 lint cleanups by @rkuris in #833
- test(ffi/tests): basic eth compatibility by @darioush in #825
- Speed up CI by @rkuris in #834
- chore(ffi/tests): update go-ethereum v1.15.7 by @darioush in #838
- build(deps): update lru requirement from 0.13.0 to 0.14.0 by @dependabot in #840
- chore(ffi): fix typo fwd_close_db comment by @aaronbuchwald in #843
- Clippy was complaining that
Statuswas too big by @rkuris in #844 - Update CODEOWNERS by @rkuris in #846
- Add READMEs to generated documentation by @rkuris in #847
- Add some additional open checks by @rkuris in #845
- Downgrade upload-artifact by @rkuris in #849
- Clean up installation scripts by @rkuris in #852
- fix typo in benchmark readme by @aaronbuchwald in #851
- build(deps): update metrics-exporter-prometheus requirement from 0.16.1 to 0.17.0 by @dependabot in #853
- build(deps): update rand requirement from 0.8.5 to 0.9.1 by @dependabot in #850
- Update prereqs to include cargo and make by @aaronbuchwald in #848
- GH Pages fixes by @rkuris in #858
- Doc fixes by @rkuris in #859
- fix(ffi): prevent memory leak and tips for finding leaks by @alarso16 in #862
- feat(ffi): ffi error messages by @alarso16 in #860
- fix(src): drop unused revisions by @alarso16 in #866
- Add GH token to arduino/setup-protoc by @aaronbuchwald in #869
- feat(ffi): proposal creation isolated from committing by @rkuris in #867
- Various cleanups by @rkuris in #870
- doc(ffi): remove private declarations from public docs by @alarso16 in #874
- fix(ffi): Clarify roles of
Valueextractors by @alarso16 in #875 - Disable metrics during ffi unit tests by @aaronbuchwald in #876
- feat(ffi): Get values from proposals by @alarso16 in #877
- feat(ffi): Full proposal support by @alarso16 in #878
- feat(ffi): Support
Getfor historical revisions by @alarso16 in #881 - Error improvements by @rkuris in #857
- Austin owns ffi by @rkuris in #889
- If ethhash is enabled, return the hash for nil RLP by @rkuris in #888
- fix(ffi): Check revision is available by @alarso16 in #890
- Add workflow to generate and attach static libraries for golang FFI by @aaronbuchwald in #868
- Fix tag handling for attach static libs by @aaronbuchwald in #895
- fix(ffi): prevent undefined behavior on empty slices by @alarso16 in #894
- ci(ffi): add linter by @alarso16 in #893
- Update FFI tests to test both default firewood + ethhash by @aaronbuchwald in #891
- test(ethhash): Use libevm by @alarso16 in #900
- Skip attach static libs if required secret is missing for external PRs by @aaronbuchwald in #908
- Add matrix to build job by @aaronbuchwald in #911
- build(deps): update pprof requirement from 0.14.0 to 0.15.0 by @dependabot in #906
- build(deps): update cbindgen requirement from 0.28.0 to 0.29.0 by @dependabot in #899
- build(deps): update criterion requirement from 0.5.1 to 0.6.0 by @dependabot in #898
- build(deps): bump golang.org/x/crypto from 0.17.0 to 0.35.0 in /ffi/tests by @dependabot in #907
- Rkuris/readme fixes by @rkuris in #902
- Free C string filepath via defer by @aaronbuchwald in #916
- Remove unreachable test cases by @aaronbuchwald in #917
- Add revision counters by @rkuris in #919
- build(deps): bump google.golang.org/protobuf from 1.27.1 to 1.33.0 /ffi/tests by @alarso16 in #923
- Windows OS support by @rkuris in #922
- feat(ffi): add proposal root retrieval by @alarso16 in #910
- build(deps): bump google.golang.org/protobuf from 1.30.0 to 1.33.0 by @alarso16 in #924
- fix: Fix empty hash values by @rkuris in #925
- Batch dependabot opentelemetry updates by @aaronbuchwald in #913
- refactor(ffi): Cleanup unused and duplicate code by @alarso16 in #926
- Cleanup ffi unit tests by @aaronbuchwald in #932
- ci: Require conventional commit format by @rkuris in #933
- Remove duplicated comments in nodestore.rs by @qusuyan in #931
- chore: Bump to v0.5.0 by @rkuris in #934
New Contributors
- @JacobEverly made their first contribution in #286
- @gubatron made their first contribution in #285
- @ForestKeeperIO made their first contribution in #623
- @sergerad made their first contribution in #756
- @zdf1230 made their first contribution in #764
- @ARR4N made their first contribution in #810
- @darioush made their first contribution in #829
- @alarso16 made their first contribution in #862
- @qusuyan made their first contribution in #931
Full Changelog: v0.0.4...v0.0.5