Get started
Download the GitHub Release, or build musl with Nix. Try signet, then mainnet with another implementation in view. Scripts run on rust-bitcoin and libsecp256k1. The on-disk format still moves before 1.0.
Mainnet. IBD, tip follow, and wallet serving work. Consensus is independent of bitcoin core’s engine; the growing functional, fuzz, and spec test suite is why rbitcoin expects to match. You may want to keep another node in view before you treat rbitcoin as your only picture of the chain.
Read the experimental mainnet notes and the operator guide.
Upgrading from 0.x.x. Schema 20 seals index heads differently. Occupied schema 18/19 wallet indexes are refused — wipe those index dirs or rebuild; Class A archive data stays. See CHANGELOG and OPERATOR.md.
1. GitHub Release ()
The published download is
the GitHub Release.
The tag attaches rbitcoin-node and rbitcoin-cli:
- Linux x86_64 musl — fully static. This is the operator binary.
-
Windows x86_64 — CRT-static
.exe. IoRing is not supported. -
Darwin aarch64 — system-dylib, ad-hoc signed, not notarized. If
Gatekeeper kills it:
xattr -d com.apple.quarantine rbitcoin-node rbitcoin-cli
Checksums ship next to the binaries (SHA256SUMS.*). Linux first. Windows
and macOS are snapshots.
2. Reproducible musl (Linux)
Same git revision, same flake lock, same bytes. Pinned nixpkgs and
Cargo.lock build fully static rbitcoin-node and
rbitcoin-cli. They run on ordinary Linux with no Nix store and no matching
glibc. Use this to verify a Release, or to run a revision that is not tagged yet.
git clone https://github.com/reardencode/rbitcoin.git
cd rbitcoin
nix build .#rbitcoin-musl
install -m 755 result/bin/rbitcoin-node result/bin/rbitcoin-cli target/release/
Do not ship cargo build --release from inside
nix-shell. That binary looks for Nix’s glibc and dies the moment you copy it
somewhere else. See
reproducible builds.
3. Signet, then mainnet
Make sure it starts, talks to peers, and moves tip on signet before you give it a terabyte. Then run mainnet with monitoring, and with another implementation in view.
./target/release/rbitcoin-node --datadir ./datadir-signet --network signet \
--listen 127.0.0.1:38333 --milestone 200000 --max-run-secs 120
If you downloaded the Release, run that binary instead of
./target/release/rbitcoin-node. Custom signets take
--signetchallenge and --signetblocktime. Logging and other knobs:
OPERATOR.md.
4. Optional surfaces
Wallet indexes are optional. The txid index is not. IBD writes it, and you cannot sync without it. Turn Electrum on when you want wallets.
Electrum is in the same process: history, unconfirmed, broadcast, fees, and silent payment tweaks. Esplora REST is optional. This is not a block explorer. Flags live in OPERATOR.md.
./target/release/rbitcoin-node --datadir ./datadir-signet --network signet \
--electrum-listen 127.0.0.1:50001
JSON-RPC (--rpc-listen, cookie or
--rpcuser / --rpcpassword) is a slice of core’s surface: chain,
mempool, raw transactions,
decoderawtransaction / decodescript /
validateaddress, fee estimates, and a block template selector. Verbose
transaction objects include core-style scriptSig and
scriptPubKey.type. No wallet, no stratum, no
scantxoutset coins scan. See
docs/rpc.md.
./target/release/rbitcoin-node --datadir ./datadir-signet --network signet \
--rpc-listen 127.0.0.1:18332
If you bind Electrum, Esplora, or RPC beyond localhost, put TLS in front.
5. Hot and cold datadirs
A full archive wants a 1 TB-class disk. Keep less than 250 GB on the fast volume even with wallet indexes. Inputs and witness are rarely read; they can live on a second disk:
./target/release/rbitcoin-node --datadir /mnt/nvme/rbtc \
--datadir-cold /mnt/hdd/rbtc-cold --network signet
--datadir-cold holds inwit.body and
inwit.idx/ only. Outputs, spends, the txid index, and wallet indexes stay
on --datadir. Leave the flag off and both live in one tree. See
OPERATOR.md.
Milestone honesty
Default mainnet --milestone is assumevalid-style: it skips
script and signature checks at or below that height. Prevouts,
double-spends, maturity, and fees still run.
Use --milestone 0 if you want every historical script checked. The
current default height is in the node README.
Requirements (order of magnitude)
- Platform: Linux first (musl Release or Nix). Windows and macOS snapshots exist; they are unproven. Darwin is aarch64 only.
-
Disk: 1 TB-class for a full archive. Keep under 250 GB on hot storage
even with full indexes; use
--datadir-coldfor the rest if you have two volumes. - Mode: full archival only. There is no prune switch.
-
Build: GitHub Release
, or
nix build .#rbitcoin-muslfor a byte-identical Linux binary. -
P2P: BIP324 version 2 only; optional asmap (
--asmap/ip_asn.dat) for outbound peer diversity. Plan reverse-proxy TLS for Electrum and Esplora if you expose them beyond localhost.
Further reading
- Node README
- OPERATOR.md — CLI, logging, knobs
- docs/rpc.md — JSON-RPC subset
- Experimental mainnet
- SECURITY.md · site security page
- Architecture overview on this site