Convert taproot to flag day activation #21378

pull ajtowns wants to merge 10 commits into bitcoin:master from ajtowns:202103-taproot-flag-day changing 21 files +339 −199
  1. ajtowns commented at 11:27 am on March 6, 2021: member

    Convert taproot to flag day activation. See https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-February/018495.html and https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-March/018539.html

    Based on #19438 which makes switching a deployment between signalled and buried/flag-day straightforward.

  2. versionbits: correct doxygen comments 898d54177d
  3. versionbits: Use dedicated lock instead of cs_main c5ed42fab9
  4. [refactor] Add deploymentstatus.h
    Provides DeploymentEnabled, DeploymentActiveAt, and DeploymentActiveAfter
    helpers for checking the status of buried deployments. Can be overloaded
    so the same syntax works for non-buried deployments, allowing future
    soft forks to be changed from signalled to buried deployments without
    having to touch the implementation code.
    
    Replaces IsWitnessEnabled and IsScriptWitnessEnabled.
    ad5adb398a
  5. [refactor] Add versionbits deployments to deploymentstatus.h
    Adds support for versionbits deployments to DeploymentEnabled,
    DeploymentActiveAfter and DeploymentActiveAt. Also moves versionbitscache
    from validation to deploymentstatus.
    073ae5b33c
  6. [refactor] SoftForkPushBack and deploymentinfo
    rpc/blockchain.cpp: Rename BIP9SoftForkPushBack and BuriedSoftForkPushBack
    to SoftForkPushBack and have the compiler figure out which one to use
    based on the deployment type. Avoids having to update the file when
    burying a deployment.
    
    deploymentinfo: Rename versionbitsinfo to deploymentinfo and add
    names of buried deployments, so they don't need to be duplicated in
    VBDeploymentInfo and getblockchaininfo.
    aa1deb7507
  7. [refactor] versionbits: make VersionBitsCache a full class
    Moves the VersionBits* functions to be methods of the cache class,
    and makes the cache and its lock private to the class.
    3ce2405c58
  8. [refactor] move ComputeBlockVersion from validation to VersionBitsCache
    This also changes ComputeBlockVersion to take the vbcache lock once,
    rather than once for each deployment.
    3a32ec4a05
  9. Switch taproot to buried deployment b8413a6362
  10. gbt: encourage signalling by vbit 2 prior to taproot activation 6e08b0852c
  11. consensus: enable taproot at flag day height 747936 -- DO NOT RUN 69e36bc152
  12. DrahtBot added the label Build system on Mar 6, 2021
  13. DrahtBot added the label Consensus on Mar 6, 2021
  14. DrahtBot added the label Mining on Mar 6, 2021
  15. DrahtBot added the label P2P on Mar 6, 2021
  16. DrahtBot added the label RPC/REST/ZMQ on Mar 6, 2021
  17. DrahtBot added the label Validation on Mar 6, 2021
  18. DrahtBot commented at 6:33 pm on March 6, 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:

    • #21575 (refactor: Create blockstorage module by MarcoFalke)
    • #21467 (Move external signer out of wallet module by Sjors)
    • #21401 (Refactor versionbits deployments to avoid potential uninitialized variables by achow101)
    • #21391 ([Bundle 5/n] Prune g_chainman usage in RPC modules by dongcarl)
    • #21377 (Speedy trial support for versionbits by ajtowns)
    • #21009 (Remove RewindBlockIndex logic by dhruv)
    • #20354 (test: Add feature_taproot.py –previous_release by MarcoFalke)
    • #19573 (Replace unused BIP 9 logic with draft BIP 8 by luke-jr)
    • #19461 (multiprocess: Add bitcoin-gui -ipcconnect option by ryanofsky)
    • #19460 (multiprocess: Add bitcoin-wallet -ipcconnect option by ryanofsky)
    • #19438 (Introduce deploymentstatus by ajtowns)
    • #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.

  19. michaelfolkson commented at 10:23 pm on March 6, 2021: contributor

    Light Concept NACK.

    I prefer the Speedy Trial activation method which you have started on in a different PR. I also think (I could be wrong) a flag day activation stands much less chance of being merged given harding’s F7 argument and Rusty’s “Developers should not activate” argument amongst others.

    Having said that, if a flag day was to have overwhelming consensus I wouldn’t Concept NACK it.

  20. luke-jr commented at 1:44 am on April 8, 2021: member
  21. ajtowns closed this on Apr 20, 2021

  22. DrahtBot locked this on Aug 16, 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-07-05 22:12 UTC

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