Skip to content

Conversation

@apoelstra
Copy link
Member

@apoelstra apoelstra commented Sep 15, 2021

Sets Taproot to start signalling around noon (California time) on Nov 1, 2021, assuming 95% of blocks are produced between now and then.

Will activate after one week of 100% signalling. If we can pull this off on the first or second try, we will beat Bitcoin which currently looks like it will activate on Nov 16.

Edit: actually, even without Speedy Trial, there is one full period (week) where Taproot will be "locked in" but not "active". So it will activate on Nov 15 at the earliest.

@apoelstra apoelstra added this to the 0.21 milestone Sep 15, 2021
@apoelstra apoelstra force-pushed the 2021-09--taproot-activation branch 2 times, most recently from 0c6acb6 to 9bb0e27 Compare September 15, 2021 19:41
@apoelstra apoelstra force-pushed the 2021-09--taproot-activation branch from 9bb0e27 to 5291c0d Compare September 15, 2021 19:57
@gwillen
Copy link
Contributor

gwillen commented Sep 16, 2021

I don't feel like I understand the activation machinery well enough to truly ack this without a bunch more thought, but it seems reasonable to me.

@stevenroose
Copy link
Contributor

utACK 5291c0d
checked the values, was confused for a while because the nStartTime is a block height instead of a timestamp :D

consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;

consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].bit = 2;
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nStartTime = 1554500; // November 1, 2021
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't the current code (prior to this patch) buggy in that it leaves consensus.vDeployments[TAPROOT] uninitialised, so that it could be anything?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, oops. This has only been true on master and for a day or two (during which time we've been merging a lot of taproot-related PRs), but it shouldn't have happened nonetheless.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW -- to clarify your comment on twitter, this won't cause Taproot to be enforced on the LIquid network (except in the sense that leaving these variables undefined is UB so theoretically anything could happen). It would, at worst, cause the functionaries to start signalling early. But even that won't happen, because ofc the functionaries are not running master.

@psgreco
Copy link
Contributor

psgreco commented Sep 17, 2021

Looks good, utACK 0df8895

Copy link
Contributor

@achow101 achow101 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 0df8895

The parameters themselves don't make a whole lot of sense to me, but the code itself is mostly fine.

consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].nTimeout = 1230767999; // December 31, 2008
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].bit = 2;
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE;
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nStartTime = gArgs.GetArg("-con_taproot_signal_start", Consensus::BIP9Deployment::ALWAYS_ACTIVE);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In 5291c0d "chainparams: add undocumented regtest/testnet only -con_taproot_signal_start option"

This is entirely unnecessary as there already exists a way to set regtest activation params via -vbparams. See the function CRegTestParams::UpdateActivationParametersFromArgs.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! I didn't know about this.

I'm going to leave it in because this code is inherently temporary and we're already using it for internal testing, but in future we can avoid these kind of hacky undocumented options.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eh, also didn't know that. We did the same thing for dynafed :)

@apoelstra apoelstra force-pushed the 2021-09--taproot-activation branch from 0df8895 to 3cb9612 Compare September 18, 2021 00:50
@achow101
Copy link
Contributor

ACK 3cb9612

@apoelstra apoelstra merged commit f7f9555 into ElementsProject:master Sep 18, 2021
@apoelstra apoelstra deleted the 2021-09--taproot-activation branch September 18, 2021 03:24
gwillen pushed a commit that referenced this pull request Jun 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants