-
Notifications
You must be signed in to change notification settings - Fork 35.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Convert taproot to flag day activation #21378
Conversation
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.
Adds support for versionbits deployments to DeploymentEnabled, DeploymentActiveAfter and DeploymentActiveAt. Also moves versionbitscache from validation to deploymentstatus.
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.
Moves the VersionBits* functions to be methods of the cache class, and makes the cache and its lock private to the class.
This also changes ComputeBlockVersion to take the vbcache lock once, rather than once for each deployment.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
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. |
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. |
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.