Always check scripts with P2SH + Segwit#499
Open
domob1812 wants to merge 2 commits intonamecoin:masterfrom
Open
Always check scripts with P2SH + Segwit#499domob1812 wants to merge 2 commits intonamecoin:masterfrom
domob1812 wants to merge 2 commits intonamecoin:masterfrom
Conversation
P2SH and Segwit have been activated on Namecoin for a long time now. Upstream Bitcoin enforces those script flags (plus Taproot which is not yet active on Namecoin) now unconditionally on the full block history, except for certain specific blocks that would fail. In Namecoin, actually all old blocks validate with P2SH and Segwit. Thus this changes GetBlockScriptFlags to always turn on P2SH and Segwit, which tidies up / simplifies things and also brings the code more in line with upstream.
Since script verification enforces segwit always now (without taking activation into account), we can no longer check for cases where transactions breaking segwit would be allowed pre-activation. This simplifies name_segwit.py, and makes it now just double-check that segwit is indeed enforced as it should be, as well as that generally names on segwit addresses work.
Author
|
Note that I think the first of the two commits should actually be merged directly to |
Author
|
@JeremyRand please take a look, let me know what you think, and help double-check that I'm not doing something stupid here (like accidentally turning off segwit, although the regtest would catch that). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upstream Bitcoin Core now enforces P2SH + Segwit + Taproot for all script verification, including old blocks, except for two blocks that actually fail those checks. On Namecoin, P2SH + Segwit (but not Taproot) are active for a long time as well, and actually all historic blocks validate with those rules according to my tests.
This change updates the code to enforce P2SH + Segwit for all scripts, independent of the fork activation. That simplifies things and brings the code more in line with upstream.