Fulcrum 2.1.1:19 - BLAKE2b Support
Pre-releaseSuperseded by v2.1.2_1. This build predates rc3 and rc4. The notes below describe testnet4 activating at 149537 and mainnet having no schedule; both have since changed, and each move replaced the chain that followed the old height. Kept for reference.
Superseded by v2.1.2_1. This build is based on Fulcrum 2.1.0 and carries a version that the marketplace release of Fulcrum outranks, so installing it leads to it being replaced by the stock build, which then refuses to open the index and stops. Use the newer release.
Fulcrum with BLAKE2b block header support, packaged for StartOS.
The BLAKE2b hard fork changes the proof of work at an activation height: from that block on, block headers are 164 bytes and hashed with BLAKE2b instead of 80 bytes and SHA256d. History is continuous, so every block below that height keeps its original header and both forms coexist in one index. Stock Fulcrum cannot parse the new form and stops at the activation block rather than serving wrong data.
This build reads both header forms, hashes each with the right algorithm, and serves them unchanged over the Electrum protocol, so it keeps indexing straight through the activation.
Verification
Tested against Bitcoin Knots v29.4.1.knots20260508rc2 on regtest with the activation forced to a low height, and against live testnet4 past its activation at height 149537:
- Syncs across the activation boundary and serves every header byte-exact against
getblockheader, in both the 80-byte and 164-byte forms. - Unwinds reorgs that span the boundary, including undoing a pre-activation header.
- Survives the sustained one-block reorgs that follow the post-activation difficulty reset.
- Verified interoperating with a wallet over the Electrum protocol on the live forked chain.
Notes
- The index is rebuilt on first start. Header records grew from 80 to 164 bytes, so an index written by an earlier version cannot be read and is discarded on upgrade. This is a local rebuild forced by the storage layout, not a re-download of a different chain, but it costs a full resync.
- Wallets need their own support. This server returns headers at whatever size they actually are. A wallet that splits the concatenated
blockchain.block.headersresponse at a fixed 80-byte stride, or that checks proof of work as SHA256d, will not follow the chain past the activation height regardless of what this server returns. - Mainnet has no activation height scheduled. Below the activation height this build behaves identically to upstream Fulcrum.
Verifying this download
gpg --import privkeyio-signing-key.asc
gpg --verify fulcrum_x86_64.s9pk.sha256.asc fulcrum_x86_64.s9pk.sha256
sha256sum -c fulcrum_x86_64.s9pk.sha256
Signed by Kyle Santiago kyle@privkey.io, key A47D99B6DB0D715D40C59A2023AE8A8EA7E24E38.
Built from blake2b-pow at 5609f3a, with Fulcrum from privkeyio/Fulcrum at 8167f96.