Skip to content

Releases: gcash/bchd

v0.22.2

Choose a tag to compare

@zquestz zquestz released this 26 Jul 03:33
5e051d8

Consensus & Network

  • Only arm a peer stall deadline for a getblocks with a non-zero stop hash. An open-ended getblocks needs no reply, so the deadline disconnected honest, fully-synced peers (btcsuite/btcd#1317).
  • Stop replying to getblocks with an empty notfound when 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 in getblocktemplate.

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 estimatefee nblocks parameter 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. --fastsync also advertised NODE_CF without maintaining one.
  • Reject raw transactions with trailing bytes in decoderawtransaction and sendrawtransaction, which were previously discarded and the transaction relayed.

Build & Packaging

  • Publish the Docker image to GHCR on each release tag.
  • Rewrite the deprecated io/ioutil usage go-bindata emits, with a make bindata target so it survives regeneration.
  • Update dependencies, including google.golang.org/grpc, golang.org/x/crypto, and golang.org/x/net.

Other

  • Export bchec.ErrInvalidSquareRoot for use with errors.Is.
  • Modernize loops to range over integers, and adopt slices.Backward and strings.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

Choose a tag to compare

@zquestz zquestz released this 30 Jun 23:21
769607b

Consensus & Network

  • Remove the defunct dnsseed.electroncash.de DNS 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/atomic usage with the typed atomic APIs and adopt WaitGroup.Go.

v0.22.0

Choose a tag to compare

@zquestz zquestz released this 23 Apr 20:40
5fa9914

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

Choose a tag to compare

@zquestz zquestz released this 19 May 01:09
6dc07ad
  • Fixed "go get: module source tree too large" issue
  • Reduced size for json tests
  • Refactor: use the built-in max/min to simplify the code

v0.21.0

Choose a tag to compare

@zquestz zquestz released this 14 May 00:05
e42403a
  • Implement CHIP-2021-05 VM Limits and CHIP-2024-07 BigInt: High-Precision Arithmetic for Bitcoin Cash

v0.20.0

Choose a tag to compare

@zquestz zquestz released this 15 Jan 06:56
d0aa921
  • Ensure CashToken data is populated correctly for gRPC endpoints.
  • Update README.md with accurate install directions.
  • A few minor memory improvements.
  • Update GW RPC tests.

v0.20.0-rc2

Choose a tag to compare

@zquestz zquestz released this 21 Dec 07:22
7e9fc58
  • 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

Choose a tag to compare

@zquestz zquestz released this 20 Dec 04:10
e22142a

This is a huge milestone. Finally are back in consensus with the rest of the BCH ecosystem!

v0.19.0

Choose a tag to compare

@zquestz zquestz released this 06 May 00:22
58741b0
  • Includes changes required for the May 15th, 2022 upgrade. #499

v0.18.1

Choose a tag to compare

@cpacia cpacia released this 24 May 11:36
3bca12e

This is a maintenance release and we urge all users to upgrade!

  • Peer syncing improvements (#470)
  • Fix panic issue due to nil bucket (#473)