mirror of https://github.com/zcash/zips.git
ZIPs 205 and 208: conformance language.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
parent
9a4ebc97ba
commit
1ea9859e14
|
@ -15,7 +15,7 @@ Category: Consensus
|
|||
Created: 2018-10-08
|
||||
License: MIT</pre>
|
||||
<section id="terminology"><h2><span class="section-heading">Terminology</span><span class="section-anchor"> <a rel="bookmark" href="#terminology"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2>
|
||||
<p>The key words "MUST", "MUST NOT", "SHOULD", and "MAY" in this document are to be interpreted as described in RFC 2119. <a id="id1" class="footnote_reference" href="#rfc2119">1</a></p>
|
||||
<p>The key words "MUST" and "SHOULD" in this document are to be interpreted as described in RFC 2119. <a id="id1" class="footnote_reference" href="#rfc2119">1</a></p>
|
||||
<p>The terms "consensus branch" and "network upgrade" in this document are to be interpreted as described in ZIP 200. <a id="id2" class="footnote_reference" href="#zip-0200">7</a></p>
|
||||
<p>The terms "Testnet" and "Mainnet" are to be interpreted as described in section 3.11 of the Zcash Protocol Specification <a id="id3" class="footnote_reference" href="#protocol-networks">3</a>.</p>
|
||||
<p>The terms below are to be interpreted as follows:</p>
|
||||
|
@ -53,7 +53,7 @@ License: MIT</pre>
|
|||
<pre>/** The period before a network upgrade activates, where connections to upgrading peers are preferred (in blocks). */
|
||||
static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 24 * 24 * 3;</pre>
|
||||
<p>The implementation is similar to that for Overwinter which was described in <a id="id9" class="footnote_reference" href="#zip-0201">8</a>.</p>
|
||||
<p>Once Sapling activates on Testnet or Mainnet, Sapling nodes should take steps to:</p>
|
||||
<p>Once Sapling activates on Testnet or Mainnet, Sapling nodes SHOULD take steps to:</p>
|
||||
<ul>
|
||||
<li>reject new connections from pre-Sapling nodes;</li>
|
||||
<li>disconnect any existing connections to pre-Sapling nodes.</li>
|
||||
|
@ -61,7 +61,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 24 * 24 * 3;</pr
|
|||
</section>
|
||||
<section id="change-to-difficulty-adjustment-on-testnet"><h3><span class="section-heading">Change to difficulty adjustment on Testnet</span><span class="section-anchor"> <a rel="bookmark" href="#change-to-difficulty-adjustment-on-testnet"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h3>
|
||||
<p>Section 7.6.3 of the Zcash Protocol Specification <a id="id10" class="footnote_reference" href="#protocol-diffadjustment">5</a> describes the algorithm used to adjust the difficulty of a block (defined in terms of a "target threshold") based on the <code>nTime</code> and <code>nBits</code> fields of preceding blocks.</p>
|
||||
<p>This algorithm changed on Testnet, starting from block 299188, to allow "minimum-difficulty" blocks. If the block time of a block from this height onward is greater than 15 minutes after that of the preceding block, then the block is a minimum-difficulty block. In that case its <code>nBits</code> field is set to ToCompact(PoWLimit), where PoWLimit is the value defined for Testnet in section 5.3 of the Zcash Protocol Specification <a id="id11" class="footnote_reference" href="#protocol-constants">4</a>, and ToCompact is as defined in section 7.6.4 of that specification <a id="id12" class="footnote_reference" href="#protocol-nbits">6</a>.</p>
|
||||
<p>This algorithm changed on Testnet, starting from block 299188, to allow "minimum-difficulty" blocks. If the block time of a block from this height onward is greater than 15 minutes after that of the preceding block, then the block is a minimum-difficulty block. In that case its <code>nBits</code> field MUST be set to ToCompact(PoWLimit), where PoWLimit is the value defined for Testnet in section 5.3 of the Zcash Protocol Specification <a id="id11" class="footnote_reference" href="#protocol-constants">4</a>, and ToCompact is as defined in section 7.6.4 of that specification <a id="id12" class="footnote_reference" href="#protocol-nbits">6</a>.</p>
|
||||
<p>Note: a previous revision of this ZIP incorrectly said that only the target threshold of minimum-difficulty blocks is affected. In fact the <code>nBits</code> field is as well, and this affects difficulty adjustment for subsequent blocks.</p>
|
||||
<p>This change does not affect Mainnet.</p>
|
||||
</section>
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
Terminology
|
||||
===========
|
||||
|
||||
The key words "MUST", "MUST NOT", "SHOULD", and "MAY" in this document are to be
|
||||
interpreted as described in RFC 2119. [#RFC2119]_
|
||||
The key words "MUST" and "SHOULD" in this document are to be interpreted as
|
||||
described in RFC 2119. [#RFC2119]_
|
||||
|
||||
The terms "consensus branch" and "network upgrade" in this document are to be
|
||||
interpreted as described in ZIP 200. [#zip-0200]_
|
||||
|
@ -89,7 +89,7 @@ peer connections.
|
|||
The implementation is similar to that for Overwinter which was described in
|
||||
[#zip-0201]_.
|
||||
|
||||
Once Sapling activates on Testnet or Mainnet, Sapling nodes should take steps to:
|
||||
Once Sapling activates on Testnet or Mainnet, Sapling nodes SHOULD take steps to:
|
||||
|
||||
- reject new connections from pre-Sapling nodes;
|
||||
- disconnect any existing connections to pre-Sapling nodes.
|
||||
|
@ -106,7 +106,7 @@ blocks.
|
|||
This algorithm changed on Testnet, starting from block 299188, to allow
|
||||
"minimum-difficulty" blocks. If the block time of a block from this height onward
|
||||
is greater than 15 minutes after that of the preceding block, then the block is a
|
||||
minimum-difficulty block. In that case its ``nBits`` field is set to
|
||||
minimum-difficulty block. In that case its ``nBits`` field MUST be set to
|
||||
ToCompact(PoWLimit), where PoWLimit is the value defined for Testnet in section 5.3
|
||||
of the Zcash Protocol Specification [#protocol-constants]_, and ToCompact is as
|
||||
defined in section 7.6.4 of that specification [#protocol-nbits]_.
|
||||
|
|
|
@ -17,7 +17,7 @@ Created: 2019-01-10
|
|||
License: MIT
|
||||
Pull-Request: <<a href="https://github.com/zcash/zips/pull/237">https://github.com/zcash/zips/pull/237</a>></pre>
|
||||
<section id="terminology"><h2><span class="section-heading">Terminology</span><span class="section-anchor"> <a rel="bookmark" href="#terminology"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2>
|
||||
<p>The key words "MUST", "SHOULD", "SHOULD NOT", and "MAY" in this document are to be interpreted as described in RFC 2119. <a id="id1" class="footnote_reference" href="#rfc2119">1</a></p>
|
||||
<p>The key words "MUST" and "SHOULD" in this document are to be interpreted as described in RFC 2119. <a id="id1" class="footnote_reference" href="#rfc2119">1</a></p>
|
||||
<p>The terms "block chain", "consensus rule change", "consensus branch", and "network upgrade" are to be interpreted as defined in <a id="id2" class="footnote_reference" href="#zip-0200">9</a>.</p>
|
||||
<p>The term "block target spacing" means the time interval between blocks targeted by the difficulty adjustment algorithm in a given consensus branch. It is normally measured in seconds. (This is also sometimes called the "target block time", but "block target spacing" is the term used in the Zcash Protocol Specification <a id="id3" class="footnote_reference" href="#protocol-diffadjustment">6</a>.)</p>
|
||||
<p>The terms "Testnet" and "Mainnet" are to be interpreted as described in section 3.11 of the Zcash Protocol Specification <a id="id4" class="footnote_reference" href="#protocol-networks">4</a>.</p>
|
||||
|
@ -112,7 +112,7 @@ Pull-Request: <<a href="https://github.com/zcash/zips/pull/237">https://githu
|
|||
<p>Note that the change in AveragingWindowTimespan(height) takes effect immediately when calculating the target difficulty starting from the block at the Blossom activation height, even though the difficulty of the preceding PoWAveragingWindow blocks will have been adjusted using the pre-Blossom target spacing. Therefore it is likely that the difficulty adjustment for the first few blocks after activation will be limited by PoWMaxAdjustDown. This is not anticipated to cause any problem.</p>
|
||||
<section id="minimum-difficulty-blocks-on-testnet"><h4><span class="section-heading">Minimum difficulty blocks on Testnet</span><span class="section-anchor"> <a rel="bookmark" href="#minimum-difficulty-blocks-on-testnet"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h4>
|
||||
<p>On Testnet from block height 299188 onward, the difficulty adjustment algorithm <a id="id10" class="footnote_reference" href="#protocol-diffadjustment">6</a> allows minimum-difficulty blocks, as described in <a id="id11" class="footnote_reference" href="#zip-0205">10</a>, when the block time is greater than a given threshold. This specification changes this threshold to be proportional to the block target spacing.</p>
|
||||
<p>That is, if the block time of a block at height <em>height</em> ≥ 299188 is greater than 6 · PoWTargetSpacing(<em>height</em>) seconds after that of the preceding block, then the block is a minimum-difficulty block. In that case its <code>nBits</code> field is set to ToCompact(PoWLimit), where PoWLimit is the value defined for Testnet in section 5.3 of the Zcash Protocol Specification <a id="id12" class="footnote_reference" href="#protocol-constants">5</a>, and ToCompact is as defined in section 7.6.4 of that specification <a id="id13" class="footnote_reference" href="#protocol-nbits">7</a>.</p>
|
||||
<p>That is, if the block time of a block at height <em>height</em> ≥ 299188 is greater than 6 · PoWTargetSpacing(<em>height</em>) seconds after that of the preceding block, then the block is a minimum-difficulty block. In that case its <code>nBits</code> field MUST be set to ToCompact(PoWLimit), where PoWLimit is the value defined for Testnet in section 5.3 of the Zcash Protocol Specification <a id="id12" class="footnote_reference" href="#protocol-constants">5</a>, and ToCompact is as defined in section 7.6.4 of that specification <a id="id13" class="footnote_reference" href="#protocol-nbits">7</a>.</p>
|
||||
<p>Note: a previous revision of this ZIP (and <a id="id14" class="footnote_reference" href="#zip-0205">10</a>) incorrectly said that only the target threshold of minimum-difficulty blocks is affected. In fact the <code>nBits</code> field is as well, and this affects difficulty adjustment for subsequent blocks.</p>
|
||||
<p>This change does not affect Mainnet.</p>
|
||||
</section>
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
Terminology
|
||||
===========
|
||||
|
||||
The key words "MUST", "SHOULD", "SHOULD NOT", and "MAY" in this document are to
|
||||
be interpreted as described in RFC 2119. [#RFC2119]_
|
||||
The key words "MUST" and "SHOULD" in this document are to be interpreted as
|
||||
described in RFC 2119. [#RFC2119]_
|
||||
|
||||
The terms "block chain", "consensus rule change", "consensus branch", and
|
||||
"network upgrade" are to be interpreted as defined in [#zip-0200]_.
|
||||
|
@ -191,7 +191,7 @@ spacing.
|
|||
That is, if the block time of a block at height *height* ≥ 299188 is greater than
|
||||
6 · PoWTargetSpacing(*height*) seconds after that of the preceding block,
|
||||
then the block is a minimum-difficulty block. In that case its ``nBits`` field
|
||||
is set to ToCompact(PoWLimit), where PoWLimit is the value defined for Testnet
|
||||
MUST be set to ToCompact(PoWLimit), where PoWLimit is the value defined for Testnet
|
||||
in section 5.3 of the Zcash Protocol Specification [#protocol-constants]_, and
|
||||
ToCompact is as defined in section 7.6.4 of that specification [#protocol-nbits]_.
|
||||
|
||||
|
|
Loading…
Reference in New Issue