Hornet UTXO(1): A custom, constant-time, highly parallel UTXO database

Posted by tobysharp

Jan 23, 2026/05:44 UTC

The architecture described leverages server-class hardware, specifically utilizing 128 GB of RAM and a 1 TB NVMe storage solution. This setup is optimized for handling transaction outputs in a blockchain context, where the outputs' pk script, amount, and funding details are recorded to an append-only disk file as the blockchain extends. For validation purposes, these data points are retrieved through high queue depth asynchronous reads, employing io_uring on Linux systems to enhance efficiency and performance.

To manage and access transaction outputs effectively, an indexing strategy is employed. Each unspent transaction output is associated with an index entry. These entries include the transaction ID (txid), output index, block height, and certain flags for quick reference, each consuming 48 bytes of memory space. Currently, these index entries are stored in memory to optimize query performance, highlighting a deliberate choice to favor speed over storage efficiency. However, the design permits flexibility for future adjustments, allowing for the possibility of storing these indices on disk to reduce memory requirements at the expense of slower query times. This adaptability suggests a thoughtful consideration of different hardware scenarios, prioritizing current performance on high-end servers but keeping options open for scaling or modifying according to hardware capabilities and application needs.

Link to Raw Post
Bitcoin Logo

TLDR

Join Our Newsletter

We’ll email you summaries of the latest discussions from high signal bitcoin sources, like bitcoin-dev, lightning-dev, and Delving Bitcoin.

Explore all Products

ChatBTC imageBitcoin searchBitcoin TranscriptsSaving SatoshiDecoding BitcoinWarnet
Built with 🧡 by the Bitcoin Dev Project
View our public visitor count

We'd love to hear your feedback on this project.

Give Feedback