BlackWolf ·
One Config Flag, 97% Less Memory: Bridge 5.2.0
Yesterday our federation bridges were drowning. Seven boxes, each mirroring the entire BSV mempool on a single CPU core, so busy processing the world's transactions that they could not answer their own health checks. Today that entire class of problem is gone, and the fix shipped publicly.
The diagnosis
Every bridge was built to be self-sufficient: no node required, it watches the BSV network firsthand and downloads every transaction anyone broadcasts. That is the right design when the bridge is your only eyes on the chain. It is the core promise of this software: run it on a cheap VPS, no 600 GB node needed.
But our own fleet graduated months ago. Reads now come from our own node and indexer, the source of truth. The bridges kept drinking the firehose anyway, out of habit, not need. Two hundred plus transactions per second, parsed, cached, re-announced, and logged, twice, per transaction, on one core. The CPU never got a break, and the HTTP server starved.
The fix: let the bridge know what its job is
Bridge 5.2.0 adds two operating modes.
Self-sufficient stays the default and stays untouched. No node? The bridge watches the network firsthand, exactly as before. That promise does not move.
Invs-only is the new opt-in. If you run your own node and indexer, one config flag tells the bridge to stop downloading the global mempool. It still tracks every announcement, still serves and relays its own broadcasts, still syncs headers. It just stops doing a node's job when there is a real node behind it.
The mesh got a vocabulary
There was a second discovery. An independent operator, someone outside our own infrastructure, is running a bridge in the federation mesh right now. Their bridge, self-sufficient by design, was faithfully sharing the whole mempool with everyone, and our lean bridges were downloading all of it right back through the side door.
So announcements between bridges now carry one word of context: is this a real federation write, or global mempool chatter? Bridges that need the chatter still get everything. Bridges that don't, skip it. The outside operator changed nothing, their bridge works exactly as before, and when they upgrade they get the same relief ours got.
The numbers
Memory per bridge: 1.4 GB down to under 50 MB. CPU: from pegged with zero idle to near idle. Logging: 6.5 GB per day down to under 100 MB. Transactions downloaded that were nobody's job to download: from about 280 per second to zero. Reads, writes, broadcast confirmations: unchanged. 345 of 345 tests green.
The ladder
This release makes the path explicit. Start with nothing but a $6 VPS: the bridge is self-sufficient and complete. Graduate to your own node and indexer when you are ready: flip one flag and the bridge gets lean while your node becomes the truth. Runs without a node. Gets better with one.
That is sovereignty as a gradient, not a cliff.
npm i -g @relay-federation/bridge https://github.com/indelible-federation/relay-federation