FreeBank v0.2.1 — one-click ready, fast cold start
⚠ SUPERSEDED by v0.2.2 (2026-07-21). v0.2.1's Linux tarball requires Ubuntu 24.04's exact shared-library versions and fails to start on other distros; v0.2.2 ships fully portable static binaries for Linux and macOS, and its M1 values supersede the ones below. No consensus change.
FreeBank v0.2.1 — one-click ready, and a much faster cold start
Maintenance release: freebankd now connects to a standard CUSF stack out of the box, and first-run sync against a live chain went from unusable to instant. No consensus changes — network parameters are identical to v0.2.0/v0.1.0 (verified zero-diff).
Cold header-cache sync: 54 minutes → 7 seconds.
Populating the mainchain block-hash cache walked the chain one getblockhash per block. On the enforcer transport that is quadratic — the enforcer indexes blocks by hash, so every height lookup re-walked from the tip — meaning a cold sync of a ~5,900-block signet cost roughly 17,700 gRPC round trips and several GB of parsed JSON. Measured: 54+ minutes without the node ever answering an RPC, degrading quadratically as the chain grows. The walk is now batched (1,000 ancestors per call), which the enforcer answers natively: ~6 calls instead of ~17,700, verified at 7 seconds to the correct tip against live L2L signet. The JSON-RPC transport is call-for-call unchanged.
Other changes:
- Argless defaults. A bare
freebankdnow uses the enforcer transport by default, with the CUSF enforcer gRPC at127.0.0.1:50051and the mainchain node's REST at127.0.0.1:38332— the layout an orchestrated (BitWindow-style) install provides. Every value remains a flag. On regtest the transport still defaults tojsonrpcfor local test harnesses. - Startup REST probe. At boot the node probes the mainchain REST endpoint (retrying for up to 60 s to tolerate an orchestrator starting the mainchain moments earlier) and refuses to start with a clear error if it never answers — replacing a failure mode where a node without working REST would sync happily and then reject its first deposit-bearing block.
- Stable archive layout. The binary tarball now unpacks to
freebank/bin/…(version-independent root; the archive filename keeps the version). - Signet-reset drill documented in
doc/signet.md— test signets get wiped and restarted; the guide now covers challenge rotation, fresh datadirs, and why sidechain activation must be re-seeded after a reset.
Network parameters (unchanged): sidechain slot 130, magic fb4b1845, port 8455, bech32 fbk; the main network pairs with a CUSF-enforcer mainchain (L2L Signet era) and uses the enforcer's BlindedM6 withdrawal-bundle layout. The v0.2.0 M1 proposal values remain valid for this release line.
Binaries: Linux x86-64 (native Ubuntu 24.04 build, commit 8002560) and macOS arm64 (Apple Silicon, built on GitHub Actions from commit 69412a7 — this release plus small build-portability fixes, no functional change; all dependencies statically linked, BDB 4.8).
⚠ 2026-07-21 — macOS asset replaced. The original macOS upload (sha256
0376eb17…) linked Homebrew's shared libraries by absolute path and could not run on any Mac without the builder's exact Homebrew setup. If you downloaded the macOS tarball before 2026-07-21, delete it and re-download. The replacement (sha25637a82653…, listed in SHA256SUMS) is self-contained — it references only macOS system libraries, enforced in CI by anotool -Lgate and a run test executed with Homebrew removed from the build machine. Not yet reproducible/gitian; deterministic builds are planned. Experimental, pre-audit software — test coins only.
macOS quick start (unsigned binary — fetch with curl, not a browser, so Gatekeeper's quarantine flag never attaches):
curl -LO https://github.com/mbdrivechains/freebank/releases/download/v0.2.1/freebank-0.2.1-arm64-apple-darwin.tar.gz
tar -xzf freebank-0.2.1-arm64-apple-darwin.tar.gz
./freebank/bin/freebankd --version