Bitcoin Roots

Bitcoin Core v25.0.0 with two patches: BIP-8 timelocked activation and OP_RETURN consensus enforcement. Full GUI wallet, daemon, and RPC. Everything you need to build and run.

Base: Bitcoin Core v25.0.0 Branch: roots/dev ~550 GB disk (mainnet sync) GUI + daemon + RPC
View on GitHub

Source-only release — build from the roots/dev branch

Install dependencies

Same requirements as Bitcoin Core v25.0. Below are the most common setups.

Linux (Debian / Ubuntu)

sudo apt install autoconf libtool libboost-all-dev \
  libevent-dev libssl-dev libzmq3-dev \
  libdb-dev libdb++-dev pkg-config \
  build-essential g++ make

macOS

brew install autoconf libtool boost \
  libevent openssl libzmq berkeley-db \
  pkg-config

Windows

Use the cross-compilation guide in the Bitcoin Core docs: doc/build-windows.md. Build inside a Linux VM or WSL2.

Clone and build

Clone the repository

Clone directly to the roots/dev branch.

git clone -b roots/dev https://github.com/15Greps/bitcoin-roots.git
cd bitcoin-roots

Configure

Generate the build system. Full GUI build recommended — headless daemon only if you prefer.

# With Qt GUI wallet (recommended)
./autogen.sh
./configure --disable-tests --disable-bench

# Headless daemon only
./autogen.sh
./configure --without-gui --disable-tests --disable-bench

GUI requires Qt5 dependencies. On Debian/Ubuntu: sudo apt install libqt5gui5 libqt5core5a libqt5dbus5 qtbase5-dev

Compile

Build using all available cores. Expect ~5–15 minutes on modern hardware.

make -j$(nproc)

Run the node

Start the daemon or GUI wallet. The patches are compiled into the binary — no flags required.

Start bitcoind

# Headless daemon
src/bitcoind -daemon

# Or Qt GUI wallet
src/qt/bitcoin-qt

The node will begin syncing the mainnet blockchain. Initial sync takes several days depending on disk and connection speed.

Check sync progress

src/bitcoin-cli getblockchaininfo

Look for "blocks" in the output — it will climb as your node syncs. When it matches the current block height, you're synced.

Verify Roots patches are active

Check that the BIP-8 deployment is configured:

src/bitcoin-cli getdeploymentinfo

You should see DEPLOYMENT_BIP8 listed with a timelock height. This confirms the activation patch is loaded.

The two patches

Bitcoin Roots modifies exactly 9 files in the Bitcoin Core v25.0.0 source tree. Everything else is upstream.

BIP-8 Timelocked Activation
Removes miner veto from protocol upgrades. Activations are bound to block heights, not miner signals. If the chain reaches the target height, the upgrade activates — regardless of miner participation.
OP_RETURN Consensus Enforcement
Enforces the 80-byte OP_RETURN limit at the consensus layer (via validation.cpp). Blocks with larger OP_RETURN outputs are rejected — not just un-relayed. This is a soft fork, backward-compatible with standard nodes until activation height.

Verify the diff

Confirm the changes match expectations:

git diff v25.0..roots/dev --stat

Expected output — 9 files, ~381 line changes:

 README.md                     | 110 +++++++++++++--------------
 src/consensus/params.h        |   9 +++
 src/deploymentinfo.cpp        |   8 ++
 src/kernel/chainparams.cpp    |  58 +++++++++++++++
 src/script/standard.h         |   2 +-
 src/validation.cpp            |  17 +++++
 src/versionbits.cpp           |   7 +++++++
 src/versionbits.h             |   1 +
 test/functional/p2p_no_pak.py | 169 ++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 323 insertions(+), 58 deletions(-)