-
Notifications
You must be signed in to change notification settings - Fork 5.3k
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
BIP 148: Mandatory activation of segwit deployment #501
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
<pre> | ||
BIP: 148 | ||
Layer: Consensus (soft fork) | ||
Title: Mandatory activation of segwit deployment | ||
Author: Shaolin Fry <shaolinfry@protonmail.ch> | ||
Comments-Summary: No comments yet. | ||
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0148 | ||
Status: Draft | ||
Type: Standards Track | ||
Created: 2017-03-12 | ||
License: BSD-3-Clause | ||
CC0-1.0 | ||
</pre> | ||
|
||
==Abstract== | ||
|
||
This document specifies a BIP16 like soft fork flag day activation of the segregated witness BIP9 deployment known as "segwit". | ||
|
||
==Definitions== | ||
|
||
"existing segwit deployment" refer to the BIP9 "segwit" deployment using bit 1, between November 15th 2016 and November 15th 2017 to activate BIP141, BIP143 and BIP147. | ||
|
||
==Motivation== | ||
|
||
Segwit increases the blocksize, fixes transaction malleability, and makes scripting easier to upgrade as well as bringing many other [https://bitcoincore.org/en/2016/01/26/segwit-benefits/ benefits]. | ||
|
||
It is hoped that miners will respond to this BIP by activating segwit early, before this BIP takes effect. Otherwise this BIP will cause the mandatory activation of the existing segwit deployment before the end of midnight November 15th 2017. | ||
|
||
==Specification== | ||
|
||
All times are specified according to median past time. | ||
|
||
This BIP will be activate between midnight October 1st 2017 (epoch time 1506816000) and midnight November 15th 2017 (epoch time 1510704000) if the existing segwit deployment is not activated before epoch time 1506816000. This BIP will cease to be active when the existing segwit deployment activates. | ||
|
||
While this BIP is active, all blocks must set the nVersion header top 3 bits to 001 together with bit field (1<<1) (according to the existing segwit deployment). Blocks that do not signal as required will be rejected. | ||
|
||
=== Reference implementation === | ||
|
||
<pre> | ||
// mandatory segwit activation between Oct 1st 2017 and Nov 15th 2017 inclusive | ||
if (pindex->GetMedianTimePast() >= 1506816000 && pindex->GetMedianTimePast() <= 1510704000 && !IsWitnessEnabled(pindex->pprev, chainparams.GetConsensus())) { | ||
if (!((pindex->nVersion & VERSIONBITS_TOP_MASK) == VERSIONBITS_TOP_BITS) && (pindex->nVersion & VersionBitsMask(params, Consensus::DEPLOYMENT_SEGWIT)) != 0) { | ||
return state.DoS(0, error("ConnectBlock(): relayed block must signal for segwit, please upgrade"), REJECT_INVALID, "bad-no-segwit"); | ||
} | ||
} | ||
</pre> | ||
|
||
https://github.com/bitcoin/bitcoin/compare/master...shaolinfry:bip-segwit-flagday | ||
|
||
==Backwards Compatibility== | ||
|
||
This deployment is compatible with the existing "segwit" bit 1 deployment scheduled between midnight November 15th, 2016 and midnight November 15th, 2017. | ||
|
||
==Rationale== | ||
|
||
Historically, the P2SH soft fork (BIP16) was activated using a predetermined flag day where nodes began enforcing the new rules. P2SH was successfully activated with relatively few issues | ||
|
||
By orphaning non-signalling blocks during the last month of the BIP9 bit 1 "segwit" deployment, this BIP can cause the existing "segwit" deployment to activate without needing to release a new deployment. | ||
|
||
==References== | ||
|
||
*[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-March/013714.html Mailing list discussion] | ||
*[https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cpp#L1281-L1283 P2SH flag day activation] | ||
*[[bip-0009.mediawiki|BIP9 Version bits with timeout and delay]] | ||
*[[bip-0016.mediawiki|BIP16 Pay to Script Hash]] | ||
*[[bip-0141.mediawiki|BIP141 Segregated Witness (Consensus layer)]] | ||
*[[bip-0143.mediawiki|BIP143 Transaction Signature Verification for Version 0 Witness Program]] | ||
*[[bip-0147.mediawiki|BIP147 Dealing with dummy stack element malleability]] | ||
*[https://bitcoincore.org/en/2016/01/26/segwit-benefits/ Segwit benefits] | ||
|
||
==Copyright== | ||
|
||
This document dual licensed as BSD-3-Clause and CC0-1.0. | ||
|
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BSD 3-Clause
andCC0 1.0
: without dashes.Add hyperlinks to authoritative license deeds.
This document is