Releases: gcash/bchd
Releases · gcash/bchd
Release list
v0.22.2
Consensus & Network
- Only arm a peer stall deadline for a
getblockswith a non-zero stop hash. An open-endedgetblocksneeds no reply, so the deadline disconnected honest, fully-synced peers (btcsuite/btcd#1317). - Stop replying to
getblockswith an emptynotfoundwhen pruned. - Fix a hang on shutdown caused by a blocking queue send to a peer that had already quit.
- Always signal the send completion channel when serving a merkle block, which could otherwise wedge a peer's input handler.
- Fix two data races in the connection manager on
ConnReq.Addr. - Log a warning when a transaction is relayed to no peer, which happens when its fee rate is below every peer's fee filter.
Mining
- Pad the coinbase to the minimum transaction size enforced at the block height. Block generation was permanently broken on regtest above height 1000 and simnet above 3000.
- Set the Upgrade9 behavior flag in
CheckConnectBlockTemplate, which rejected valid CashToken transactions ingetblocktemplate.
RPC & gRPC
- Match transaction subscriptions on the address funding an input, so spends of outputs the subscription did not watch arrive now notify. Confirmed parents require
--txindex. - Report the missing parent rather than "already have transaction" when submitting a transaction held in the orphan pool, matching BCHN.
- Make the
estimatefeenblocksparameter optional, matching BCHN and Bitcoin ABC 0.19.1.
Database
- Fix a panic when a block rolls the block store over to a new flat file. The panic was recovered while the file lock was held, leaving the database wedged rather than crashing.
Security
- Fix a CashTokens consensus rule violation allowing minting NFT forgery. The authorization check shared one flag across all output categories, so a single authorized minting output authorized every other one in the same transaction. Reported by 0xaudron.
- Fix a remotely triggerable crash in the committed filter handlers, which dereferenced a missing index.
--fastsyncalso advertisedNODE_CFwithout maintaining one. - Reject raw transactions with trailing bytes in
decoderawtransactionandsendrawtransaction, which were previously discarded and the transaction relayed.
Build & Packaging
- Publish the Docker image to GHCR on each release tag.
- Rewrite the deprecated
io/ioutilusage go-bindata emits, with amake bindatatarget so it survives regeneration. - Update dependencies, including
google.golang.org/grpc,golang.org/x/crypto, andgolang.org/x/net.
Other
- Export
bchec.ErrInvalidSquareRootfor use witherrors.Is. - Modernize loops to range over integers, and adopt
slices.Backwardandstrings.Builder. - Assert the CHIP-2021-05 hashing density limit in the VM limits tests, which previously carried a check that could never execute.
- Fail rather than skip in the invalid VMB vector tests when a vector executes without error.
- Fix flaky address manager tests by generating only routable addresses.
- Removed support for plan9.
v0.22.1
Consensus & Network
- Remove the defunct
dnsseed.electroncash.deDNS seed.
Mining
- Include the Upgrade9 (CashTokens) script flags when building block templates. Templates were previously validated with the bare
StandardVerifyFlags, so on token-active networks valid CashToken transactions already in the mempool were dropped from the template, producing empty or near-empty blocks; the flags are now computed the same way the mempool and consensus block validation do.
Other
- Modernize
sync/atomicusage with the typed atomic APIs and adoptWaitGroup.Go.
v0.22.0
This release adds support for the May 15, 2026 Bitcoin Cash network upgrade ("upgrade12"). All node operators must upgrade before activation to stay in consensus.
What's new
- CHIP-2021-05 — Bounded looping operations (
OP_BEGIN/OP_UNTIL) - CHIP-2025-05 Functions — Function definition and invocation (
OP_DEFINE/OP_INVOKE) - CHIP-2025-05 Bitwise — Re-enables
OP_INVERT,OP_LSHIFTNUM,OP_RSHIFTNUM,OP_LSHIFTBIN,OP_RSHIFTBIN - CHIP-2024-12 P2S — Pay-to-Script standardization
- VMB test vectors for all of the above
Activation
| Network | MTP activation |
|---|---|
| Mainnet / testnet3 / testnet4 | 2026-05-15 12:00 UTC |
| Chipnet | 2025-11-15 12:00 UTC (already active) |
| Regtest / simnet | always active |
Upgrade notes
- No database migration required.
- Pre-upgrade script types (P2PKH, P2SH20, P2SH32, etc.) continue to behave as before.
- Upgrade before May 15, 2026 to avoid consensus divergence.
Full Changelog: v0.21.1...v0.22.0
v0.21.1
v0.21.0
v0.20.0
v0.20.0-rc2
- Updated seeds to match BCHN and add newly restored BCHD seeds.
- Fixed syncing issue with nodes supporting sendaddrv2 messages.
- Fixed syncing testnet4 with SLP indexes.
v0.20.0-rc1
This is a huge milestone. Finally are back in consensus with the rest of the BCH ecosystem!