bitcoin/contrib
fanquake 2eacc61ad7
Merge bitcoin/bitcoin#25970: Add headerssync tuning parameters optimization script to repo
3d420d8f28 Add instructions for headerssync-params.py to release-process.md (Pieter Wuille)
53d7d35b58 Update parameters in headerssync.cpp (Pieter Wuille)
7899402cff Add headerssync-params.py script to the repository (Pieter Wuille)

Pull request description:

  Builds upon #25946, as it incorporates changes based on the selected values there.

  This adds the headerssync tuning parameters optimization script from https://gist.github.com/sipa/016ae445c132cdf65a2791534dfb7ae1 to the repository, updates the parameters based on its output, and adds release process instructions for doing this update in the future.

  A few considerations:
  * It would be a bit cleaner to have these parameters be part of `CChainParams`, but due to the nature of the approach, it really only applies to chains with unforgeable proof-of-work, which we really can only reasonably expect from mainnet, so I think it's fine to keep them local to `headerssync.cpp`. Keeping them as compile-time evaluatable constants also has a (likely negligible) performance impact (avoiding runtime modulo operations).
  * If we want to make sure the chainparams and headerssync params don't go out of date, it could be possible to run the script in CI, and and possibly even have the parameters be generated automatically at build time. I think that's overkill for how unfrequently these need to change, and running the script has non-trivial cost (~minutes in the normal python interpreter).
  * A viable alternative is just leaving this out-of-repo entirely, and just do ad-hoc updating from time to time. Having it in the repo and release notes does make sure it's not forgotten, though adds a cost to contributors/maintainers who follow the process.

ACKs for top commit:
  ajtowns:
    reACK 3d420d8f28

Tree-SHA512: 03188301c20423c72c1cbd008ccce89b93e2898edcbeecc561b2928a0d64e9a829ab0744dc3b017c23de8b02f3c107ae31e694302d3931f4dc3540e184de1963
2023-10-05 11:28:29 +01:00
..
completions contrib/bash-completions: use package naming conventions 2023-09-19 13:45:22 +02:00
debian doc: Clarify debian copyright comment 2023-01-18 10:29:24 +01:00
devtools Merge bitcoin/bitcoin#25970: Add headerssync tuning parameters optimization script to repo 2023-10-05 11:28:29 +01:00
guix build: remove dmg dependencies 2023-09-15 13:47:50 +01:00
init contrib/init: Better systemd integration 2023-05-28 13:10:30 -04:00
linearize script, test: fix python linter E275 errors with flake8 5.0.4 2023-01-03 10:59:56 -08:00
macdeploy build: remove dmg dependencies 2023-09-15 13:47:50 +01:00
message-capture scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
qos scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
seeds p2p: update hardcoded mainnet seeds for 25.x 2023-04-20 06:08:22 -07:00
shell guix: Add source-able bash prelude and utils 2021-04-05 11:00:21 -04:00
signet Merge bitcoin/bitcoin#25867: lint: enable E722 do not use bare except 2023-02-22 09:28:09 +00:00
testgen contrib: make gen_key_io_test_vectors deterministic 2022-04-06 17:02:50 +02:00
tracing Use int32_t type for most transaction size/weight values 2023-06-12 19:47:19 +01:00
verify-binaries contrib: docs fix --import-keys flag on verify.py 2023-06-08 22:26:09 +02:00
verify-commits add ryanofsky to trusted-keys 2023-05-08 23:30:56 -04:00
windeploy windeploy: Renewed windows code signing certificate 2022-05-24 12:55:03 -04:00
zmq scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
filter-lcov.py scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
README.md doc: Fix verify-binaries link in contrib README 2023-06-30 12:12:24 +02:00
valgrind.supp valgrind: add suppression for bug 472219 2023-07-25 10:23:18 +01:00

Repository Tools

Developer tools

Specific tools for developers working on this repository. Additional tools, including the github-merge.py script, are available in the maintainer-tools repository.

Verify-Commits

Tool to verify that every merge commit was signed by a developer using the github-merge.py script.

Linearize

Construct a linear, no-fork, best version of the blockchain.

Qos

A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Bitcoin network. This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it.

Seeds

Utility to generate the pnSeed[] array that is compiled into the client.

Build Tools and Keys

Packaging

The Debian subfolder contains the copyright file.

All other packaging related files can be found in the bitcoin-core/packaging repository.

MacDeploy

Scripts and notes for Mac builds.

Test and Verify Tools

TestGen

Utilities to generate test vectors for the data-driven Bitcoin tests.

Verify-Binaries

This script attempts to download and verify the signature file SHA256SUMS.asc from bitcoin.org.

Command Line Tools

Completions

Shell completions for bash and fish.