-
Notifications
You must be signed in to change notification settings - Fork 738
feat: add marf compress node config #6811
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
feat: add marf compress node config #6811
Conversation
…ue if it's 0, store a bitmap and non-empty trie ptrs if the list is sparse, and store node patches atop full nodes (and read them back)
…then record the original node from which it was copied so that a TrieNodePatch can be calculated and stored instead
…oid repeating nodes across tries
… each node and see if we can instead patch an existing node instead of storing a (mostly-unchanged) copy
…ead due to a mismatch between cur_block and cur_block_id borne out of retargeting a trie
e82fa1f to
0f2c048
Compare
Codecov Report❌ Patch coverage is ❌ Your project check has failed because the head coverage (64.34%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.
Additional details and impacted files@@ Coverage Diff @@
## develop #6811 +/- ##
============================================
- Coverage 79.61% 64.34% -15.27%
============================================
Files 589 598 +9
Lines 357111 358670 +1559
============================================
- Hits 284300 230803 -53497
- Misses 72811 127867 +55056
... and 366 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
…obs withing the sqlite db, stacks-network#6593
…ndex(..) and StacksChainState::open_index(..), stacks-network#6593
8e487b3 to
d5376fc
Compare
…kamotoBlockProposal::validate_replay(..), stacks-network#6593
Initially added to make MARFOpenOpts compatible with Burnchain. Now removed as it seems serialization is not really used for Burnchain and PoxConstants.
…heck (never run before). Move perf analisys test in dedicated module.
…it just control patch depth
…erseded by set_block() Remove unused TrieFileStorage::retarget
…_read_patched_persisted_nodetype()
Description
This PR introduces a node configuration option to explicitly enable the MARF compression feature:
Applicable issues
Additional info (benefits, drawbacks, caveats)
With this PR, MARF options defined in the node configuration are propagated to the following databases:
MarfedKV::open(..)(already supported)StacksChainState::open_index(..)(updated to accept MARF options)SortitionDB::open_index(..)(updated to accept MARF options)Some refactoring was required to ensure MARF options are correctly passed through to the Chainstate and Sortition databases. These changes do not affect core logic. The most notable adjustments are:
ChainsCoordinator::run(), burnchain databases are now retrieved directly from the Burnchain instance rather than opened inline, allowing MARF options to be inherited consistently.NakamotoBlockProposal::validate_replay(),StacksChainStateis now accepted as a handle for reopening connections, making it easier to inherit MARF options.Burchainstruct, serialization traits were removed (as they do not appear to be used in practice), avoiding the need to apply them to MARFOpenOpts.Checklist
docs/rpc/openapi.yamlandrpc-endpoints.mdfor v2 endpoints,event-dispatcher.mdfor new events)clarity-benchmarkingrepo