Kid: Mom, can we get a UTXO set?
Mom: We have a UTXO set at home.
The UTXO set at home: a relational archive with Electrum built in.
rbitcoin 0.x · signet first, savings later.
@AnyoneOReally1 horizon is the height IBD progress %/ETA count toward: the higher of our header-walk tip and the tallest height a connected peer still on the walk advertises. Peer heights are self-reported, so one peer claiming 325042 inflates it. It only feeds the progress line, not validation.
rbitcoin got over 93% test coverage on its latest coverage run.
Still too many tests in the guts not the user surface, but we're continuing to improve test quality week by week in addition to increasing coverage.
Today @grok is working on getting more core functional tests running against rbitcoin (we haven't added any in a while even though we have added features that match more of core's). Also, it's working on reducing memory churn and CPU outside of scripts during IBD and ongoing test improvements.
I'll be out spending the day with family while Grok does the work and will review this afternoon.
I've also got a fresh full validation (milestone 0) sync running which should finish while I'm AFK. Considering how many small bug fixes landed in the consensus engine since I last did a full script validation sync, I'm happy to see that it's made it to block 766k without a consensus divergence. This project really is stabilizing toward usefulness.
Thanks again to everyone who's contributed, encouraged, or hated so far. Much much more to come!
We're removing the ™️ from Production Ready.
Surprisingly busy day in rbitcoin land. Lots of PRs merged and good progress toward 0.8.
Most of today's PRs are testing improvements and bug fixes, but we did also land a feature PR from @avg_gary adding Stratum V2 support to rbitcoin.
I had originally intended to specifically not enable mining-focused features in rbitcoin, but it turns out you need some mining features to do even the most basic of testing in a bitcoin node, and then Gary came along and started contributing more mining support. So, here we are.
When 0.8 comes out in a few days, I'd suggest treating SV2, along with I2P, CJDNS, and Tor support all as alpha features but do try them out if those features interest you!
On the flip side, 0.8 will have pretty stable and well validated mempool backend support (thanks to help from bobberb), so that is up to at least beta stability.
Merged the fixes from @stephanlivera's review of rbitcoin: tighter caps on what a connected peer can make a node hold or do, smarter inbound peer eviction, REST off unless you pass --rest, secrets scrubbed from API logs, and safer datadir reads. Thanks!
Merged 10 fixes from @benthecarman's consensus audit against Core: bad peers can't stall initial sync or get a valid block blacklisted, a multisig edge case that could split from Core is fixed, and submitblock returns Core's reject reasons. Thanks!
@aeonBTC@Abhijit_091 Agent-built, yes. Vibes, no. rbitcoin is a Rust Bitcoin full node where changes run through CI, fuzz targets, Miri, and mutation tests. We call it agenticly engineered. The code's public, so judge the diffs.
Feature: health probes during IBD.
`--health-listen` (:9332) binds before store open:
/healthz = up
/readyz = tip + listeners (else 503)
/progress = stage/%/ETA
/metrics = Prometheus (`--metrics`)
Liveness=/healthz. Readiness=/readyz. Never reverse.
Thanks @satd_btc
Fee estimates for in-between targets like 12, 25, or 100 blocks used to come back empty. #903 fills the gaps between the computed depths, so Electrum, CLN, and Esplora clients get an answer again.
https://t.co/KsmBAo0QE2
Long index builds on rbitcoin used to look hung in the logs. #898 (bobberb) adds a /progress endpoint on the health port showing the current stage, percent done, and ETA while address and filter indexes catch up.
https://t.co/m3tlY75e4l
Fixed: Sparrow wallets pointed at rbitcoin could keep scanning forever past unused addresses, because an empty address came back as "" instead of null. #900 (bobberb) returns null like the Electrum protocol expects, so the gap limit works again.
https://t.co/ODtqhcZkfY
@crypto_0ptimist A second run can add value: the same model doesn’t guarantee the same output, especially with different context or tool state. But matching outputs still aren’t proof—tests and a careful diff review matter more than counting agents.
@herogamer21btc@EntropyLabX@RandyMcMillan Please do—outside eyes on the fuzz targets are welcome. File GitHub issues or PRs for anything concrete you find; not gating merges on fuzzing improvements is fine by us.