Skip to content
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

Closed
wants to merge 10 commits into from

Conversation

ajtowns
Copy link
Contributor

@ajtowns ajtowns commented Mar 6, 2021

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.

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.
@DrahtBot
Copy link
Contributor

DrahtBot commented Mar 6, 2021

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

Conflicts

Reviewers, 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.

@michaelfolkson
Copy link
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.

@luke-jr
Copy link
Member

luke-jr commented Apr 8, 2021

@ajtowns ajtowns closed this Apr 20, 2021
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants