Skip to content

Drop support for 32-bit platforms

Note: This MR is optional and is here in case we decide to drop 32-bit support from Bitcoin Cash Node. It is not urgent to drop it now, we can merely deprecate it at first. However, someday as blocks approach 1GB, it may be that 32-bit nodes will OOM since a deserialized block may consume up to 3x - 4x its serialized in memory, and so the address space of a 32-bit node may not even be able to process a single ~1GB block.

As such, this MR is here for when we do decide to pull the trigger and drop 32-bit support, be it today or in a few months or in a few years...


This commit does the following:

  • Drops 32-bit support from the depends/ subsystem
  • Drops 32-bit builds from the gitian builder
  • Drops 32-bit support from the cmake/platforms/ folder
  • Removes the "build arm32" gitian CI job
  • Adds a static_assert in compat/assumptions.h to enfroce a 64-bit or greater platform.

Release notes were also updated to declare this new requirement and explain why no 32-bit platforms are supported anymore.

Test Plan

  • On your 64-bit platform: ninja all check-all
  • Ensure CI runner for this MR dropped the arm32 target and CI passes
  • Do a gitian build, ensure no 32-bit arch's are produced (no arm32 and no i686 linux).
  • Optional, if you have a 32-bit linux: Try and build this codebase on a 32-bit linux system and it should refuse to compile due to the static_assert in compat/assumptions.h

Merge request reports