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:
17
17
- Reducing memory usage to handle mainnet-sized ledgers and amount of snarks.
18
18
- Enabling fast node restarts without full resync
19
19
- Supporting webnodes with browser storage constraints
20
+ - Providing a clean foundation for implementing SNARK verification deduplication
20
21
21
22
** Note** : There is a very old implementation for on-disk storage in
22
23
` ledger/src/ondisk ` that was never used - a lightweight key-value store
23
24
implemented to avoid the RocksDB dependency. This is unrelated to the new
24
25
persistence design which intends to solve persistence for everything, not just
25
26
the ledger. But the old implementation may be worth revisiting anyway.
26
27
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
+
27
34
### 2. Wide Merkle Queries
28
35
29
36
** Status** : Not implemented
Original file line number Diff line number Diff line change @@ -96,6 +96,13 @@ storage needs, nothing terribly advanced is required.
96
96
- Simple database lookup replaces expensive re-verification
97
97
- ** Expected Impact** : Would significantly reduce redundant verification work,
98
98
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.
99
106
100
107
### 5. Reduced Network Traffic and Improved Pool Consistency
101
108
You can’t perform that action at this time.
0 commit comments