From 7ca054213626ae0c1192b39cf827659823e30a17 Mon Sep 17 00:00:00 2001 From: shaolinfry Date: Mon, 27 Mar 2017 18:40:07 +0100 Subject: [PATCH] BIP9 extension to allow optional, guaranteed activation --- bip-uaversionbits.mediawiki | 71 +++++++++++++++++++++++++++++++++++ bip-uaversionbits/states.png | Bin 0 -> 32531 bytes 2 files changed, 71 insertions(+) create mode 100644 bip-uaversionbits.mediawiki create mode 100644 bip-uaversionbits/states.png diff --git a/bip-uaversionbits.mediawiki b/bip-uaversionbits.mediawiki new file mode 100644 index 00000000..890c9f1f --- /dev/null +++ b/bip-uaversionbits.mediawiki @@ -0,0 +1,71 @@ +
+  BIP: ?
+  Title: Version bits extension with guaranteed lock-in
+  Author: Shaolin Fry 
+  Comments-Summary: No comments yet.
+  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-????
+  Status: Draft
+  Type: Informational
+  Created: 2017-02-01
+  License: BSD-3-Clause
+           CC0-1.0
+
+ +==Abstract== + +This document specifies an extension to [[bip-0009.mediawiki|BIP9]] that introduces an additional activation parameter to guarantee activation of backward-compatible changes (further called "soft forks"). + +==Motivation== + +BIP9 introduced a mechanism for doing parallel soft forking deployments based on repurposing the block nVersion field. Activation is dependent on near unanimous hashrate signalling which may be impractical and is also subject to veto by a small minority of non-signalling hashrate. + +This specification provides a way to optionally guarantee lock-in at the end of the [[bip-0009.mediawiki|BIP9]] timeout, and therefore activation. + +==Specification== + +This specification adds a new per-chain deployment parameter to the existing [[bip-0009.mediawiki|BIP9]] specification as follows: + +# The '''lockinontimeout''' boolean if set to true, will transition state to '''LOCKED_IN''' at timeout if not already '''LOCKED_IN''' or '''ACTIVE'''. + +===State transitions=== + + + +The state transition workflow is exactly the same as in [[bip-0009.mediawiki|BIP9]] with an additional rule: During the STARTED state if the '''lockinontimeout''' is set to true, the state will transition to LOCKED_IN when '''timeout''' is reached. + + case STARTED: + // BIP9 specification follows + if (GetMedianTimePast(block.parent) >= timeout) { + return (fLockInOnTimeout == true) ? THRESHOLD_LOCKED_IN : THRESHOLD_FAILED + } + int count = 0; + walk = block; + for (i = 0; i < 2016; i++) { + walk = walk.parent; + if (walk.nVersion & 0xE0000000 == 0x20000000 && (walk.nVersion >> bit) & 1 == 1) { + count++; + } + } + if (count >= threshold) { + return LOCKED_IN; + } + return STARTED; + +=== Reference implementation === + +https://github.com/bitcoin/bitcoin/compare/master...shaolinfry:bip-uaversionbits + +==Deployments== + +A living list of deployment proposals can be found [[bip-0009/assignments.mediawiki|here]]. + +==References== + +[[bip-0009.mediawiki|BIP9]] + +[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-February/013643.html Mailing list discussion] + +==Copyright== + +This document is dual licensed as BSD 3-clause, and Creative Commons CC0 1.0 Universal. + diff --git a/bip-uaversionbits/states.png b/bip-uaversionbits/states.png new file mode 100644 index 0000000000000000000000000000000000000000..eabae0fd496fcf588905b794e3da2876e700d4c9 GIT binary patch literal 32531 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 literal 0 HcmV?d00001