Implement BIP8 lockinontimeout #21507

pull achow101 wants to merge 15 commits into bitcoin:master from achow101:bip8 changing 19 files +1007 −354
  1. achow101 commented at 10:25 pm on March 22, 2021: member

    Implements the lockinontimeout parameter and MUST_SIGNAL phase of BIP 8, along with some tests. This PR is largely the non-refactor portions of #19573.

    Additionally the lockinontimeout parameter is made configurable through a -vblot command line option as has been suggested by many people. Note that no attempt is made to have lockinontimeout=true or lockinontimeout=false nodes try to find peers with the same policy. However nodes that set -vblot will have a user agent comment indicating this.

    Built on #21392 for the change to height based version bits, and #21399 for the renames.

  2. chainparams: make versionbits threshold per-deployment 42cf5e43dc
  3. Migrate versionbits to use height instead of MTP
    Co-authored-by: Anthony Towns <aj@erisian.com.au>
    8d9609fe0d
  4. Rename user facing mentions of BIP 9 to versionbits and/or BIP 8
    Co-authored-by: Anthony Towns <aj@erisian.com.au>
    1133b00ec6
  5. Add minimum activation height to BIP9Deployments 4af99e5681
  6. tests: test versionbits delayed activation ca39ed680c
  7. Clarify and reduce nRuleChangeActivationThreshold
    As thresholds are now parameterized, nRuleChangeActivationThreshold is
    no longer the threshold used for activating new rule changes. Instead it
    is now only used to warn if there is an unkonwn versionbits deployment.
    To make this clear, rename to m_vbits_min_threshold and update the
    comment describing it.
    
    Additionally, because this is just a minimum used for a warning, reduce
    the threshold to 75% so that future soft forks which may have thresholds
    lower than 95% will still have warnings.
    d065f3df6a
  8. test: add min_activation_height to -vbparams 55cc3cc9e5
  9. test: BIP 8 delayed activation functional test 60deed8053
  10. docs: Minor tweaks to genericide versionbits 4e4890ff57
  11. scripted-diff: Genericide BIP9 in variable/type names and comments
    -BEGIN VERIFY SCRIPT-
    sed -i -e 's/\bBIP9\b/versionbits/g; s/BIP9/VBits/g; s/bip9\([.()]\)/deployment_details\1/g' $(git grep -il BIP9 src)
    -END VERIFY SCRIPT-
    76c0b62136
  12. Add BIP 8 lockinontimeout flag and MUST_SIGNAL phase for versionbits 92b5a6f2a2
  13. Enforce mandatory signalling during BIP 8 MUST_SIGNAL phase
    Co-authored-by: Anthony Towns <aj@erisian.com.au>
    3cb5a8d397
  14. Add -vblot to allow configuring lockinontimeout
    Since lockinontimeout for any deployment on any network should be
    configurable, this is added as a new command line option specifically
    for configuring lockinontimeout.
    d3f7d7cb96
  15. Test BIP 8 lot=true 07104f2027
  16. tests: add functional test for bip8 activation
    Co-authored-by: Luke Dashjr <luke-jr+git@utopios.org>
    Co-authored-by: Anthony Towns <aj@erisian.com.au>
    0816a4e8f0
  17. DrahtBot commented at 10:55 pm on March 22, 2021: member

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #21489 (fuzz: cleanups for versionbits fuzzer by ajtowns)
    • #21401 (Refactor versionbits deployments to avoid potential uninitialized variables by achow101)
    • #21393 (BIP 341: Add Speedy Trial activation parameters by achow101)
    • #21392 (Implement BIP 8 based Speedy Trial activation by achow101)
    • #21378 (Convert taproot to flag day activation by ajtowns)
    • #21377 (Speedy trial support for versionbits by ajtowns)
    • #20354 (test: Add feature_taproot.py –previous_release by MarcoFalke)
    • #19438 (Introduce deploymentstatus by ajtowns)
    • #19391 (RPC/Mining: Clean out pre-Segwit miner compatibility code by luke-jr)
    • #10102 ([experimental] Multiprocess bitcoin by ryanofsky)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  18. DrahtBot added the label Consensus on Mar 23, 2021
  19. DrahtBot added the label Mining on Mar 23, 2021
  20. DrahtBot added the label RPC/REST/ZMQ on Mar 23, 2021
  21. DrahtBot added the label Validation on Mar 23, 2021
  22. achow101 closed this on Apr 6, 2021

  23. DrahtBot locked this on Aug 18, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-09-29 01:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me