summaryrefslogtreecommitdiff
path: root/bip-0009.mediawiki
diff options
context:
space:
mode:
authorLuke Dashjr <luke-jr+git@utopios.org>2016-03-30 22:38:57 +0000
committerLuke Dashjr <luke-jr+git@utopios.org>2016-05-22 10:46:22 +0000
commit4c124a8c5dad794b9c13d27990fa42651f44676f (patch)
tree19f2c718e2490c4fdeb55cb697dbf1b09bbfe055 /bip-0009.mediawiki
parent4e9591d8c787f0d32b5a79862c8570300dc742d6 (diff)
downloadbips-4c124a8c5dad794b9c13d27990fa42651f44676f.tar.xz
BIP 9: GBT specification
Diffstat (limited to 'bip-0009.mediawiki')
-rw-r--r--bip-0009.mediawiki29
1 files changed, 29 insertions, 0 deletions
diff --git a/bip-0009.mediawiki b/bip-0009.mediawiki
index a8604fa..98eb190 100644
--- a/bip-0009.mediawiki
+++ b/bip-0009.mediawiki
@@ -161,6 +161,35 @@ block, indexed by its parent.
To support upgrade warnings, an extra "unknown upgrade" is tracked, using the "implicit bit" mask = (block.nVersion & ~expectedVersion) != 0. Mask will be non-zero whenever an unexpected bit is set in nVersion. Whenever LOCKED_IN for the unknown upgrade is detected, the software should warn loudly about the upcoming soft fork. It should warn even more loudly after the next retarget period (when the unknown upgrade is in the ACTIVE state).
+===getblocktemplate changes===
+
+The template request Object is extended to include a new item:
+
+{| class="wikitable"
+!colspan=4| template request
+|-
+! Key !! Required !! Type !! Description
+|-
+| rules || {{No}} || Array of Strings || list of supported softfork deployments, by name
+|}
+
+The template Object is also extended:
+
+{| class="wikitable"
+!colspan=4| template
+|-
+! Key !! Required !! Type !! Description
+|-
+| rules || {{Yes}} || Object || set of pending, supported softfork deployments; each uses the softfork name as the key, and the softfork bit as its value
+|-
+| rulesrequired || {{No}} || Array of Strings || list of softfork deployments the server requires support for
+|-
+| rulesenforced || {{Yes}} || Array of Strings || list of softfork deployments that are active state
+|}
+
+The "version" key of the template is retained, and used to indicate the server's preference of deployments.
+Miners MAY clear or set bits in the block version WITHOUT any special "mutable" key, provided they are listed among the template's "rules" and (when clearing is desired) NOT listed in "rulesrequired".
+
==Support for future changes==
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.