
A high performance, homegrown Solana validator Developing the full node client Mithril Team: @7LayerMagik & @dubbel06
Joined May 2022
- Tweets538
- Following964
- Followers2.8K
- Likes1.3K
The multicore bench stats in the original thread were outdated and have now been updated
Replying to @OverclockSol
9/ Across 8 cores we measured 1.217M signatures/s, short of 8× the single-core rate because all-core AVX-512 drops the clocks.
9/ Across 8 cores we measured 1.217M signatures/s, short of 8× the single-core rate because all-core AVX-512 drops the clocks.
8/ For recurring keys it goes further, caching the decoded public key and then promoting hot ones to a precomputed table. With 64 promoted keys on the same Zen 5 host, n=64 measured 3.776 µs/sig, 7.3× stdlib. How much you get depends on key population and locality.
2/ Narya is a no-cgo Go library using AVX-512 IFMA assembly.
The numbers below are cold strict verification on 1232-byte messages, with no per-key state cached between calls. Most of the gain shows up once you have eight signatures, since that's what fills the lanes.
1/ Ed25519 verification is a major cost in Solana block replay. Mithril is written in Go, and the standard Go library wasn't enough for the throughput we wanted.
Today we're releasing narya-ed25519. 5.8× faster than crypto/ed25519 at 4.7 µs/sig (Zen5).
github.com/Overclock-Validat…
3/ Mithril’s performance has improved substantially. Mainnet block execution latency is roughly half what it was in the alpha release.
On a relatively small server, Mithril can execute full-CU blocks in under 400ms, helped by wins like better-parallelized account loading.
7/ Here’s a video of the tail end of this catch up process. In this run we fetched blocks from a @heliuslabs RPC endpoint to execute and get as close to the network tip as possible.
Any mismatches versus mainnet execution result in internal errors that halt a Mithril node.
6/ Once a node reaches the chain tip (most recent confirmed slot in our current setup), it enters a steady state where replay settles closer to slot speed (~400 ms/slot or ~2.5 slots/s ).
Even less bandwidth is needed at this stage, roughly 10 to 30 Mbit/s download currently.










