Bitcoin full node and query server

Jun 6, 2026

View in context in the libbitcoin Slack #general mirror.

Vano Chkheidze18:55
For a 3.5B-tuple run, the transform cost is dominated by memory traffic, not CPU arithmetic. With the current row path, each tuple has to be read once from the horizontal table and written once into vertical buffers before UF can call the existing columnar GPU ABI. Approximate payload per tuple:
  • ECDSA: 32-byte hash + 33-byte compressed pubkey + 64-byte signature = 129 bytes.
  • Schnorr: 32-byte hash + 32-byte x-only pubkey + 64-byte signature = 128 bytes.
  • If the correlation key is part of the transformed bridge record, add 6 bytes, but for vertical storage it can remain an independent libbitcoin-side column and does not need to be passed to UF verification.
So for 3.5B tuples:
  • ECDSA verify payload: 3.5B * 129 = ~451.5 GB decimal, ~420.5 GiB.
  • Schnorr verify payload: 3.5B * 128 = ~448.0 GB decimal, ~417.2 GiB.
  • With a 6-byte key included: add ~21.0 GB decimal, ~19.6 GiB.
A row-to-column transform touches at least read + write, so the extra memory traffic is roughly:
  • ECDSA: ~903 GB decimal / ~841 GiB.
  • Schnorr: ~896 GB decimal / ~834 GiB.
  • With 6-byte key copied too: add another ~42 GB decimal / ~39 GiB traffic.
Wall-clock estimate depends on sustained host memory bandwidth:
  • 50 GB/s effective: ~18 seconds for ~900 GB.
  • 100 GB/s effective: ~9 seconds.
  • 150 GB/s effective: ~6 seconds.
  • 200 GB/s effective: ~4.5 seconds.
In practice it may be worse if this is NUMA-unfriendly, competes with mmap/page-cache traffic, or runs while GPU transfers are also consuming bandwidth. It may also be partially hidden if transform is pipelined while previous chunks are on the GPU. The main point: the transform is not asymptotically expensive, but at 3.5B tuples it is a real full-chain memory-bandwidth tax. Vertical storage avoids one full read+write pass over roughly 0.45-0.47 TB of data per validation run. If the correlation key remains an independent libbitcoin column, UF does not need to receive or copy it for pure signature verification.