Experimental 0.x · mainnet is reckless

Bitcoin full node in Rust for server-side operators

A validating peer with a compact relational archive—not a UTXO database—in one Linux-first binary. Electrum, Esplora, and a Core-class JSON-RPC subset are optional. Mainnet use is reckless; consensus divergence is likely.

MIT OR Apache-2.0 Linux first Full archival · no UTXO database
rbitcoin steel monogram plate beside weathered rails

Why this node is different

One binary and one archive: a validating node without a separate indexer process. Scripthash indexing is optional and billed as extra disk, not as a default.

Relational archive, no UTXO database

Packed transactions, spend annotations, and a transaction index in map-free Class A/C tables. Confirm and mempool prevouts read the archive—not a mutable coins bag and not a multi‑GiB dbcache flush.

Wallet indexes when you want them

Electrum and optional Esplora live in-process. They need --shindex—a selectable indexing cost (Class B scripthash, extra disk). Off by default. Without it, those listeners refuse to start. Not a graphical explorer.

Scripts in Rust · modest RAM

Structure, connect, and script verification in-tree on rust-bitcoin. secp256k1 is the only crypto primitive—no libbitcoinconsensus dual-eval. Confirm is lookup → load → scripts → write.

Optional Core-class JSON-RPC

A documented subset over HTTP (--rpc-listen, cookie or user/pass). Chain, mempool, raw tx, and estimatesmartfee—not wallet, mining, or a UTXO-set scanner. Prefer Electrum/Esplora with --shindex for script history.

Operator-order facts

Approximate figures from a real mainnet archive. The tip moves. These are order of magnitude, not a warranty.

~886 GiB Full archive with transaction index Scripthash is extra if you enable --shindex
< ~30 h IBD on a laptop-class host With --milestone 0 (full script checks)
Modest RAM During sync—no multi‑GiB dbcache Confirm: lookup → load → scripts → write

Newer transactions resolve hottest in segmented tx.head. A Nix musl build produces a static binary for ordinary Linux without a matching glibc; there is no published release tarball yet. Details on GitHub.

Who it is for

Aimed at operators who validate, store, and serve. The product is not a full Bitcoin Core replacement and not a pruned or desktop node.

Built for

  • Operators who want Electrum or Esplora in the same process (with --shindex)
  • Infrastructure that needs a documented JSON-RPC subset next to the archive
  • Linux hosts with terabyte-class disk for a full archive
  • Engineers who want scripts verified in-tree, in Rust

Out of scope

  • Desktop wallets, mining, or a graphical UI
  • Pruned or low-disk “lite” deployments
  • Graphical block explorers and catalogue-style search

Start on signet

Mainnet use is reckless; consensus divergence is likely. Format and APIs stay unstable until 1.0. Source is on GitHub. Build a static musl binary with Nix; release artifacts are not published yet.