Conservative node policy

A Nakamoto-compatible policy for cleaner block space.

Bitcoin Tolerant is a conservative node policy that discourages excessive arbitrary data in relay and mining, while remaining humble before Nakamoto consensus.

Strict in relay. Conservative in mining. Tolerant in consensus.
Concept

What is Bitcoin Tolerant?

Bitcoin Tolerant is an independent policy fork based on Bitcoin Knots. It gives operators stricter local policy tools for relay and mining, without turning local policy preferences into consensus invalidity.

Bitcoin Tolerant does not reject valid most-work Bitcoin blocks merely because they contain data above local policy limits. It separates three layers cleanly.

Prefer clean blocks in a tie. Follow the most-work valid chain once the tie is broken.
Three layers
  • Relay policy
    What transactions the node gossips.
  • Mining policy
    What transactions the node includes in its templates.
  • Consensus validation
    Which chains the node considers valid — unchanged.
This separation is the core of the project.
Policy

Four separations, one discipline.

Relay Policy

Reject or avoid relaying excessive arbitrary-data transactions using conservative local policy.

Mining Policy

Exclude oversized arbitrary-data transactions from local block templates.

Consensus Discipline

Do not change consensus validation. Valid blocks remain valid.

Fork Risk Reduction

Prefer clean blocks in equal-work ties, but follow the valid chain with the most accumulated proof-of-work once the tie is broken.

Implementation

Implemented in V1

Bitcoin Tolerant Policy V1 is implemented in the Tolerant branch.

bitcoin.conf
# Enable Tolerant conservative policy profile
-tolerant=1
-tolerantdatacarriersize=83
-tolerantlogpolicy=1
-tolerantminingfilter=1
-toleranttiepreference=1
 
# When -tolerant=1, the resolved profile is:
datacarrier=1
datacarriersize=83
fullcount=1
# No bare datacarrier
Tolerant module
src/node/tolerant.h
src/node/tolerant.cpp
  • Clean block scoring
  • Policy helpers
  • Tolerant-specific logging
  • Observation tools
Layer
Behavior
Relay
Logging in MemPoolAccept::PreChecks using existing datacarrier policy.
Mining
Defensive filtering in BlockAssembler::TestPackageTransactions.
Consensus
No consensus changes. Valid blocks are still accepted.
Observation
BCLog::TOLERANT with -debug=tolerant. Clean block score is logged in UpdateTip. Equal-work ties are detected but chain selection is not changed in V1.
Safety

No consensus enforcement by default.

Bitcoin Tolerant V1 does not introduce new consensus rules. It does not enforce BIP-110 as consensus. It does not reject the valid chain with the most accumulated proof-of-work.

Its goal is to make local relay and mining policy stricter while reducing unnecessary chain fracture.

Local policy should not automatically become consensus fracture.
RDTS status

RDTS consensus enforcement remains unsupported and unsafe by default. consensusrules=rdts remains opt-in and should not be presented as the default Tolerant behavior.

# Recommended build -DRDTS_CONSENT=UNSUPPORTED_UNSAFE_NO_ENFORCEMENT
Build

Compile and test locally.

build
git clone https://github.com/HansLove/bitcoin-tolerant.git
cd bitcoin-tolerant
git checkout Tolerant
cmake -B build -DRDTS_CONSENT=UNSUPPORTED_UNSAFE_NO_ENFORCEMENT
cmake --build build
test
build/test/functional/test_runner.py feature_tolerant_policy.py
The functional test feature_tolerant_policy.py has passed.
Philosophy

Tolerance is not weakness.

In Bitcoin, tolerance does not mean accepting everything into your mempool. It means preserving consensus discipline even when local policies differ.

Node operators can be sovereign. Miners can be conservative. The network can still remain coordinated around Nakamoto consensus.

Strict where local. Tolerant where global.
Tolerance is the discipline of not turning every disagreement into a fork.
  • Strength without aggression
  • Patience under pressure
  • Memory and continuity
  • Tolerance without weakness
Roadmap

Marginal block space pricing

Bitcoin Tolerant V1 is conservative by default. It does not relay or mine excessive arbitrary-data transactions.

A future optional module may allow miners or operators to include oversized arbitrary-data transactions only when those transactions pay proportionally for the block space they consume. This module would remain opt-in. It would not affect consensus validation. It would be treated only as local relay and mining policy.

Principle

More block space consumed. More fees required.

Bitcoin Tolerant does not morally judge transaction content. It prices scarce block space. If non-monetary data wants block space, it should not be subsidized by miners or by users competing for monetary settlement.

No moral filtering. No hidden subsidy.
Possible formula
required_fee =
  base_transaction_fee
  +
  excess_data_vbytes
  × marginal_blockspace_rate
  × data_premium_multiplier

Illustrative — final parameters TBD in a future specification.

Open source

Open source and auditable.

Bitcoin Tolerant is public and auditable. Developers can review the code, build from source, run tests, and contribute improvements.

repo
# Clone and switch to the Tolerant branch
git clone https://github.com/HansLove/bitcoin-tolerant
git checkout Tolerant
Support

Support Bitcoin Tolerant

If you want to support the effort to preserve consensus while keeping node policy sovereign, you can contribute here.

Bitcoin
bc1q2xwae968t339g22x6rldjxv7autklanr46k6j3
USDT / EVM compatible
Ethereum · Polygon · other EVM
0x67c09ba6Da5c72474fcaD9d1E209E126b7605D8B

This EVM address may be used for USDT on Ethereum, Polygon, and several compatible EVM networks. Always verify the network before sending.