File tree Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -17,13 +17,20 @@ mainnet's scale. Persistence is required for:
1717- Reducing memory usage to handle mainnet-sized ledgers and amount of snarks.
1818- Enabling fast node restarts without full resync
1919- Supporting webnodes with browser storage constraints
20+ - Providing a clean foundation for implementing SNARK verification deduplication
2021
2122** Note** : There is a very old implementation for on-disk storage in
2223` ledger/src/ondisk ` that was never used - a lightweight key-value store
2324implemented to avoid the RocksDB dependency. This is unrelated to the new
2425persistence design which intends to solve persistence for everything, not just
2526the ledger. But the old implementation may be worth revisiting anyway.
2627
28+ ** Performance Impact** : The importance of SNARK verification deduplication for
29+ mainnet performance has been demonstrated in the OCaml node, where we achieved
30+ dramatic improvements (8-14 seconds → 0.015 seconds for block application). See
31+ the "SNARK Verification Deduplication" section in
32+ [ persistence.md] ( persistence.md ) for details.
33+
2734### 2. Wide Merkle Queries
2835
2936** Status** : Not implemented
Original file line number Diff line number Diff line change @@ -96,6 +96,13 @@ storage needs, nothing terribly advanced is required.
9696 - Simple database lookup replaces expensive re-verification
9797- ** Expected Impact** : Would significantly reduce redundant verification work,
9898 especially during high network activity
99+ - ** Reference Implementation** : We implemented this optimization in the OCaml
100+ node ([ PR #12522 ] ( https://github.com/MinaProtocol/mina/pull/12522 ) ) and
101+ demonstrated dramatic performance improvements: block application time for
102+ blocks with many completed works was reduced from ~ 8-14 seconds to ~ 0.015
103+ seconds by avoiding re-verification of SNARKs already present in the SNARK
104+ pool. This was not implemented in OpenMina yet as it was planned to be done as
105+ part of the persistence implementation.
99106
100107### 5. Reduced Network Traffic and Improved Pool Consistency
101108
You can’t perform that action at this time.
0 commit comments