Skip to content

Bitcoin Cash Node Release Process

Before Release

  1. Check configuration

    • Check features planned for the release are implemented and documented (or more informally, that the Release Manager agrees it is feature complete)
    • Check that finished tasks / tickets are marked as resolved
  2. Verify tests passed

    • Any known issues or limitations should be documented in release notes
    • Known bugs should have tickets
    • Run arc lint --everything and check there is no linter error
    • Ensure that bitcoind and bitcoin-qt run with no issue on all supported platforms. Manually test bitcoin-qt by sending some transactions and navigating through the menus.
  3. Update the documents / code which needs to be updated every release

    • Check that is complete, and fill in any missing items.
    • Update to account for changes since the last release.
    • (major releases) Update BLOCK_CHAIN_SIZE to the current size plus some overhead.
    • Regenerate manpages (run contrib/devtools/, or for out-of-tree builds run BUILDDIR=$PWD/build contrib/devtools/
    • Update seeds as per contrib/seeds/
    • Update src/chainparams.cpp m_assumed_blockchain_size and m_assumed_chain_state_size with the current size plus some overhead.
  4. Add git tag for release a. Create the tag: git tag vM.m.r (M = major version, m = minor version, r = revision) b. Push the tag to GitLab:

    git push <gitlab remote> master
    git push <gitlab remote> vM.m.r

  5. Increment version number for the next release in:

    • doc/ (and copy existing one to versioned doc/release-notes/*.md)
    • CMakeLists.txt
    • contrib/seeds/ (only after a new major release)


  1. Create Gitian Builds (see

  2. Verify matching Gitian Builds, gather signatures

  3. Verify IBD bith with and without -checkpoints=0 -assumevalid=0

  4. Upload Gitian Builds to

  5. Create a release on our GitHub mirror: contrib/release/ -a <path to release binaries> -t <release tag> -o <file containing your Github OAuth token>

  6. Create Ubuntu PPA packages: Maintainers need to clone packaging and follow instructions to run in that repository.

  7. Notify maintainers of AUR and Docker images to build their packages. They should be given 1-day advance notice if possible.

After Release

  1. Update version number on

  2. Publish signed checksums (various places, e.g. blog, reddit, etc. etc.)

  3. Announce Release:

    • Reddit
    • Twitter @bitcoincashnode
    • Public slack channels friendly to Bitcoin Cash Node announcements