mirror of
https://github.com/bitcoin/bips.git
synced 2025-02-26 17:09:37 +01:00
This removes the FAILING state and adds compulsory signalling during a new MUST_SIGNAL phase during the last retarget period prior to the timeout height. This ensures that if a deployment occurs using bip8 with lockinontimeout=false and timeoutheight=N, that a later deployment using bip8 with lockinontimeout=true and timeoutheight=K, where K<N that any chain where LOCKED_IN is reached prior to height K, will be accepted as valid by nodes using either set of deployment parameters. It also ensures that the soft-fork's changed rules are only enforced on chain a retarget period after signalling indicates enforcement is expected (which was not previously the case if the FAILING to ACTIVE transition took place).
120 lines
7.9 KiB
XML
120 lines
7.9 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
<!-- Generated by graphviz version 2.42.3 (20191010.1750)
|
|
-->
|
|
<!-- Title: %3 Pages: 1 -->
|
|
<svg width="563pt" height="348pt"
|
|
viewBox="0.00 0.00 563.00 348.37" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 344.37)">
|
|
<title>%3</title>
|
|
<polygon fill="white" stroke="transparent" points="-4,4 -4,-344.37 559,-344.37 559,4 -4,4"/>
|
|
<!-- DEFINED -->
|
|
<g id="node1" class="node">
|
|
<title>DEFINED</title>
|
|
<path fill="lightgrey" stroke="black" stroke-width="2" d="M114,-333.75C114,-333.75 30,-333.75 30,-333.75 24,-333.75 18,-327.75 18,-321.75 18,-321.75 18,-309.75 18,-309.75 18,-303.75 24,-297.75 30,-297.75 30,-297.75 114,-297.75 114,-297.75 120,-297.75 126,-303.75 126,-309.75 126,-309.75 126,-321.75 126,-321.75 126,-327.75 120,-333.75 114,-333.75"/>
|
|
<text text-anchor="middle" x="72" y="-312.05" font-family="Arial" font-size="14.00">DEFINED</text>
|
|
</g>
|
|
<!-- DEFINED->DEFINED -->
|
|
<g id="edge8" class="edge">
|
|
<title>DEFINED:sw->DEFINED:nw</title>
|
|
<path fill="none" stroke="black" d="M18,-297.75C12,-287.25 0,-287.25 0,-315.75 0,-334.01 4.92,-340.57 10.04,-340.17"/>
|
|
<polygon fill="black" stroke="black" points="12.41,-342.75 18,-333.75 8.02,-337.3 12.41,-342.75"/>
|
|
</g>
|
|
<!-- STARTED -->
|
|
<g id="node2" class="node">
|
|
<title>STARTED</title>
|
|
<path fill="#a0a0ff" stroke="black" stroke-width="2" d="M114,-246.75C114,-246.75 30,-246.75 30,-246.75 24,-246.75 18,-240.75 18,-234.75 18,-234.75 18,-222.75 18,-222.75 18,-216.75 24,-210.75 30,-210.75 30,-210.75 114,-210.75 114,-210.75 120,-210.75 126,-216.75 126,-222.75 126,-222.75 126,-234.75 126,-234.75 126,-240.75 120,-246.75 114,-246.75"/>
|
|
<text text-anchor="middle" x="72" y="-225.05" font-family="Arial" font-size="14.00">STARTED</text>
|
|
</g>
|
|
<!-- DEFINED->STARTED -->
|
|
<g id="edge1" class="edge">
|
|
<title>DEFINED->STARTED</title>
|
|
<path fill="none" stroke="black" d="M72,-297.55C72,-285.91 72,-270.3 72,-256.99"/>
|
|
<polygon fill="black" stroke="black" points="75.5,-256.93 72,-246.93 68.5,-256.93 75.5,-256.93"/>
|
|
<text text-anchor="middle" x="133" y="-268.55" font-family="Times,serif" font-size="14.00">height >= start_height</text>
|
|
</g>
|
|
<!-- STARTED->STARTED -->
|
|
<g id="edge9" class="edge">
|
|
<title>STARTED:sw->STARTED:nw</title>
|
|
<path fill="none" stroke="black" d="M18,-210.75C12,-200.25 0,-200.25 0,-228.75 0,-247.01 4.92,-253.57 10.04,-253.17"/>
|
|
<polygon fill="black" stroke="black" points="12.41,-255.75 18,-246.75 8.02,-250.3 12.41,-255.75"/>
|
|
</g>
|
|
<!-- MUST_SIGNAL -->
|
|
<g id="node3" class="node">
|
|
<title>MUST_SIGNAL</title>
|
|
<path fill="#a0a0ff" stroke="black" stroke-width="2" d="M543,-246.75C543,-246.75 459,-246.75 459,-246.75 453,-246.75 447,-240.75 447,-234.75 447,-234.75 447,-222.75 447,-222.75 447,-216.75 453,-210.75 459,-210.75 459,-210.75 543,-210.75 543,-210.75 549,-210.75 555,-216.75 555,-222.75 555,-222.75 555,-234.75 555,-234.75 555,-240.75 549,-246.75 543,-246.75"/>
|
|
<text text-anchor="middle" x="501" y="-225.05" font-family="Arial" font-size="14.00">MUST_SIGNAL</text>
|
|
</g>
|
|
<!-- STARTED->MUST_SIGNAL -->
|
|
<g id="edge2" class="edge">
|
|
<title>STARTED->MUST_SIGNAL</title>
|
|
<path fill="none" stroke="black" d="M126.33,-228.75C205.44,-228.75 352.08,-228.75 436.54,-228.75"/>
|
|
<polygon fill="black" stroke="black" points="436.77,-232.25 446.77,-228.75 436.77,-225.25 436.77,-232.25"/>
|
|
<text text-anchor="middle" x="286.5" y="-235.55" font-family="Times,serif" font-size="14.00">height + 2016 >= timeoutheight AND lockinontimeout</text>
|
|
</g>
|
|
<!-- FAILED -->
|
|
<g id="node4" class="node">
|
|
<title>FAILED</title>
|
|
<path fill="#ffa0a0" stroke="black" stroke-width="2" d="M114,-129.75C114,-129.75 30,-129.75 30,-129.75 24,-129.75 18,-123.75 18,-117.75 18,-117.75 18,-105.75 18,-105.75 18,-99.75 24,-93.75 30,-93.75 30,-93.75 114,-93.75 114,-93.75 120,-93.75 126,-99.75 126,-105.75 126,-105.75 126,-117.75 126,-117.75 126,-123.75 120,-129.75 114,-129.75"/>
|
|
<text text-anchor="middle" x="72" y="-108.05" font-family="Arial" font-size="14.00">FAILED</text>
|
|
</g>
|
|
<!-- STARTED->FAILED -->
|
|
<g id="edge3" class="edge">
|
|
<title>STARTED->FAILED</title>
|
|
<path fill="none" stroke="black" d="M72,-210.28C72,-191.69 72,-161.99 72,-140.25"/>
|
|
<polygon fill="black" stroke="black" points="75.5,-140 72,-130 68.5,-140 75.5,-140"/>
|
|
<text text-anchor="middle" x="139" y="-181.55" font-family="Times,serif" font-size="14.00">height >= timeoutheight</text>
|
|
<text text-anchor="middle" x="139" y="-166.55" font-family="Times,serif" font-size="14.00">AND</text>
|
|
<text text-anchor="middle" x="139" y="-151.55" font-family="Times,serif" font-size="14.00">NOT lockinontimeout</text>
|
|
</g>
|
|
<!-- LOCKED_IN -->
|
|
<g id="node5" class="node">
|
|
<title>LOCKED_IN</title>
|
|
<path fill="#ffffa0" stroke="black" stroke-width="2" d="M543,-129.75C543,-129.75 459,-129.75 459,-129.75 453,-129.75 447,-123.75 447,-117.75 447,-117.75 447,-105.75 447,-105.75 447,-99.75 453,-93.75 459,-93.75 459,-93.75 543,-93.75 543,-93.75 549,-93.75 555,-99.75 555,-105.75 555,-105.75 555,-117.75 555,-117.75 555,-123.75 549,-129.75 543,-129.75"/>
|
|
<text text-anchor="middle" x="501" y="-108.05" font-family="Arial" font-size="14.00">LOCKED_IN</text>
|
|
</g>
|
|
<!-- STARTED->LOCKED_IN -->
|
|
<g id="edge6" class="edge">
|
|
<title>STARTED->LOCKED_IN</title>
|
|
<path fill="none" stroke="black" d="M126.15,-214.34C151.63,-207.94 182.41,-200.1 210,-192.75 281.79,-173.62 299.35,-167.41 371,-147.75 392.5,-141.85 416.03,-135.49 437.09,-129.83"/>
|
|
<polygon fill="black" stroke="black" points="438.14,-133.17 446.89,-127.19 436.32,-126.41 438.14,-133.17"/>
|
|
<text text-anchor="middle" x="434" y="-181.55" font-family="Times,serif" font-size="14.00">height < timeoutheight</text>
|
|
<text text-anchor="middle" x="434" y="-166.55" font-family="Times,serif" font-size="14.00">AND</text>
|
|
<text text-anchor="middle" x="434" y="-151.55" font-family="Times,serif" font-size="14.00">threshold reached</text>
|
|
</g>
|
|
<!-- MUST_SIGNAL->LOCKED_IN -->
|
|
<g id="edge5" class="edge">
|
|
<title>MUST_SIGNAL->LOCKED_IN</title>
|
|
<path fill="none" stroke="black" d="M501,-210.28C501,-191.69 501,-161.99 501,-140.25"/>
|
|
<polygon fill="black" stroke="black" points="504.5,-140 501,-130 497.5,-140 504.5,-140"/>
|
|
<text text-anchor="middle" x="520" y="-166.55" font-family="Times,serif" font-size="14.00">always</text>
|
|
</g>
|
|
<!-- FAILED->FAILED -->
|
|
<g id="edge11" class="edge">
|
|
<title>FAILED:sw->FAILED:nw</title>
|
|
<path fill="none" stroke="black" d="M18,-93.75C12,-83.25 0,-83.25 0,-111.75 0,-130.01 4.92,-136.57 10.04,-136.17"/>
|
|
<polygon fill="black" stroke="black" points="12.41,-138.75 18,-129.75 8.02,-133.3 12.41,-138.75"/>
|
|
</g>
|
|
<!-- FAILED->LOCKED_IN -->
|
|
<!-- ACTIVE -->
|
|
<g id="node6" class="node">
|
|
<title>ACTIVE</title>
|
|
<path fill="#a0ffa0" stroke="black" stroke-width="2" d="M543,-42.75C543,-42.75 459,-42.75 459,-42.75 453,-42.75 447,-36.75 447,-30.75 447,-30.75 447,-18.75 447,-18.75 447,-12.75 453,-6.75 459,-6.75 459,-6.75 543,-6.75 543,-6.75 549,-6.75 555,-12.75 555,-18.75 555,-18.75 555,-30.75 555,-30.75 555,-36.75 549,-42.75 543,-42.75"/>
|
|
<text text-anchor="middle" x="501" y="-21.05" font-family="Arial" font-size="14.00">ACTIVE</text>
|
|
</g>
|
|
<!-- LOCKED_IN->ACTIVE -->
|
|
<g id="edge4" class="edge">
|
|
<title>LOCKED_IN->ACTIVE</title>
|
|
<path fill="none" stroke="black" d="M501,-93.55C501,-81.91 501,-66.3 501,-52.99"/>
|
|
<polygon fill="black" stroke="black" points="504.5,-52.93 501,-42.93 497.5,-52.93 504.5,-52.93"/>
|
|
<text text-anchor="middle" x="520" y="-64.55" font-family="Times,serif" font-size="14.00">always</text>
|
|
</g>
|
|
<!-- ACTIVE->ACTIVE -->
|
|
<g id="edge10" class="edge">
|
|
<title>ACTIVE:sw->ACTIVE:nw</title>
|
|
<path fill="none" stroke="black" d="M447,-6.75C441,3.75 429,3.75 429,-24.75 429,-43.01 433.92,-49.57 439.04,-49.17"/>
|
|
<polygon fill="black" stroke="black" points="441.41,-51.75 447,-42.75 437.02,-46.3 441.41,-51.75"/>
|
|
</g>
|
|
</g>
|
|
</svg>
|