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: contributor

    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: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

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

    <!--174a7506f384e20aa4161008e828411d-->

    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. DrahtBot cross-referenced this on Mar 6, 2021 from issue Speedy trial support for versionbits by ajtowns
  20. DrahtBot cross-referenced this on Mar 6, 2021 from issue Remove RewindBlockIndex logic by dhruv
  21. 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.

  22. DrahtBot cross-referenced this on Mar 6, 2021 from issue test: Add feature_taproot.py --previous_release by MarcoFalke
  23. DrahtBot cross-referenced this on Mar 7, 2021 from issue Multiprocess bitcoin by ryanofsky
  24. DrahtBot cross-referenced this on Mar 7, 2021 from issue tests: Add fuzzing harness for versionbits by ajtowns
  25. DrahtBot cross-referenced this on Mar 9, 2021 from issue BIP 341: Add Speedy Trial activation parameters by achow101
  26. DrahtBot cross-referenced this on Mar 9, 2021 from issue Implement BIP 8 based Speedy Trial activation by achow101
  27. DrahtBot cross-referenced this on Mar 9, 2021 from issue [Bundle 5/n] Prune g_chainman usage in RPC modules by dongcarl
  28. DrahtBot cross-referenced this on Mar 10, 2021 from issue Refactor versionbits deployments to avoid potential uninitialized variables by achow101
  29. DrahtBot cross-referenced this on Mar 10, 2021 from issue Genericide BIP9 in variable/type names and comments by luke-jr
  30. DrahtBot cross-referenced this on Mar 10, 2021 from issue multiprocess: Add bitcoin-gui -ipcconnect option by ryanofsky
  31. DrahtBot cross-referenced this on Mar 10, 2021 from issue multiprocess: Add bitcoin-wallet -ipcconnect option by ryanofsky
  32. DrahtBot cross-referenced this on Mar 11, 2021 from issue Introduce deploymentstatus by ajtowns
  33. DrahtBot cross-referenced this on Mar 13, 2021 from issue build: Add -Werror=implicit-fallthrough compile flag by hebasto
  34. DrahtBot cross-referenced this on Mar 18, 2021 from issue Move external signer out of wallet module by Sjors
  35. DrahtBot cross-referenced this on Mar 22, 2021 from issue Implement BIP8 lockinontimeout by achow101
  36. DrahtBot cross-referenced this on Apr 3, 2021 from issue rpc, gui: bumpfee signer support by Sjors
  37. DrahtBot cross-referenced this on Apr 3, 2021 from issue refactor: Create blockstorage module by MarcoFalke
  38. luke-jr commented at 1:44 AM on April 8, 2021: member
  39. DrahtBot cross-referenced this on Apr 8, 2021 from issue Replace unused BIP 9 logic with draft BIP 8 by luke-jr
  40. ajtowns closed this on Apr 20, 2021

  41. bitcoin 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: 2026-05-20 06:54 UTC