Skip to content

Instantly share code, notes, and snippets.

#include <cstdint>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <boost/range/iterator_range.hpp>
#include <boost/spirit/home/support/char_encoding/unicode.hpp>
namespace {
@vtnerd
vtnerd / benchmark.md
Last active November 21, 2022 15:46
Information about Monero Wallet Benchmarking

Benchmark for Various Wallet Crypto Modes

Research into performance optimizations for wallet scanning. Primarily useful for organizations handling multiple wallets.

Variations

  • Standard - "whatever monero-wallet-cli is currently doing".
  • 3-bit pre-computed table - pre-compute a small table for the ECDH step (tx pub shared secret). Only useful if scanning multiple wallets at a time (i.e. mymonero case).
  • spend public de-compression - de-compress the spend public key from (y) to (x,y,z,t) exactly once. Currently this is done for every output scanned
  • curve25519 shared secret - Use curve25519 for the ECDH step (tx pub shared secret) instead of the ed25519 curve. This is faster in some cases because there are many montgomery ladder implementations for this curve.

Optimizations

  • ref10 - default implementation currently in use by monero-wallet-cli.