merge-script d198635fa2
Merge bitcoin/bitcoin#34677: kernel: Chainparams and headerssync updates pre-31.0
44538f8ada868cb73ffa7a4bfb5267046d3f6b85 kernel: Add recent assumeutxo snapshot info (Ava Chow)
58c2e23fca05d201dfcea092ab032c943c9d5665 kernel: Update headerssync params (Ava Chow)
cf261b071f68b1967077a6d3baac10ea024e653a kernel: update chainTxData (Ava Chow)
8eaf1d26d446ecdc5c69b61334ee51a6f41050d3 kernel: update defaultAssumeValid and minimumChainWork (Ava Chow)
5ca0c55517d4c8e41a1dd9904545d82ee09adedf kernel: update assumed blockchain and chainstate sizes (Ava Chow)

Pull request description:

  Update chainparams and headerssync params per the release process.

  Also added new assumeutxo snapshots for each network. I've uploaded snapshots to https://achow101.com/files/utxo-snapshots/

ACKs for top commit:
  Sjors:
    ACK 44538f8ada868cb73ffa7a4bfb5267046d3f6b85
  fjahr:
    ACK 44538f8ada868cb73ffa7a4bfb5267046d3f6b85
  janb84:
    ACK 44538f8ada868cb73ffa7a4bfb5267046d3f6b85
  sipa:
    ACK 44538f8ada868cb73ffa7a4bfb5267046d3f6b85. I re-did all the mainnet parameters, but did not look closely at the other networks.
  jaonoctus:
    ACK 44538f8ada868cb73ffa7a4bfb5267046d3f6b85

Tree-SHA512: f9b6ccc967c5ef58f734245df459c3136491e9b6a0f6e36f4272bc0787e7b59eabe47a8c8b19a90267eca4a0b5851dfbf45153f96eac599c417f148b3cf264cf
2026-03-08 14:41:07 +00:00
..
2025-05-06 12:21:32 -07:00
2025-12-19 16:58:36 +00:00

Contents

This directory contains tools for developers working on this repository.

deterministic-fuzz-coverage

A tool to check for non-determinism in fuzz coverage. To get the help, run:

cargo run --manifest-path ./contrib/devtools/deterministic-fuzz-coverage/Cargo.toml -- --help

To execute the tool, compilation has to be done with the build options:

-DCMAKE_C_COMPILER='clang' -DCMAKE_CXX_COMPILER='clang++' -DBUILD_FOR_FUZZING=ON -DCMAKE_CXX_FLAGS='-fprofile-instr-generate -fcoverage-mapping'

Both llvm-profdata and llvm-cov must be installed. Also, the qa-assets repository must have been cloned. Finally, a fuzz target has to be picked before running the tool:

cargo run --manifest-path ./contrib/devtools/deterministic-fuzz-coverage/Cargo.toml -- $PWD/build_dir $PWD/qa-assets/fuzz_corpora fuzz_target_name

deterministic-unittest-coverage

A tool to check for non-determinism in unit-test coverage. To get the help, run:

cargo run --manifest-path ./contrib/devtools/deterministic-unittest-coverage/Cargo.toml -- --help

To execute the tool, compilation has to be done with the build options:

-DCMAKE_C_COMPILER='clang' -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_CXX_FLAGS='-fprofile-instr-generate -fcoverage-mapping'

Both llvm-profdata and llvm-cov must be installed.

cargo run --manifest-path ./contrib/devtools/deterministic-unittest-coverage/Cargo.toml -- $PWD/build_dir <boost unittest filter>

clang-format-diff.py

A script to format unified git diffs according to .clang-format.

Requires clang-format, installed e.g. via brew install clang-format on macOS, or sudo apt install clang-format on Debian/Ubuntu.

For instance, to format the last commit with 0 lines of context, the script should be called from the git root folder as follows.

git diff -U0 HEAD~1.. | ./contrib/devtools/clang-format-diff.py -p1 -i -v

gen-manpages.py

A small script to automatically create manpages in ../../doc/man by running the release binaries with the -help option. This requires help2man which can be found at: https://www.gnu.org/software/help2man/

This script assumes a build directory named build as suggested by example build documentation. To use it with a different build directory, set BUILDDIR. For example:

BUILDDIR=$PWD/my-build-dir contrib/devtools/gen-manpages.py

headerssync-params.py

A script to generate optimal parameters for the headerssync module (stored in src/kernel/chainparams.cpp). It takes no command-line options, as all its configuration is set at the top of the file. It runs many times faster inside PyPy. Invocation:

pypy3 contrib/devtools/headerssync-params.py

gen-bitcoin-conf.sh

Generates a bitcoin.conf file in share/examples/ by parsing the output from bitcoind --help. This script is run during the release process to include a bitcoin.conf with the release binaries and can also be run by users to generate a file locally. When generating a file as part of the release process, make sure to commit the changes after running the script.

This script assumes a build directory named build as suggested by example build documentation. To use it with a different build directory, set BUILDDIR. For example:

BUILDDIR=$PWD/my-build-dir contrib/devtools/gen-bitcoin-conf.sh

circular-dependencies.py

Run this script from the root of the source tree (src/) to find circular dependencies in the source code. This looks only at which files include other files, treating the .cpp and .h file as one unit.

Example usage:

cd .../src
../contrib/devtools/circular-dependencies.py {*,*/*,*/*/*}.{h,cpp}