developers/zcash-zf-dag.html

761 lines
57 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Zcash zf DAG</title>
<!-- Pan/zoom SVGs -->
<script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
<link rel="stylesheet" href="zcash-dag.css">
<style>
@media (prefers-color-scheme: dark) {
body {
/* Material dark theme surface colour */
background-color: #121212;
}
}
</style>
</head>
<body>
<div id="dag"><svg width="1455pt" height="1734pt"
viewBox="0.00 0.00 1455.00 1733.50" 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 1729.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1729.5 1451,-1729.5 1451,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_0</title>
<polygon fill="none" stroke="#0000ff" points="0,0 0,-137 383,-137 383,0 0,0"/>
<text text-anchor="middle" x="191.5" y="-121.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Commit blocks to state using a separate task</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_2</title>
<polygon fill="none" stroke="#0000ff" points="403,-221 403,-414 1187,-414 1187,-221 403,-221"/>
<text text-anchor="middle" x="795" y="-398.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra Release Candidate</text>
</g>
<!-- ZcashFoundation/zebra#2654 -->
<g id="node1" class="node open">
<title>ZcashFoundation/zebra#2654</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2654" xlink:title="ZcashFoundation/zebra#2654&#10;Test if checkpoint&#10;verifier and state&#10;service are correctly&#10;reset on block commit&#10;errors" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-106 75,-106 75,-8 307,-8 307,-106"/>
<text text-anchor="middle" x="191" y="-90.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2654</text>
<text text-anchor="middle" x="191" y="-75.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test if checkpoint</text>
<text text-anchor="middle" x="191" y="-60.8" font-family="Times,serif" font-size="14.00" fill="#000000">verifier and state</text>
<text text-anchor="middle" x="191" y="-45.8" font-family="Times,serif" font-size="14.00" fill="#000000">service are correctly</text>
<text text-anchor="middle" x="191" y="-30.8" font-family="Times,serif" font-size="14.00" fill="#000000">reset on block commit</text>
<text text-anchor="middle" x="191" y="-15.8" font-family="Times,serif" font-size="14.00" fill="#000000">errors</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3050 -->
<g id="node2" class="node open">
<title>ZcashFoundation/zebra#3050</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3050" xlink:title="ZcashFoundation/zebra#3050&#10;Tag Zebra 1.0.0&#45;rc.0&#10;stable release candidate" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="911,-375.5 679,-375.5 679,-322.5 911,-322.5 911,-375.5"/>
<text text-anchor="middle" x="795" y="-360.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3050</text>
<text text-anchor="middle" x="795" y="-345.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tag Zebra 1.0.0&#45;rc.0</text>
<text text-anchor="middle" x="795" y="-330.3" font-family="Times,serif" font-size="14.00" fill="#000000">stable release candidate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5214 -->
<g id="node3" class="node open">
<title>ZcashFoundation/zebra#5214</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5214" xlink:title="ZcashFoundation/zebra#5214&#10;Task: Make a list of&#10;Zebra dependencies" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179,-375.5 947,-375.5 947,-322.5 1179,-322.5 1179,-375.5"/>
<text text-anchor="middle" x="1063" y="-360.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5214</text>
<text text-anchor="middle" x="1063" y="-345.3" font-family="Times,serif" font-size="14.00" fill="#000000">Task: Make a list of</text>
<text text-anchor="middle" x="1063" y="-330.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra dependencies</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#5214 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#5214</title>
<path fill="none" stroke="#000000" d="M911.38,-349C919.71,-349 928.14,-349 936.53,-349"/>
<polygon fill="#000000" stroke="#000000" points="936.74,-352.5001 946.74,-349 936.74,-345.5001 936.74,-352.5001"/>
</g>
<!-- ZcashFoundation/zebra#4967 -->
<g id="node6" class="node open">
<title>ZcashFoundation/zebra#4967</title>
<g id="a_node6"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4967" xlink:title="ZcashFoundation/zebra#4967&#10;feat(rpc): add&#10;getblockhash rpc method" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179,-546.5 947,-546.5 947,-542.5 943,-542.5 943,-538.5 947,-538.5 947,-501.5 943,-501.5 943,-497.5 947,-497.5 947,-493.5 1179,-493.5 1179,-546.5"/>
<polyline fill="none" stroke="#000000" points="947,-542.5 951,-542.5 951,-538.5 947,-538.5 "/>
<polyline fill="none" stroke="#000000" points="947,-501.5 951,-501.5 951,-497.5 947,-497.5 "/>
<text text-anchor="middle" x="1063" y="-531.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4967</text>
<text text-anchor="middle" x="1063" y="-516.3" font-family="Times,serif" font-size="14.00" fill="#000000">feat(rpc): add</text>
<text text-anchor="middle" x="1063" y="-501.3" font-family="Times,serif" font-size="14.00" fill="#000000">getblockhash rpc method</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4967 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4967</title>
<path fill="none" stroke="#000000" d="M817.9,-375.57C845.58,-406.12 894.97,-455.8 947,-485 949.54,-486.42 952.14,-487.8 954.79,-489.12"/>
<polygon fill="#000000" stroke="#000000" points="953.4296,-492.3477 963.97,-493.42 956.3989,-486.0086 953.4296,-492.3477"/>
</g>
<!-- ZcashFoundation/zebra#5357 -->
<g id="node7" class="node open">
<title>ZcashFoundation/zebra#5357</title>
<g id="a_node7"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/5357" xlink:title="ZcashFoundation/zebra#5357&#10;feat(rpc): introduce&#10;`getblocktemplate&#45;rpcs`&#10;feature" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179,-213 947,-213 947,-209 943,-209 943,-205 947,-205 947,-153 943,-153 943,-149 947,-149 947,-145 1179,-145 1179,-213"/>
<polyline fill="none" stroke="#000000" points="947,-209 951,-209 951,-205 947,-205 "/>
<polyline fill="none" stroke="#000000" points="947,-153 951,-153 951,-149 947,-149 "/>
<text text-anchor="middle" x="1063" y="-197.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5357</text>
<text text-anchor="middle" x="1063" y="-182.8" font-family="Times,serif" font-size="14.00" fill="#000000">feat(rpc): introduce</text>
<text text-anchor="middle" x="1063" y="-167.8" font-family="Times,serif" font-size="14.00" fill="#000000">`getblocktemplate&#45;rpcs`</text>
<text text-anchor="middle" x="1063" y="-152.8" font-family="Times,serif" font-size="14.00" fill="#000000">feature</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#5357 -->
<g id="edge4" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#5357</title>
<path fill="none" stroke="#000000" d="M819.18,-322.4C845.88,-294.41 891.45,-250.45 945.58,-218.13"/>
<polygon fill="#000000" stroke="#000000" points="947.452,-221.0903 954.34,-213.04 943.9352,-215.0378 947.452,-221.0903"/>
</g>
<!-- ZcashFoundation/zebra#4955 -->
<g id="node8" class="node open">
<title>ZcashFoundation/zebra#4955</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4955" xlink:title="ZcashFoundation/zebra#4955&#10;Make long&#45;running test&#10;names match workflow&#10;names" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179,-127 947,-127 947,-59 1179,-59 1179,-127"/>
<text text-anchor="middle" x="1063" y="-111.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4955</text>
<text text-anchor="middle" x="1063" y="-96.8" font-family="Times,serif" font-size="14.00" fill="#000000">Make long&#45;running test</text>
<text text-anchor="middle" x="1063" y="-81.8" font-family="Times,serif" font-size="14.00" fill="#000000">names match workflow</text>
<text text-anchor="middle" x="1063" y="-66.8" font-family="Times,serif" font-size="14.00" fill="#000000">names</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4955 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4955</title>
<path fill="none" stroke="#000000" d="M824.78,-322.09C850.26,-297.85 886.57,-260.26 911,-222 933.3,-187.08 917.1,-164.69 947,-136 947.94,-135.1 948.89,-134.22 949.87,-133.36"/>
<polygon fill="#000000" stroke="#000000" points="952.0863,-136.0692 957.71,-127.09 947.7143,-130.6024 952.0863,-136.0692"/>
</g>
<!-- ZcashFoundation/zebra#4992 -->
<g id="node9" class="node open">
<title>ZcashFoundation/zebra#4992</title>
<g id="a_node9"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4992" xlink:title="ZcashFoundation/zebra#4992&#10;Run cached state CI on&#10;testnet" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179,-475.5 947,-475.5 947,-422.5 1179,-422.5 1179,-475.5"/>
<text text-anchor="middle" x="1063" y="-460.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4992</text>
<text text-anchor="middle" x="1063" y="-445.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run cached state CI on</text>
<text text-anchor="middle" x="1063" y="-430.3" font-family="Times,serif" font-size="14.00" fill="#000000">testnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4992 -->
<g id="edge6" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4992</title>
<path fill="none" stroke="#000000" d="M847.92,-375.63C876.74,-389.46 913.3,-405.94 947,-418 948.05,-418.38 949.12,-418.75 950.18,-419.13"/>
<polygon fill="#000000" stroke="#000000" points="949.3459,-422.5423 959.94,-422.42 951.5819,-415.909 949.3459,-422.5423"/>
</g>
<!-- ZcashFoundation/zebra#4937 -->
<g id="node4" class="node open">
<title>ZcashFoundation/zebra#4937</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4937" xlink:title="ZcashFoundation/zebra#4937&#10;Epic: Commit blocks to&#10;state using a separate&#10;task" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="643,-383 411,-383 411,-315 643,-315 643,-383"/>
<text text-anchor="middle" x="527" y="-367.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4937</text>
<text text-anchor="middle" x="527" y="-352.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Commit blocks to</text>
<text text-anchor="middle" x="527" y="-337.8" font-family="Times,serif" font-size="14.00" fill="#000000">state using a separate</text>
<text text-anchor="middle" x="527" y="-322.8" font-family="Times,serif" font-size="14.00" fill="#000000">task</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4937&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#4937&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M643.38,-349C651.71,-349 660.14,-349 668.53,-349"/>
<polygon fill="#000000" stroke="#000000" points="668.74,-352.5001 678.74,-349 668.74,-345.5001 668.74,-352.5001"/>
</g>
<!-- ZcashFoundation/zebra#5189 -->
<g id="node10" class="node open">
<title>ZcashFoundation/zebra#5189</title>
<g id="a_node10"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5189" xlink:title="ZcashFoundation/zebra#5189&#10;Run some docker tests on&#10;smaller instances" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="911,-212.5 679,-212.5 679,-159.5 911,-159.5 911,-212.5"/>
<text text-anchor="middle" x="795" y="-197.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5189</text>
<text text-anchor="middle" x="795" y="-182.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run some docker tests on</text>
<text text-anchor="middle" x="795" y="-167.3" font-family="Times,serif" font-size="14.00" fill="#000000">smaller instances</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4937&#45;&gt;ZcashFoundation/zebra#5189 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#4937&#45;&gt;ZcashFoundation/zebra#5189</title>
<path fill="none" stroke="#000000" d="M632.34,-314.96C636.11,-312.2 639.69,-309.22 643,-306 671.34,-278.48 650.66,-249.85 677.04,-219.89"/>
<polygon fill="#000000" stroke="#000000" points="679.7013,-222.1805 684.35,-212.66 674.7789,-217.2036 679.7013,-222.1805"/>
</g>
<!-- ZcashFoundation/zebra#5125 -->
<g id="node5" class="node open">
<title>ZcashFoundation/zebra#5125</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5125" xlink:title="ZcashFoundation/zebra#5125&#10;Avoid temporary failures&#10;verifying the first non&#45;&#10;finalized block" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="643,-297 411,-297 411,-229 643,-229 643,-297"/>
<text text-anchor="middle" x="527" y="-281.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5125</text>
<text text-anchor="middle" x="527" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000">Avoid temporary failures</text>
<text text-anchor="middle" x="527" y="-251.8" font-family="Times,serif" font-size="14.00" fill="#000000">verifying the first non&#45;</text>
<text text-anchor="middle" x="527" y="-236.8" font-family="Times,serif" font-size="14.00" fill="#000000">finalized block</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5257 -->
<g id="node11" class="node open">
<title>ZcashFoundation/zebra#5257</title>
<g id="a_node11"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/5257" xlink:title="ZcashFoundation/zebra#5257&#10;change(state): Write non&#45;&#10;finalized blocks to the&#10;state in a separate&#10;thread, to avoid network&#10;and RPC hangs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="643,-211 411,-211 411,-207 407,-207 407,-203 411,-203 411,-121 407,-121 407,-117 411,-117 411,-113 643,-113 643,-211"/>
<polyline fill="none" stroke="#000000" points="411,-207 415,-207 415,-203 411,-203 "/>
<polyline fill="none" stroke="#000000" points="411,-121 415,-121 415,-117 411,-117 "/>
<text text-anchor="middle" x="527" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5257</text>
<text text-anchor="middle" x="527" y="-180.8" font-family="Times,serif" font-size="14.00" fill="#000000">change(state): Write non&#45;</text>
<text text-anchor="middle" x="527" y="-165.8" font-family="Times,serif" font-size="14.00" fill="#000000">finalized blocks to the</text>
<text text-anchor="middle" x="527" y="-150.8" font-family="Times,serif" font-size="14.00" fill="#000000">state in a separate</text>
<text text-anchor="middle" x="527" y="-135.8" font-family="Times,serif" font-size="14.00" fill="#000000">thread, to avoid network</text>
<text text-anchor="middle" x="527" y="-120.8" font-family="Times,serif" font-size="14.00" fill="#000000">and RPC hangs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5257&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge8" class="edge">
<title>ZcashFoundation/zebra#5257&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M633.53,-211.06C636.76,-213.01 639.92,-214.99 643,-217 687.04,-245.79 731.85,-286.37 761.29,-314.91"/>
<polygon fill="#000000" stroke="#000000" points="759.2121,-317.7732 768.81,-322.26 764.105,-312.7672 759.2121,-317.7732"/>
</g>
<!-- ZcashFoundation/zebra#5297 -->
<g id="node12" class="node open">
<title>ZcashFoundation/zebra#5297</title>
<g id="a_node12"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5297" xlink:title="ZcashFoundation/zebra#5297&#10;Add metrics for chain&#10;fork work and lengths" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="911,-141.5 679,-141.5 679,-88.5 911,-88.5 911,-141.5"/>
<text text-anchor="middle" x="795" y="-126.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5297</text>
<text text-anchor="middle" x="795" y="-111.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add metrics for chain</text>
<text text-anchor="middle" x="795" y="-96.3" font-family="Times,serif" font-size="14.00" fill="#000000">fork work and lengths</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5257&#45;&gt;ZcashFoundation/zebra#5297 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#5257&#45;&gt;ZcashFoundation/zebra#5297</title>
<path fill="none" stroke="#000000" d="M643.38,-141.59C651.81,-140.11 660.33,-138.62 668.81,-137.13"/>
<polygon fill="#000000" stroke="#000000" points="669.4942,-140.5635 678.74,-135.39 668.286,-133.6686 669.4942,-140.5635"/>
</g>
<!-- ZcashFoundation/zebra#5316 -->
<g id="node13" class="node open">
<title>ZcashFoundation/zebra#5316</title>
<g id="a_node13"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5316" xlink:title="ZcashFoundation/zebra#5316&#10;Only run the&#10;`lightwalletd` full sync&#10;on the `main` branch" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-366 75,-366 75,-298 307,-298 307,-366"/>
<text text-anchor="middle" x="191" y="-350.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5316</text>
<text text-anchor="middle" x="191" y="-335.8" font-family="Times,serif" font-size="14.00" fill="#000000">Only run the</text>
<text text-anchor="middle" x="191" y="-320.8" font-family="Times,serif" font-size="14.00" fill="#000000">`lightwalletd` full sync</text>
<text text-anchor="middle" x="191" y="-305.8" font-family="Times,serif" font-size="14.00" fill="#000000">on the `main` branch</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5015 -->
<g id="node14" class="node open">
<title>ZcashFoundation/zebra#5015</title>
<g id="a_node14"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5015" xlink:title="ZcashFoundation/zebra#5015&#10;Get transactions from the&#10;non&#45;finalized state in&#10;the send transactions&#10;test" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-500.5 75,-500.5 75,-417.5 307,-417.5 307,-500.5"/>
<text text-anchor="middle" x="191" y="-485.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5015</text>
<text text-anchor="middle" x="191" y="-470.3" font-family="Times,serif" font-size="14.00" fill="#000000">Get transactions from the</text>
<text text-anchor="middle" x="191" y="-455.3" font-family="Times,serif" font-size="14.00" fill="#000000">non&#45;finalized state in</text>
<text text-anchor="middle" x="191" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">the send transactions</text>
<text text-anchor="middle" x="191" y="-425.3" font-family="Times,serif" font-size="14.00" fill="#000000">test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2375 -->
<g id="node15" class="node open">
<title>ZcashFoundation/zebra#2375</title>
<g id="a_node15"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2375" xlink:title="ZcashFoundation/zebra#2375&#10;Allow different `zebra&#45;&#10;network` apps to use&#10;different user agents" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-604 75,-604 75,-536 307,-536 307,-604"/>
<text text-anchor="middle" x="191" y="-588.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2375</text>
<text text-anchor="middle" x="191" y="-573.8" font-family="Times,serif" font-size="14.00" fill="#000000">Allow different `zebra&#45;</text>
<text text-anchor="middle" x="191" y="-558.8" font-family="Times,serif" font-size="14.00" fill="#000000">network` apps to use</text>
<text text-anchor="middle" x="191" y="-543.8" font-family="Times,serif" font-size="14.00" fill="#000000">different user agents</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#794 -->
<g id="node16" class="node closed">
<title>ZcashFoundation/zebra#794</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/794" xlink:title="ZcashFoundation/zebra#794&#10;Make sure custom user&#10;agents conform to BIP&#45;14" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="638.5,-596.5 415.5,-596.5 415.5,-543.5 638.5,-543.5 638.5,-596.5"/>
<text text-anchor="middle" x="527" y="-581.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#794</text>
<text text-anchor="middle" x="527" y="-566.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make sure custom user</text>
<text text-anchor="middle" x="527" y="-551.3" font-family="Times,serif" font-size="14.00" fill="#000000">agents conform to BIP&#45;14</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794</title>
<path fill="none" stroke="#000000" d="M307.1,-570C338.77,-570 373.16,-570 405.14,-570"/>
<polygon fill="#000000" stroke="#000000" points="405.43,-573.5001 415.43,-570 405.43,-566.5001 405.43,-573.5001"/>
</g>
<!-- ZcashFoundation/zebra#2631 -->
<g id="node17" class="node open">
<title>ZcashFoundation/zebra#2631</title>
<g id="a_node17"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2631" xlink:title="ZcashFoundation/zebra#2631&#10;Send committed spent&#10;OutPoints &amp; nullifiers to&#10;the mempool for rejection" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="911,-901 679,-901 679,-833 911,-833 911,-901"/>
<text text-anchor="middle" x="795" y="-885.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2631</text>
<text text-anchor="middle" x="795" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send committed spent</text>
<text text-anchor="middle" x="795" y="-855.8" font-family="Times,serif" font-size="14.00" fill="#000000">OutPoints &amp; nullifiers to</text>
<text text-anchor="middle" x="795" y="-840.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool for rejection</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5235 -->
<g id="node18" class="node open">
<title>ZcashFoundation/zebra#5235</title>
<g id="a_node18"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5235" xlink:title="ZcashFoundation/zebra#5235&#10;Add support for&#10;`getblocktemplate` RPC&#10;call" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179,-862 947,-862 947,-794 1179,-794 1179,-862"/>
<text text-anchor="middle" x="1063" y="-846.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5235</text>
<text text-anchor="middle" x="1063" y="-831.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="1063" y="-816.8" font-family="Times,serif" font-size="14.00" fill="#000000">`getblocktemplate` RPC</text>
<text text-anchor="middle" x="1063" y="-801.8" font-family="Times,serif" font-size="14.00" fill="#000000">call</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5235 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5235</title>
<path fill="none" stroke="#000000" d="M911.38,-850.06C919.81,-848.84 928.33,-847.6 936.81,-846.36"/>
<polygon fill="#000000" stroke="#000000" points="937.3458,-849.819 946.74,-844.92 936.3412,-842.8915 937.3458,-849.819"/>
</g>
<!-- ZcashFoundation/zebra#5236 -->
<g id="node19" class="node open">
<title>ZcashFoundation/zebra#5236</title>
<g id="a_node19"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5236" xlink:title="ZcashFoundation/zebra#5236&#10;Add support for&#10;`submitblock` RPC call" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179,-933.5 947,-933.5 947,-880.5 1179,-880.5 1179,-933.5"/>
<text text-anchor="middle" x="1063" y="-918.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5236</text>
<text text-anchor="middle" x="1063" y="-903.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="1063" y="-888.3" font-family="Times,serif" font-size="14.00" fill="#000000">`submitblock` RPC call</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5236 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5236</title>
<path fill="none" stroke="#000000" d="M911.38,-884.37C919.81,-885.63 928.33,-886.9 936.81,-888.17"/>
<polygon fill="#000000" stroke="#000000" points="936.3333,-891.6375 946.74,-889.65 937.3652,-884.714 936.3333,-891.6375"/>
</g>
<!-- ZcashFoundation/zebra#5336 -->
<g id="node20" class="node open">
<title>ZcashFoundation/zebra#5336</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5336" xlink:title="ZcashFoundation/zebra#5336&#10;Relay mempool&#10;transactions based on the&#10;ZIP&#45;317 fee rules" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1447,-941 1215,-941 1215,-873 1447,-873 1447,-941"/>
<text text-anchor="middle" x="1331" y="-925.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5336</text>
<text text-anchor="middle" x="1331" y="-910.8" font-family="Times,serif" font-size="14.00" fill="#000000">Relay mempool</text>
<text text-anchor="middle" x="1331" y="-895.8" font-family="Times,serif" font-size="14.00" fill="#000000">transactions based on the</text>
<text text-anchor="middle" x="1331" y="-880.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;317 fee rules</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5235&#45;&gt;ZcashFoundation/zebra#5336 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#5235&#45;&gt;ZcashFoundation/zebra#5336</title>
<path fill="none" stroke="#000000" d="M1178.6,-862.08C1187.5,-864.71 1196.6,-867.38 1205.6,-870.04"/>
<polygon fill="#000000" stroke="#000000" points="1204.8194,-873.4583 1215.4,-872.91 1206.7868,-866.7405 1204.8194,-873.4583"/>
</g>
<!-- ZcashFoundation/zebra#3247 -->
<g id="node21" class="node open">
<title>ZcashFoundation/zebra#3247</title>
<g id="a_node21"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3247" xlink:title="ZcashFoundation/zebra#3247&#10;Tracking: Questions for&#10;Network Audit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-675.5 75,-675.5 75,-622.5 307,-622.5 307,-675.5"/>
<text text-anchor="middle" x="191" y="-660.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3247</text>
<text text-anchor="middle" x="191" y="-645.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: Questions for</text>
<text text-anchor="middle" x="191" y="-630.3" font-family="Times,serif" font-size="14.00" fill="#000000">Network Audit</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3383 -->
<g id="node22" class="node open">
<title>ZcashFoundation/zebra#3383</title>
<g id="a_node22"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3383" xlink:title="ZcashFoundation/zebra#3383&#10;Document `zebrad&#10;download` command" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-746.5 75,-746.5 75,-693.5 307,-693.5 307,-746.5"/>
<text text-anchor="middle" x="191" y="-731.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3383</text>
<text text-anchor="middle" x="191" y="-716.3" font-family="Times,serif" font-size="14.00" fill="#000000">Document `zebrad</text>
<text text-anchor="middle" x="191" y="-701.3" font-family="Times,serif" font-size="14.00" fill="#000000">download` command</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5335 -->
<g id="node23" class="node open">
<title>ZcashFoundation/zebra#5335</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5335" xlink:title="ZcashFoundation/zebra#5335&#10;Evict transactions from&#10;the mempool based on the&#10;ZIP&#45;317 fee rules" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1179,-1020 947,-1020 947,-952 1179,-952 1179,-1020"/>
<text text-anchor="middle" x="1063" y="-1004.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5335</text>
<text text-anchor="middle" x="1063" y="-989.8" font-family="Times,serif" font-size="14.00" fill="#000000">Evict transactions from</text>
<text text-anchor="middle" x="1063" y="-974.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool based on the</text>
<text text-anchor="middle" x="1063" y="-959.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;317 fee rules</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5335&#45;&gt;ZcashFoundation/zebra#5336 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#5335&#45;&gt;ZcashFoundation/zebra#5336</title>
<path fill="none" stroke="#000000" d="M1178.6,-951.92C1187.5,-949.29 1196.6,-946.62 1205.6,-943.96"/>
<polygon fill="#000000" stroke="#000000" points="1206.7868,-947.2595 1215.4,-941.09 1204.8194,-940.5417 1206.7868,-947.2595"/>
</g>
<!-- ZcashFoundation/zebra#1615 -->
<g id="node24" class="node open">
<title>ZcashFoundation/zebra#1615</title>
<g id="a_node24"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1615" xlink:title="ZcashFoundation/zebra#1615&#10;Zebra release candidate&#10;binaries should be linked&#10;from ZFND website" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-833 75,-833 75,-765 307,-765 307,-833"/>
<text text-anchor="middle" x="191" y="-817.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1615</text>
<text text-anchor="middle" x="191" y="-802.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra release candidate</text>
<text text-anchor="middle" x="191" y="-787.8" font-family="Times,serif" font-size="14.00" fill="#000000">binaries should be linked</text>
<text text-anchor="middle" x="191" y="-772.8" font-family="Times,serif" font-size="14.00" fill="#000000">from ZFND website</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5360 -->
<g id="node25" class="node open">
<title>ZcashFoundation/zebra#5360</title>
<g id="a_node25"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/5360" xlink:title="ZcashFoundation/zebra#5360&#10;change(consensus): Update&#10;mainnet and testnet&#10;checkpoints" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-213 75,-213 75,-209 71,-209 71,-205 75,-205 75,-153 71,-153 71,-149 75,-149 75,-145 307,-145 307,-213"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="75,-209 79,-209 79,-205 75,-205 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="75,-153 79,-153 79,-149 75,-149 "/>
<text text-anchor="middle" x="191" y="-197.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5360</text>
<text text-anchor="middle" x="191" y="-182.8" font-family="Times,serif" font-size="14.00" fill="#000000">change(consensus): Update</text>
<text text-anchor="middle" x="191" y="-167.8" font-family="Times,serif" font-size="14.00" fill="#000000">mainnet and testnet</text>
<text text-anchor="middle" x="191" y="-152.8" font-family="Times,serif" font-size="14.00" fill="#000000">checkpoints</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5360&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#5360&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M285.6,-213.2C321.26,-230.64 358.97,-255.42 383,-289 410.14,-326.92 367.02,-362.33 403,-392 497.32,-469.77 650.77,-418.13 734.98,-379.78"/>
<polygon fill="#000000" stroke="#000000" points="736.5555,-382.9074 744.15,-375.52 733.6062,-376.559 736.5555,-382.9074"/>
</g>
<!-- ZcashFoundation/zebra#5360&#45;&gt;ZcashFoundation/zebra#5257 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#5360&#45;&gt;ZcashFoundation/zebra#5257</title>
<path fill="none" stroke="#000000" d="M307.1,-173.13C337.27,-171.6 369.91,-169.95 400.57,-168.4"/>
<polygon fill="#000000" stroke="#000000" points="401.0827,-171.8784 410.89,-167.87 400.7236,-164.8876 401.0827,-171.8784"/>
</g>
<!-- ZcashFoundation/zebra#4412 -->
<g id="node26" class="node open">
<title>ZcashFoundation/zebra#4412</title>
<g id="a_node26"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4412" xlink:title="ZcashFoundation/zebra#4412&#10;Automate pinning CI&#10;dependencies to specific&#10;commit hashes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-919 75,-919 75,-851 307,-851 307,-919"/>
<text text-anchor="middle" x="191" y="-903.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4412</text>
<text text-anchor="middle" x="191" y="-888.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automate pinning CI</text>
<text text-anchor="middle" x="191" y="-873.8" font-family="Times,serif" font-size="14.00" fill="#000000">dependencies to specific</text>
<text text-anchor="middle" x="191" y="-858.8" font-family="Times,serif" font-size="14.00" fill="#000000">commit hashes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4672 -->
<g id="node27" class="node open">
<title>ZcashFoundation/zebra#4672</title>
<g id="a_node27"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4672" xlink:title="ZcashFoundation/zebra#4672&#10;Add support for Orchard&#10;proof batch verification" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-990.5 75,-990.5 75,-937.5 307,-937.5 307,-990.5"/>
<text text-anchor="middle" x="191" y="-975.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4672</text>
<text text-anchor="middle" x="191" y="-960.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for Orchard</text>
<text text-anchor="middle" x="191" y="-945.3" font-family="Times,serif" font-size="14.00" fill="#000000">proof batch verification</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4841 -->
<g id="node28" class="node closed">
<title>ZcashFoundation/zebra#4841</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4841" xlink:title="ZcashFoundation/zebra#4841&#10;Improve note commitment&#10;tree append performance" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="643,-1126.5 411,-1126.5 411,-1073.5 643,-1073.5 643,-1126.5"/>
<text text-anchor="middle" x="527" y="-1111.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4841</text>
<text text-anchor="middle" x="527" y="-1096.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve note commitment</text>
<text text-anchor="middle" x="527" y="-1081.3" font-family="Times,serif" font-size="14.00" fill="#000000">tree append performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4612 -->
<g id="node29" class="node closed">
<title>ZcashFoundation/zebra#4612</title>
<g id="a_node29"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4612" xlink:title="ZcashFoundation/zebra#4612&#10;ci: Wait for lightwalletd&#10;image rebuild if it has&#10;changed" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="643,-1279 411,-1279 411,-1211 643,-1211 643,-1279"/>
<text text-anchor="middle" x="527" y="-1263.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4612</text>
<text text-anchor="middle" x="527" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000">ci: Wait for lightwalletd</text>
<text text-anchor="middle" x="527" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000">image rebuild if it has</text>
<text text-anchor="middle" x="527" y="-1218.8" font-family="Times,serif" font-size="14.00" fill="#000000">changed</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5153 -->
<g id="node30" class="node open">
<title>ZcashFoundation/zebra#5153</title>
<g id="a_node30"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5153" xlink:title="ZcashFoundation/zebra#5153&#10;Tag Google Cloud&#10;instances with the name&#10;of the test or workflow" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-1365 75,-1365 75,-1297 307,-1297 307,-1365"/>
<text text-anchor="middle" x="191" y="-1349.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5153</text>
<text text-anchor="middle" x="191" y="-1334.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tag Google Cloud</text>
<text text-anchor="middle" x="191" y="-1319.8" font-family="Times,serif" font-size="14.00" fill="#000000">instances with the name</text>
<text text-anchor="middle" x="191" y="-1304.8" font-family="Times,serif" font-size="14.00" fill="#000000">of the test or workflow</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5155 -->
<g id="node31" class="node closed">
<title>ZcashFoundation/zebra#5155</title>
<g id="a_node31"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5155" xlink:title="ZcashFoundation/zebra#5155&#10;Decide if we want to&#10;create cached states more&#10;often" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="643,-1365 411,-1365 411,-1297 643,-1297 643,-1365"/>
<text text-anchor="middle" x="527" y="-1349.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5155</text>
<text text-anchor="middle" x="527" y="-1334.8" font-family="Times,serif" font-size="14.00" fill="#000000">Decide if we want to</text>
<text text-anchor="middle" x="527" y="-1319.8" font-family="Times,serif" font-size="14.00" fill="#000000">create cached states more</text>
<text text-anchor="middle" x="527" y="-1304.8" font-family="Times,serif" font-size="14.00" fill="#000000">often</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5153&#45;&gt;ZcashFoundation/zebra#5155 -->
<g id="edge17" class="edge">
<title>ZcashFoundation/zebra#5153&#45;&gt;ZcashFoundation/zebra#5155</title>
<path fill="none" stroke="#000000" d="M307.1,-1331C337.27,-1331 369.91,-1331 400.57,-1331"/>
<polygon fill="#000000" stroke="#000000" points="400.89,-1334.5001 410.89,-1331 400.89,-1327.5001 400.89,-1334.5001"/>
</g>
<!-- ZcashFoundation/zebra#5188 -->
<g id="node32" class="node closed">
<title>ZcashFoundation/zebra#5188</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5188" xlink:title="ZcashFoundation/zebra#5188&#10;Reduce continuous&#10;deployment instance group&#10;size to 1" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="643,-1451 411,-1451 411,-1383 643,-1383 643,-1451"/>
<text text-anchor="middle" x="527" y="-1435.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5188</text>
<text text-anchor="middle" x="527" y="-1420.8" font-family="Times,serif" font-size="14.00" fill="#000000">Reduce continuous</text>
<text text-anchor="middle" x="527" y="-1405.8" font-family="Times,serif" font-size="14.00" fill="#000000">deployment instance group</text>
<text text-anchor="middle" x="527" y="-1390.8" font-family="Times,serif" font-size="14.00" fill="#000000">size to 1</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5153&#45;&gt;ZcashFoundation/zebra#5188 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#5153&#45;&gt;ZcashFoundation/zebra#5188</title>
<path fill="none" stroke="#000000" d="M307.01,-1356.4C332.13,-1362.3 358.51,-1368.6 383,-1375 389.43,-1376.7 396.02,-1378.4 402.66,-1380.2"/>
<polygon fill="#000000" stroke="#000000" points="401.8386,-1383.6042 412.41,-1382.9 403.7068,-1376.8581 401.8386,-1383.6042"/>
</g>
<!-- ZcashFoundation/zebra#4794 -->
<g id="node33" class="node open">
<title>ZcashFoundation/zebra#4794</title>
<g id="a_node33"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4794" xlink:title="ZcashFoundation/zebra#4794&#10;Revert note commitment&#10;and history trees when&#10;forking non&#45;finalized&#10;chains" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-1466.5 75,-1466.5 75,-1383.5 307,-1383.5 307,-1466.5"/>
<text text-anchor="middle" x="191" y="-1451.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4794</text>
<text text-anchor="middle" x="191" y="-1436.3" font-family="Times,serif" font-size="14.00" fill="#000000">Revert note commitment</text>
<text text-anchor="middle" x="191" y="-1421.3" font-family="Times,serif" font-size="14.00" fill="#000000">and history trees when</text>
<text text-anchor="middle" x="191" y="-1406.3" font-family="Times,serif" font-size="14.00" fill="#000000">forking non&#45;finalized</text>
<text text-anchor="middle" x="191" y="-1391.3" font-family="Times,serif" font-size="14.00" fill="#000000">chains</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3096 -->
<g id="node34" class="node open">
<title>ZcashFoundation/zebra#3096</title>
<g id="a_node34"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3096" xlink:title="ZcashFoundation/zebra#3096&#10;Epic: Zebra Release&#10;Candidate" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-1537.5 75,-1537.5 75,-1484.5 307,-1484.5 307,-1537.5"/>
<text text-anchor="middle" x="191" y="-1522.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3096</text>
<text text-anchor="middle" x="191" y="-1507.3" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra Release</text>
<text text-anchor="middle" x="191" y="-1492.3" font-family="Times,serif" font-size="14.00" fill="#000000">Candidate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4774 -->
<g id="node35" class="node open">
<title>ZcashFoundation/zebra#4774</title>
<g id="a_node35"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4774" xlink:title="ZcashFoundation/zebra#4774&#10;Add an NU5 block test&#10;vector that contains many&#10;shielded Orchard&#10;transactions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-1192.5 75,-1192.5 75,-1109.5 307,-1109.5 307,-1192.5"/>
<text text-anchor="middle" x="191" y="-1177.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4774</text>
<text text-anchor="middle" x="191" y="-1162.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="191" y="-1147.3" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="191" y="-1132.3" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Orchard</text>
<text text-anchor="middle" x="191" y="-1117.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge19" class="edge">
<title>ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M307.1,-1133.4C337.4,-1128.8 370.19,-1123.8 400.97,-1119.1"/>
<polygon fill="#000000" stroke="#000000" points="401.5257,-1122.5558 410.89,-1117.6 400.4791,-1115.6345 401.5257,-1122.5558"/>
</g>
<!-- ZcashFoundation/zebra#4775 -->
<g id="node36" class="node open">
<title>ZcashFoundation/zebra#4775</title>
<g id="a_node36"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4775" xlink:title="ZcashFoundation/zebra#4775&#10;Add an NU5 block test&#10;vector that contains many&#10;shielded Sapling&#10;transactions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-1091.5 75,-1091.5 75,-1008.5 307,-1008.5 307,-1091.5"/>
<text text-anchor="middle" x="191" y="-1076.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4775</text>
<text text-anchor="middle" x="191" y="-1061.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="191" y="-1046.3" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="191" y="-1031.3" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Sapling</text>
<text text-anchor="middle" x="191" y="-1016.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M307.1,-1067.3C337.4,-1071.8 370.19,-1076.7 400.97,-1081.2"/>
<polygon fill="#000000" stroke="#000000" points="400.4791,-1084.6655 410.89,-1082.7 401.5257,-1077.7442 400.4791,-1084.6655"/>
</g>
<!-- ZcashFoundation/zebra#5305 -->
<g id="node37" class="node open">
<title>ZcashFoundation/zebra#5305</title>
<g id="a_node37"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5305" xlink:title="ZcashFoundation/zebra#5305&#10;Add a `getblocktemplate&#45;&#10;rpcs` feature to `zebrad`&#10;and `zebra&#45;rpc`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="911,-744 679,-744 679,-676 911,-676 911,-744"/>
<text text-anchor="middle" x="795" y="-728.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5305</text>
<text text-anchor="middle" x="795" y="-713.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add a `getblocktemplate&#45;</text>
<text text-anchor="middle" x="795" y="-698.8" font-family="Times,serif" font-size="14.00" fill="#000000">rpcs` feature to `zebrad`</text>
<text text-anchor="middle" x="795" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000">and `zebra&#45;rpc`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#4967 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#4967</title>
<path fill="none" stroke="#000000" d="M820.4,-675.75C847.95,-640.89 895,-587.62 947,-556 949.84,-554.27 952.76,-552.62 955.76,-551.05"/>
<polygon fill="#000000" stroke="#000000" points="957.5012,-554.0941 964.93,-546.54 954.4119,-547.8127 957.5012,-554.0941"/>
</g>
<!-- ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5235 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5235</title>
<path fill="none" stroke="#000000" d="M860.52,-744.18C887.08,-757.54 918.22,-772.6 947,-785 950.94,-786.7 954.97,-788.39 959.05,-790.07"/>
<polygon fill="#000000" stroke="#000000" points="958.0773,-793.4521 968.66,-793.96 960.7039,-786.9635 958.0773,-793.4521"/>
</g>
<!-- ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5236 -->
<g id="edge23" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5236</title>
<path fill="none" stroke="#000000" d="M832.38,-744.18C855.79,-766.19 886.13,-795.86 911,-824 928.43,-843.71 925.42,-855.95 947,-871 949.16,-872.5 951.38,-873.95 953.65,-875.33"/>
<polygon fill="#000000" stroke="#000000" points="952.2346,-878.5487 962.67,-880.38 955.6543,-872.4409 952.2346,-878.5487"/>
</g>
<!-- ZcashFoundation/zebra#5268 -->
<g id="node38" class="node open">
<title>ZcashFoundation/zebra#5268</title>
<g id="a_node38"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5268" xlink:title="ZcashFoundation/zebra#5268&#10;Add support for&#10;`getblockhash` RPC call" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179,-704.5 947,-704.5 947,-651.5 1179,-651.5 1179,-704.5"/>
<text text-anchor="middle" x="1063" y="-689.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5268</text>
<text text-anchor="middle" x="1063" y="-674.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="1063" y="-659.3" font-family="Times,serif" font-size="14.00" fill="#000000">`getblockhash` RPC call</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5268 -->
<g id="edge24" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5268</title>
<path fill="none" stroke="#000000" d="M911.38,-696.1C919.71,-695.11 928.14,-694.1 936.53,-693.1"/>
<polygon fill="#000000" stroke="#000000" points="937.2259,-696.5418 946.74,-691.88 936.3953,-689.5913 937.2259,-696.5418"/>
</g>
<!-- ZcashFoundation/zebra#5302 -->
<g id="node39" class="node open">
<title>ZcashFoundation/zebra#5302</title>
<g id="a_node39"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5302" xlink:title="ZcashFoundation/zebra#5302&#10;Add support for&#10;`getblocksubsidy` RPC&#10;call" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179,-633 947,-633 947,-565 1179,-565 1179,-633"/>
<text text-anchor="middle" x="1063" y="-617.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5302</text>
<text text-anchor="middle" x="1063" y="-602.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="1063" y="-587.8" font-family="Times,serif" font-size="14.00" fill="#000000">`getblocksubsidy` RPC</text>
<text text-anchor="middle" x="1063" y="-572.8" font-family="Times,serif" font-size="14.00" fill="#000000">call</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5302 -->
<g id="edge25" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5302</title>
<path fill="none" stroke="#000000" d="M870.05,-675.99C894.47,-665.17 921.78,-653.33 947,-643 952.05,-640.93 957.23,-638.84 962.47,-636.76"/>
<polygon fill="#000000" stroke="#000000" points="963.9385,-639.943 971.95,-633.01 961.3636,-633.4338 963.9385,-639.943"/>
</g>
<!-- ZcashFoundation/zebra#5303 -->
<g id="node40" class="node open">
<title>ZcashFoundation/zebra#5303</title>
<g id="a_node40"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5303" xlink:title="ZcashFoundation/zebra#5303&#10;Add support for&#10;`getblockcount` RPC call" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179,-775.5 947,-775.5 947,-722.5 1179,-722.5 1179,-775.5"/>
<text text-anchor="middle" x="1063" y="-760.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5303</text>
<text text-anchor="middle" x="1063" y="-745.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="1063" y="-730.3" font-family="Times,serif" font-size="14.00" fill="#000000">`getblockcount` RPC call</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5303 -->
<g id="edge26" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5303</title>
<path fill="none" stroke="#000000" d="M911.38,-726.94C919.81,-728.16 928.33,-729.4 936.81,-730.64"/>
<polygon fill="#000000" stroke="#000000" points="936.3412,-734.1085 946.74,-732.08 937.3458,-727.181 936.3412,-734.1085"/>
</g>
<!-- ZcashFoundation/zebra#4882 -->
<g id="node41" class="node open">
<title>ZcashFoundation/zebra#4882</title>
<g id="a_node41"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4882" xlink:title="ZcashFoundation/zebra#4882&#10;Add zcash&#45;lightwalletd /&#10;Build images to required&#10;jobs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-1279 75,-1279 75,-1211 307,-1211 307,-1279"/>
<text text-anchor="middle" x="191" y="-1263.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4882</text>
<text text-anchor="middle" x="191" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add zcash&#45;lightwalletd /</text>
<text text-anchor="middle" x="191" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000">Build images to required</text>
<text text-anchor="middle" x="191" y="-1218.8" font-family="Times,serif" font-size="14.00" fill="#000000">jobs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4882&#45;&gt;ZcashFoundation/zebra#4612 -->
<g id="edge27" class="edge">
<title>ZcashFoundation/zebra#4882&#45;&gt;ZcashFoundation/zebra#4612</title>
<path fill="none" stroke="#000000" d="M307.1,-1245C337.27,-1245 369.91,-1245 400.57,-1245"/>
<polygon fill="#000000" stroke="#000000" points="400.89,-1248.5001 410.89,-1245 400.89,-1241.5001 400.89,-1248.5001"/>
</g>
<!-- ZcashFoundation/zebra#5199 -->
<g id="node42" class="node open">
<title>ZcashFoundation/zebra#5199</title>
<g id="a_node42"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5199" xlink:title="ZcashFoundation/zebra#5199&#10;Consider using `nextest`&#10;to run tests faster and&#10;reduce Google Cloud costs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="643,-95 411,-95 411,-27 643,-27 643,-95"/>
<text text-anchor="middle" x="527" y="-79.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5199</text>
<text text-anchor="middle" x="527" y="-64.8" font-family="Times,serif" font-size="14.00" fill="#000000">Consider using `nextest`</text>
<text text-anchor="middle" x="527" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">to run tests faster and</text>
<text text-anchor="middle" x="527" y="-34.8" font-family="Times,serif" font-size="14.00" fill="#000000">reduce Google Cloud costs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5199&#45;&gt;ZcashFoundation/zebra#5189 -->
<g id="edge28" class="edge">
<title>ZcashFoundation/zebra#5199&#45;&gt;ZcashFoundation/zebra#5189</title>
<path fill="none" stroke="#000000" d="M629.35,-95.06C634.1,-97.83 638.68,-100.81 643,-104 664.17,-119.63 657.36,-136.03 679,-151 680.65,-152.14 682.35,-153.25 684.07,-154.32"/>
<polygon fill="#000000" stroke="#000000" points="682.5304,-157.4712 692.95,-159.39 686.0011,-151.3922 682.5304,-157.4712"/>
</g>
<!-- ZcashFoundation/zebra#4554 -->
<g id="node43" class="node open">
<title>ZcashFoundation/zebra#4554</title>
<g id="a_node43"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4554" xlink:title="ZcashFoundation/zebra#4554&#10;benchmarks: surface&#10;zebrad mainnet sync time&#10;in CI" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-1624 75,-1624 75,-1556 307,-1556 307,-1624"/>
<text text-anchor="middle" x="191" y="-1608.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4554</text>
<text text-anchor="middle" x="191" y="-1593.8" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks: surface</text>
<text text-anchor="middle" x="191" y="-1578.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad mainnet sync time</text>
<text text-anchor="middle" x="191" y="-1563.8" font-family="Times,serif" font-size="14.00" fill="#000000">in CI</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4545 -->
<g id="node44" class="node open">
<title>ZcashFoundation/zebra#4545</title>
<g id="a_node44"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4545" xlink:title="ZcashFoundation/zebra#4545&#10;Start disconnecting from&#10;outdated peers before&#10;network upgrade&#10;activation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-1725.5 75,-1725.5 75,-1642.5 307,-1642.5 307,-1725.5"/>
<text text-anchor="middle" x="191" y="-1710.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4545</text>
<text text-anchor="middle" x="191" y="-1695.3" font-family="Times,serif" font-size="14.00" fill="#000000">Start disconnecting from</text>
<text text-anchor="middle" x="191" y="-1680.3" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers before</text>
<text text-anchor="middle" x="191" y="-1665.3" font-family="Times,serif" font-size="14.00" fill="#000000">network upgrade</text>
<text text-anchor="middle" x="191" y="-1650.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4226 -->
<g id="node45" class="node closed">
<title>ZcashFoundation/zebra#4226</title>
<g id="a_node45"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4226" xlink:title="ZcashFoundation/zebra#4226&#10;Prefer faster peers, but&#10;if all peers are slow,&#10;still connect to them" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="643,-1718 411,-1718 411,-1650 643,-1650 643,-1718"/>
<text text-anchor="middle" x="527" y="-1702.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4226</text>
<text text-anchor="middle" x="527" y="-1687.8" font-family="Times,serif" font-size="14.00" fill="#000000">Prefer faster peers, but</text>
<text text-anchor="middle" x="527" y="-1672.8" font-family="Times,serif" font-size="14.00" fill="#000000">if all peers are slow,</text>
<text text-anchor="middle" x="527" y="-1657.8" font-family="Times,serif" font-size="14.00" fill="#000000">still connect to them</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226 -->
<g id="edge29" class="edge">
<title>ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226</title>
<path fill="none" stroke="#000000" d="M307.1,-1684C337.27,-1684 369.91,-1684 400.57,-1684"/>
<polygon fill="#000000" stroke="#000000" points="400.89,-1687.5001 410.89,-1684 400.89,-1680.5001 400.89,-1687.5001"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>