From 5e6dc77d6bfd53b7a6c2d350c9f7d59d70f0d85a Mon Sep 17 00:00:00 2001 From: Johnson Lau Date: Mon, 20 Jun 2016 01:47:03 +0800 Subject: Clarify BIP9 threshold MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The threshold for should be ≥2016 for mainnet, ≥1512 for testnet. https://github.com/bitcoin/bitcoin/blob/v0.12.1/src/versionbits.cpp#L69 https://github.com/bitcoin/bitcoin/blob/v0.12.1/src/chainparams.cpp#L84 https://github.com/bitcoin/bitcoin/blob/v0.12.1/src/chainparams.cpp#L177 --- bip-0009.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'bip-0009.mediawiki') diff --git a/bip-0009.mediawiki b/bip-0009.mediawiki index 2e4da43..7270abd 100644 --- a/bip-0009.mediawiki +++ b/bip-0009.mediawiki @@ -109,7 +109,7 @@ referred to as MTP in the diagram above, and is treated as a monotonic clock def After a period in the STARTED state, if we're past the timeout, we switch to FAILED. If not, we tally the bits set, and transition to LOCKED_IN if a sufficient number of blocks in the past period set the deployment bit in their -version numbers. The threshold is 1915 blocks (95% of 2016), or 1512 for testnet (75% of 2016). +version numbers. The threshold is ≥1916 blocks (95% of 2016), or ≥1512 for testnet (75% of 2016). The transition to FAILED takes precendence, as otherwise an ambiguity can arise. There could be two non-overlapping deployments on the same bit, where the first one transitions to LOCKED_IN while the other one simultaneously transitions to STARTED, which would mean both would demand setting the bit. @@ -202,7 +202,7 @@ A client that does not understand a rule prefixed by '!' must not attempt to pro The mechanism described above is very generic, and variations are possible for future soft forks. Here are some ideas that can be taken into account. '''Modified thresholds''' -The 1915 threshold (based on in BIP 34's 95%) does not have to be maintained for eternity, but changes should take the effect on the warning system into account. In particular, having a lock-in threshold that is incompatible with the one used for the warning system may have long-term effects, as the warning system cannot rely on a permanently detectable condition anymore. +The 1916 threshold (based on in BIP 34's 95%) does not have to be maintained for eternity, but changes should take the effect on the warning system into account. In particular, having a lock-in threshold that is incompatible with the one used for the warning system may have long-term effects, as the warning system cannot rely on a permanently detectable condition anymore. '''Conflicting soft forks''' At some point, two mutually exclusive soft forks may be proposed. The naive way to deal with this is to never create software that implements both, but that is making a bet that at least one side is guaranteed to lose. Better would be to encode "soft fork X cannot be locked-in" as consensus rule for the conflicting soft fork - allowing software that supports both, but can never trigger conflicting changes. -- cgit v1.2.3