summaryrefslogtreecommitdiff
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-03-30 22:46:18 +0000
commit12a2131bb425a3afb7e5d51576d43d0bc8a6d106 (patch)
tree6564c0c595128dbe2659b599d3efda2fb5db625b
parentb0b65ceedece12e8ea109abe1fb518c49e0e09ff (diff)
downloadbips-12a2131bb425a3afb7e5d51576d43d0bc8a6d106.tar.xz
BIP 9: GBT specification
-rw-r--r--bip-0009.mediawiki29
1 files changed, 29 insertions, 0 deletions
diff --git a/bip-0009.mediawiki b/bip-0009.mediawiki
index b72010d..b506aad 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.