Skip to content

Commit 81e5462

Browse files
tizocdannywillems
authored andcommitted
docs(handover): Mention SNARK verification deduplication
1 parent c9a3887 commit 81e5462

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

docs/handover/mainnet-readiness.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff 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
2324
implemented to avoid the RocksDB dependency. This is unrelated to the new
2425
persistence design which intends to solve persistence for everything, not just
2526
the 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

docs/handover/persistence.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)