Repository navigation
rbitcoin v0.8.0
Linux musl x86_64 is the operator binary (statically linked).
Windows is CRT-static PE (no IoRing). Darwin aarch64 is ad-hoc
codesigned, not notarized (xattr -d com.apple.quarantine).
Highlights
- Schema 26 opens a 0.7 datadir in place. Schema 24 and 25 rewrite
header.bodyfrom 96 B to 88 B andmetato 26. A store older than schema
22, including occupied 0.6.x, refuses with one wipe-and-IBD line. - Mainnet script skip is path-anchored. The default milestone still names
height 840000 and block
0000000000000000000320283a032748cef8227873ff4872689bf23f1cda83a5. Scripts
skip only on that header path once chain work meets Core
nMinimumChainWork. Signet’s default milestone is 0 (every script). An
explicit--milestone HEIGHTstays height-only. - Initial sync keeps moving on ordinary connections. One peer serves
headers. The others download blocks, at most 64 blocks or 16 MiB in
flight, sized from recent bodies. A peer holding the tip block is
replaced only after 5 seconds, and only when a free peer would finish
it in half the time. A full serve queue waits out the rest of a
getdatainstead of dropping it. - Consensus checks match Bitcoin Core where they used to disagree.
BIP30 is off only when the header at BIP34 height is that network’s
BIP34 block, and it is always on from height 1,983,702. A confirm batch
cannot spend an output created by a later block in that batch. The
genesis coinbase is not a spendable coin. An empty signature in legacy
CHECKMULTISIGdeletesOP_0from scriptCode. A bad copy of a valid
block is requested again and is not cached as invalid. - Peers and RPC fail closed under load. Counts above 50,000 in
inv,
getdata, andnotfoundfail decode. Compact-block and block
transaction counts are rejected before allocation. The RPC body cap is
2 MiB, and a full work queue is HTTP 503 before the handler. A session
pauses once its outbound queue passes 4 MiB. An unpaged scripthash join
above--max-sh-creates(default 10000) is refused. - Wallets, Lightning nodes, and explorers have a setup guide.
docs/wallets.mdanddocs/lightning.md. Electrum and Esplora serve
Electrum, Sparrow, Liana, Specter, Cake Wallet, BlueWallet, BitBox App,
Envoy, and BDK (including Alby Hub). Wasabi’s full-node path uses
getblockfilterand--rpc-cookie-file(HTTP Basic on TCP).
getnetworkinfo.versionstays 190000 (Core 0.19’s client integer); the
semver stays insubversion. CLN (bcliandsauron), ldk-node
(Esplora, Electrum, or REST), and LND withbitcoind.rpcpollinguse
this node as the chain source. Esplora/internal/*on the unix socket
is the mempool.space electrs drop-in./fee-estimateskeeps the
estimator’s precision./fees/recommendedand/wsare 404. - Feerate uses sigop-adjusted size. Admission, RBF, eviction, estimates,
and-blockmintxfeeusemax(weight, sigop_cost × bytes_per_sigop)
(default 20,--bytes-per-sigop,0disables). A transaction whose sigop
cost reaches the template budget is rejected. Template selection applies
the mintxfee floor per chunk and keeps the block sigop cap. - Fee quotes follow a log grid and a fullness blend. About 100 steps per
decade from min relay (0.1 sat/vB) through 1000 sat/vB, plus one open
bucket above that. The published rate is(1−α)·history + α·live flow.
α is decayed admitted weight over about 1.44M WU (150s half-life). History
is filled fromtxstat(at most 1 GiB; each block’s vsize-weighted p10
of individual rates).estimatesmartfeereturns{feerate, blocks}, or
{errors, blocks}with nofeeratewhen it has no estimate, and
feerateis at leastmempoolminfee. - Block filters and silent-payment tweaks build during IBD, and after
it when they are behind. With the index on from the start, each
confirmed block is built on the script pool and appended on the confirm
write. A restart gap of at most 2,016 blocks is sealed before confirm.
A larger gap, including an index enabled on an already synced datadir,
is built afterward byrbtc-idx-wb(index: build) and does not hold
the node in initial download.NODE_COMPACT_FILTERSis advertised once
filters reach the tip. With--datadir-cold,blockfilterand
sp_tweaksmust sit on the cold store. - Spend annotations recover after a crash past the tip seal. A missing
spent slot stays unspent until open replays above thespend_durable
marker.rbtc-spend-synccheckpoints about every ten minutes, and once
more on shutdown.
Thanks to @otaliptus for the security review, and to @dergoegge, @Rob1Ham, and @1440000bytes for earlier findings.
Thanks to @benthecarman, @average-gary, @bobberb, @Hero-Gamer, @bkeroack, @xstoicunicornx, and @RandyMcMillan for changes in this release.
Full notes: CHANGELOG.md ## [0.8.0].