developers/zcash-zf-dag.html

750 lines
56 KiB
HTML
Raw Normal View History

<!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="1187pt" height="2072pt"
viewBox="0.00 0.00 1187.00 2071.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 2067.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2067.5 1183,-2067.5 1183,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_2</title>
<polygon fill="none" stroke="#0000ff" points="67,-485 67,-664 651,-664 651,-485 67,-485"/>
<text text-anchor="middle" x="359" y="-648.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra Release Candidate</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_0</title>
<polygon fill="none" stroke="#0000ff" points="0,-340 0,-477 383,-477 383,-340 0,-340"/>
<text text-anchor="middle" x="191.5" y="-461.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Commit blocks to state using a separate task</text>
</g>
<!-- ZcashFoundation/zebra#3050 -->
<g id="node1" class="node open">
<title>ZcashFoundation/zebra#3050</title>
<g id="a_node1"><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="643,-604.5 411,-604.5 411,-551.5 643,-551.5 643,-604.5"/>
<text text-anchor="middle" x="527" y="-589.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3050</text>
<text text-anchor="middle" x="527" y="-574.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="527" y="-559.3" font-family="Times,serif" font-size="14.00" fill="#000000">stable release candidate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4967 -->
<g id="node5" class="node open">
<title>ZcashFoundation/zebra#4967</title>
<g id="a_node5"><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="911,-604.5 679,-604.5 679,-600.5 675,-600.5 675,-596.5 679,-596.5 679,-559.5 675,-559.5 675,-555.5 679,-555.5 679,-551.5 911,-551.5 911,-604.5"/>
<polyline fill="none" stroke="#000000" points="679,-600.5 683,-600.5 683,-596.5 679,-596.5 "/>
<polyline fill="none" stroke="#000000" points="679,-559.5 683,-559.5 683,-555.5 679,-555.5 "/>
<text text-anchor="middle" x="795" y="-589.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4967</text>
<text text-anchor="middle" x="795" y="-574.3" font-family="Times,serif" font-size="14.00" fill="#000000">feat(rpc): add</text>
<text text-anchor="middle" x="795" y="-559.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="M643.38,-578C651.71,-578 660.14,-578 668.53,-578"/>
<polygon fill="#000000" stroke="#000000" points="668.74,-581.5001 678.74,-578 668.74,-574.5001 668.74,-581.5001"/>
</g>
<!-- ZcashFoundation/zebra#4955 -->
<g id="node6" class="node open">
<title>ZcashFoundation/zebra#4955</title>
<g id="a_node6"><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="911,-691 679,-691 679,-623 911,-623 911,-691"/>
<text text-anchor="middle" x="795" y="-675.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4955</text>
<text text-anchor="middle" x="795" y="-660.8" font-family="Times,serif" font-size="14.00" fill="#000000">Make long&#45;running test</text>
<text text-anchor="middle" x="795" y="-645.8" font-family="Times,serif" font-size="14.00" fill="#000000">names match workflow</text>
<text text-anchor="middle" x="795" y="-630.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="edge4" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4955</title>
<path fill="none" stroke="#000000" d="M616.99,-604.53C633.92,-609.52 651.91,-614.82 669.7,-620.06"/>
<polygon fill="#000000" stroke="#000000" points="668.9681,-623.4933 679.55,-622.97 670.9514,-616.7801 668.9681,-623.4933"/>
</g>
<!-- ZcashFoundation/zebra#4992 -->
<g id="node7" class="node open">
<title>ZcashFoundation/zebra#4992</title>
<g id="a_node7"><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="911,-762.5 679,-762.5 679,-709.5 911,-709.5 911,-762.5"/>
<text text-anchor="middle" x="795" y="-747.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4992</text>
<text text-anchor="middle" x="795" y="-732.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run cached state CI on</text>
<text text-anchor="middle" x="795" y="-717.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="edge5" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4992</title>
<path fill="none" stroke="#000000" d="M568.41,-604.61C593.4,-621.49 625.26,-644.51 651,-668 664.96,-680.74 663.16,-689.7 679,-700 681.57,-701.67 684.22,-703.27 686.94,-704.79"/>
<polygon fill="#000000" stroke="#000000" points="685.3268,-707.896 695.81,-709.43 688.5715,-701.6934 685.3268,-707.896"/>
</g>
<!-- ZcashFoundation/zebra#4937 -->
<g id="node2" class="node open">
<title>ZcashFoundation/zebra#4937</title>
<g id="a_node2"><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="307,-633 75,-633 75,-565 307,-565 307,-633"/>
<text text-anchor="middle" x="191" y="-617.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4937</text>
<text text-anchor="middle" x="191" y="-602.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Commit blocks to</text>
<text text-anchor="middle" x="191" y="-587.8" font-family="Times,serif" font-size="14.00" fill="#000000">state using a separate</text>
<text text-anchor="middle" x="191" y="-572.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="edge1" class="edge">
<title>ZcashFoundation/zebra#4937&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M307.1,-591.74C337.27,-589.86 369.91,-587.82 400.57,-585.9"/>
<polygon fill="#000000" stroke="#000000" points="401.1258,-589.3723 410.89,-585.26 400.6925,-582.3858 401.1258,-589.3723"/>
</g>
<!-- ZcashFoundation/zebra#5189 -->
<g id="node8" class="node open">
<title>ZcashFoundation/zebra#5189</title>
<g id="a_node8"><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="643,-729.5 411,-729.5 411,-676.5 643,-676.5 643,-729.5"/>
<text text-anchor="middle" x="527" y="-714.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5189</text>
<text text-anchor="middle" x="527" y="-699.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run some docker tests on</text>
<text text-anchor="middle" x="527" y="-684.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="edge6" class="edge">
<title>ZcashFoundation/zebra#4937&#45;&gt;ZcashFoundation/zebra#5189</title>
<path fill="none" stroke="#000000" d="M298.63,-633.01C334.36,-644.24 374.37,-656.73 411,-668 416.87,-669.81 422.91,-671.66 429.01,-673.52"/>
<polygon fill="#000000" stroke="#000000" points="428.0344,-676.8815 438.62,-676.44 430.0695,-670.1838 428.0344,-676.8815"/>
</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" stroke-width="2" points="307,-546.5 75,-546.5 75,-493.5 307,-493.5 307,-546.5"/>
<text text-anchor="middle" x="191" y="-531.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5214</text>
<text text-anchor="middle" x="191" y="-516.3" font-family="Times,serif" font-size="14.00" fill="#000000">Task: Make a list of</text>
<text text-anchor="middle" x="191" y="-501.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra dependencies</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2654 -->
<g id="node4" class="node open">
<title>ZcashFoundation/zebra#2654</title>
<g id="a_node4"><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,-446 75,-446 75,-348 307,-348 307,-446"/>
<text text-anchor="middle" x="191" y="-430.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2654</text>
<text text-anchor="middle" x="191" y="-415.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test if checkpoint</text>
<text text-anchor="middle" x="191" y="-400.8" font-family="Times,serif" font-size="14.00" fill="#000000">verifier and state</text>
<text text-anchor="middle" x="191" y="-385.8" font-family="Times,serif" font-size="14.00" fill="#000000">service are correctly</text>
<text text-anchor="middle" x="191" y="-370.8" font-family="Times,serif" font-size="14.00" fill="#000000">reset on block commit</text>
<text text-anchor="middle" x="191" y="-355.8" font-family="Times,serif" font-size="14.00" fill="#000000">errors</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2654&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#2654&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M307.1,-443.77C332.53,-455.12 359.01,-467.81 383,-481 417.95,-500.21 455.24,-525.48 483.11,-545.4"/>
<polygon fill="#000000" stroke="#000000" points="481.2908,-548.4031 491.45,-551.41 485.3833,-542.724 481.2908,-548.4031"/>
</g>
<!-- ZcashFoundation/zebra#5257 -->
<g id="node9" class="node open">
<title>ZcashFoundation/zebra#5257</title>
<g id="a_node9"><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" stroke-width="2" points="307,-301 75,-301 75,-297 71,-297 71,-293 75,-293 75,-211 71,-211 71,-207 75,-207 75,-203 307,-203 307,-301"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="75,-297 79,-297 79,-293 75,-293 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="75,-211 79,-211 79,-207 75,-207 "/>
<text text-anchor="middle" x="191" y="-285.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5257</text>
<text text-anchor="middle" x="191" y="-270.8" font-family="Times,serif" font-size="14.00" fill="#000000">change(state): Write non&#45;</text>
<text text-anchor="middle" x="191" y="-255.8" font-family="Times,serif" font-size="14.00" fill="#000000">finalized blocks to the</text>
<text text-anchor="middle" x="191" y="-240.8" font-family="Times,serif" font-size="14.00" fill="#000000">state in a separate</text>
<text text-anchor="middle" x="191" y="-225.8" font-family="Times,serif" font-size="14.00" fill="#000000">thread, to avoid network</text>
<text text-anchor="middle" x="191" y="-210.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="edge7" class="edge">
<title>ZcashFoundation/zebra#5257&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M307.4,-282.92C335.56,-295.33 363.2,-312.48 383,-336 416.6,-375.92 386.51,-403.93 411,-450 430.33,-486.36 462.29,-520.53 487.77,-544.41"/>
<polygon fill="#000000" stroke="#000000" points="485.7223,-547.2822 495.45,-551.48 490.4633,-542.1321 485.7223,-547.2822"/>
</g>
<!-- ZcashFoundation/zebra#5297 -->
<g id="node10" class="node open">
<title>ZcashFoundation/zebra#5297</title>
<g id="a_node10"><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="643,-240.5 411,-240.5 411,-187.5 643,-187.5 643,-240.5"/>
<text text-anchor="middle" x="527" y="-225.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5297</text>
<text text-anchor="middle" x="527" y="-210.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add metrics for chain</text>
<text text-anchor="middle" x="527" y="-195.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="edge8" class="edge">
<title>ZcashFoundation/zebra#5257&#45;&gt;ZcashFoundation/zebra#5297</title>
<path fill="none" stroke="#000000" d="M307.1,-238.87C337.27,-235.46 369.91,-231.77 400.57,-228.3"/>
<polygon fill="#000000" stroke="#000000" points="401.348,-231.7343 410.89,-227.13 400.5593,-224.7789 401.348,-231.7343"/>
</g>
<!-- ZcashFoundation/zebra#4894 -->
<g id="node11" class="node open">
<title>ZcashFoundation/zebra#4894</title>
<g id="a_node11"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4894" xlink:title="ZcashFoundation/zebra#4894&#10;Make tests wait until&#10;lightwalletd full sync&#10;goes all the way to the&#10;tip" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-169.5 75,-169.5 75,-86.5 307,-86.5 307,-169.5"/>
<text text-anchor="middle" x="191" y="-154.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4894</text>
<text text-anchor="middle" x="191" y="-139.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make tests wait until</text>
<text text-anchor="middle" x="191" y="-124.3" font-family="Times,serif" font-size="14.00" fill="#000000">lightwalletd full sync</text>
<text text-anchor="middle" x="191" y="-109.3" font-family="Times,serif" font-size="14.00" fill="#000000">goes all the way to the</text>
<text text-anchor="middle" x="191" y="-94.3" font-family="Times,serif" font-size="14.00" fill="#000000">tip</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4894&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#4894&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M307.02,-145.16C335.87,-154.93 363.96,-170.18 383,-194 418.73,-238.7 387.53,-397.81 411,-450 427.79,-487.34 459.66,-521.26 485.76,-544.78"/>
<polygon fill="#000000" stroke="#000000" points="483.488,-547.443 493.3,-551.44 488.1221,-542.1966 483.488,-547.443"/>
</g>
<!-- ZcashFoundation/zebra#5316 -->
<g id="node12" class="node open">
<title>ZcashFoundation/zebra#5316</title>
<g id="a_node12"><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" points="643,-68 411,-68 411,0 643,0 643,-68"/>
<text text-anchor="middle" x="527" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5316</text>
<text text-anchor="middle" x="527" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Only run the</text>
<text text-anchor="middle" x="527" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">`lightwalletd` full sync</text>
<text text-anchor="middle" x="527" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">on the `main` branch</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4894&#45;&gt;ZcashFoundation/zebra#5316 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#4894&#45;&gt;ZcashFoundation/zebra#5316</title>
<path fill="none" stroke="#000000" d="M307.1,-95.519C337.4,-87.043 370.19,-77.869 400.97,-69.257"/>
<polygon fill="#000000" stroke="#000000" points="402.2026,-72.5466 410.89,-66.482 400.3168,-65.8054 402.2026,-72.5466"/>
</g>
<!-- ZcashFoundation/zebra#5015 -->
<g id="node13" class="node open">
<title>ZcashFoundation/zebra#5015</title>
<g id="a_node13"><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" points="643,-169.5 411,-169.5 411,-86.5 643,-86.5 643,-169.5"/>
<text text-anchor="middle" x="527" y="-154.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5015</text>
<text text-anchor="middle" x="527" y="-139.3" font-family="Times,serif" font-size="14.00" fill="#000000">Get transactions from the</text>
<text text-anchor="middle" x="527" y="-124.3" font-family="Times,serif" font-size="14.00" fill="#000000">non&#45;finalized state in</text>
<text text-anchor="middle" x="527" y="-109.3" font-family="Times,serif" font-size="14.00" fill="#000000">the send transactions</text>
<text text-anchor="middle" x="527" y="-94.3" font-family="Times,serif" font-size="14.00" fill="#000000">test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4894&#45;&gt;ZcashFoundation/zebra#5015 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#4894&#45;&gt;ZcashFoundation/zebra#5015</title>
<path fill="none" stroke="#000000" d="M307.1,-128C337.27,-128 369.91,-128 400.57,-128"/>
<polygon fill="#000000" stroke="#000000" points="400.89,-131.5001 410.89,-128 400.89,-124.5001 400.89,-131.5001"/>
</g>
<!-- ZcashFoundation/zebra#2375 -->
<g id="node14" class="node open">
<title>ZcashFoundation/zebra#2375</title>
<g id="a_node14"><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,-826 75,-826 75,-758 307,-758 307,-826"/>
<text text-anchor="middle" x="191" y="-810.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2375</text>
<text text-anchor="middle" x="191" y="-795.8" font-family="Times,serif" font-size="14.00" fill="#000000">Allow different `zebra&#45;</text>
<text text-anchor="middle" x="191" y="-780.8" font-family="Times,serif" font-size="14.00" fill="#000000">network` apps to use</text>
<text text-anchor="middle" x="191" y="-765.8" font-family="Times,serif" font-size="14.00" fill="#000000">different user agents</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#794 -->
<g id="node15" class="node closed">
<title>ZcashFoundation/zebra#794</title>
<g id="a_node15"><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,-818.5 415.5,-818.5 415.5,-765.5 638.5,-765.5 638.5,-818.5"/>
<text text-anchor="middle" x="527" y="-803.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#794</text>
<text text-anchor="middle" x="527" y="-788.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make sure custom user</text>
<text text-anchor="middle" x="527" y="-773.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="edge12" class="edge">
<title>ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794</title>
<path fill="none" stroke="#000000" d="M307.1,-792C338.77,-792 373.16,-792 405.14,-792"/>
<polygon fill="#000000" stroke="#000000" points="405.43,-795.5001 415.43,-792 405.43,-788.5001 405.43,-795.5001"/>
</g>
<!-- ZcashFoundation/zebra#2631 -->
<g id="node16" class="node open">
<title>ZcashFoundation/zebra#2631</title>
<g id="a_node16"><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="643,-327 411,-327 411,-259 643,-259 643,-327"/>
<text text-anchor="middle" x="527" y="-311.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2631</text>
<text text-anchor="middle" x="527" y="-296.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send committed spent</text>
<text text-anchor="middle" x="527" y="-281.8" font-family="Times,serif" font-size="14.00" fill="#000000">OutPoints &amp; nullifiers to</text>
<text text-anchor="middle" x="527" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool for rejection</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5235 -->
<g id="node17" class="node open">
<title>ZcashFoundation/zebra#5235</title>
<g id="a_node17"><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="911,-147 679,-147 679,-79 911,-79 911,-147"/>
<text text-anchor="middle" x="795" y="-131.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5235</text>
<text text-anchor="middle" x="795" y="-116.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="795" y="-101.8" font-family="Times,serif" font-size="14.00" fill="#000000">`getblocktemplate` RPC</text>
<text text-anchor="middle" x="795" y="-86.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="edge13" class="edge">
<title>ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5235</title>
<path fill="none" stroke="#000000" d="M640,-258.83C643.92,-255.83 647.61,-252.56 651,-249 680.77,-217.75 649.45,-187.46 679,-156 679.66,-155.3 680.33,-154.61 681.02,-153.93"/>
<polygon fill="#000000" stroke="#000000" points="683.6019,-156.3189 688.77,-147.07 678.9622,-151.0773 683.6019,-156.3189"/>
</g>
<!-- ZcashFoundation/zebra#5236 -->
<g id="node18" class="node open">
<title>ZcashFoundation/zebra#5236</title>
<g id="a_node18"><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="911,-304.5 679,-304.5 679,-251.5 911,-251.5 911,-304.5"/>
<text text-anchor="middle" x="795" y="-289.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5236</text>
<text text-anchor="middle" x="795" y="-274.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="795" y="-259.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="edge14" class="edge">
<title>ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5236</title>
<path fill="none" stroke="#000000" d="M643.38,-286.49C651.71,-286.02 660.14,-285.55 668.53,-285.08"/>
<polygon fill="#000000" stroke="#000000" points="668.9507,-288.5621 678.74,-284.51 668.5604,-281.5729 668.9507,-288.5621"/>
</g>
<!-- ZcashFoundation/zebra#5336 -->
<g id="node19" class="node open">
<title>ZcashFoundation/zebra#5336</title>
<g id="a_node19"><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="1179,-190 947,-190 947,-122 1179,-122 1179,-190"/>
<text text-anchor="middle" x="1063" y="-174.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5336</text>
<text text-anchor="middle" x="1063" y="-159.8" font-family="Times,serif" font-size="14.00" fill="#000000">Relay mempool</text>
<text text-anchor="middle" x="1063" y="-144.8" font-family="Times,serif" font-size="14.00" fill="#000000">transactions based on the</text>
<text text-anchor="middle" x="1063" y="-129.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="edge15" class="edge">
<title>ZcashFoundation/zebra#5235&#45;&gt;ZcashFoundation/zebra#5336</title>
<path fill="none" stroke="#000000" d="M911.38,-131.67C919.81,-133.02 928.33,-134.39 936.81,-135.75"/>
<polygon fill="#000000" stroke="#000000" points="936.3105,-139.2146 946.74,-137.35 937.4241,-132.3037 936.3105,-139.2146"/>
</g>
<!-- ZcashFoundation/zebra#3247 -->
<g id="node20" class="node open">
<title>ZcashFoundation/zebra#3247</title>
<g id="a_node20"><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,-897.5 75,-897.5 75,-844.5 307,-844.5 307,-897.5"/>
<text text-anchor="middle" x="191" y="-882.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3247</text>
<text text-anchor="middle" x="191" y="-867.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: Questions for</text>
<text text-anchor="middle" x="191" y="-852.3" font-family="Times,serif" font-size="14.00" fill="#000000">Network Audit</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3383 -->
<g id="node21" class="node open">
<title>ZcashFoundation/zebra#3383</title>
<g id="a_node21"><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,-968.5 75,-968.5 75,-915.5 307,-915.5 307,-968.5"/>
<text text-anchor="middle" x="191" y="-953.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3383</text>
<text text-anchor="middle" x="191" y="-938.3" font-family="Times,serif" font-size="14.00" fill="#000000">Document `zebrad</text>
<text text-anchor="middle" x="191" y="-923.3" font-family="Times,serif" font-size="14.00" fill="#000000">download` command</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5335 -->
<g id="node22" class="node open">
<title>ZcashFoundation/zebra#5335</title>
<g id="a_node22"><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="911,-233 679,-233 679,-165 911,-165 911,-233"/>
<text text-anchor="middle" x="795" y="-217.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5335</text>
<text text-anchor="middle" x="795" y="-202.8" font-family="Times,serif" font-size="14.00" fill="#000000">Evict transactions from</text>
<text text-anchor="middle" x="795" y="-187.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool based on the</text>
<text text-anchor="middle" x="795" y="-172.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="edge16" class="edge">
<title>ZcashFoundation/zebra#5335&#45;&gt;ZcashFoundation/zebra#5336</title>
<path fill="none" stroke="#000000" d="M911.38,-180.33C919.81,-178.98 928.33,-177.61 936.81,-176.25"/>
<polygon fill="#000000" stroke="#000000" points="937.4241,-179.6963 946.74,-174.65 936.3105,-172.7854 937.4241,-179.6963"/>
</g>
<!-- ZcashFoundation/zebra#1615 -->
<g id="node23" class="node open">
<title>ZcashFoundation/zebra#1615</title>
<g id="a_node23"><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,-1055 75,-1055 75,-987 307,-987 307,-1055"/>
<text text-anchor="middle" x="191" y="-1039.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1615</text>
<text text-anchor="middle" x="191" y="-1024.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra release candidate</text>
<text text-anchor="middle" x="191" y="-1009.8" font-family="Times,serif" font-size="14.00" fill="#000000">binaries should be linked</text>
<text text-anchor="middle" x="191" y="-994.8" font-family="Times,serif" font-size="14.00" fill="#000000">from ZFND website</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4412 -->
<g id="node24" class="node open">
<title>ZcashFoundation/zebra#4412</title>
<g id="a_node24"><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,-1141 75,-1141 75,-1073 307,-1073 307,-1141"/>
<text text-anchor="middle" x="191" y="-1125.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4412</text>
<text text-anchor="middle" x="191" y="-1110.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automate pinning CI</text>
<text text-anchor="middle" x="191" y="-1095.8" font-family="Times,serif" font-size="14.00" fill="#000000">dependencies to specific</text>
<text text-anchor="middle" x="191" y="-1080.8" font-family="Times,serif" font-size="14.00" fill="#000000">commit hashes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4672 -->
<g id="node25" class="node open">
<title>ZcashFoundation/zebra#4672</title>
<g id="a_node25"><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,-1212.5 75,-1212.5 75,-1159.5 307,-1159.5 307,-1212.5"/>
<text text-anchor="middle" x="191" y="-1197.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4672</text>
<text text-anchor="middle" x="191" y="-1182.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for Orchard</text>
<text text-anchor="middle" x="191" y="-1167.3" font-family="Times,serif" font-size="14.00" fill="#000000">proof batch verification</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4841 -->
<g id="node26" class="node closed">
<title>ZcashFoundation/zebra#4841</title>
<g id="a_node26"><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,-1348.5 411,-1348.5 411,-1295.5 643,-1295.5 643,-1348.5"/>
<text text-anchor="middle" x="527" y="-1333.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4841</text>
<text text-anchor="middle" x="527" y="-1318.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve note commitment</text>
<text text-anchor="middle" x="527" y="-1303.3" font-family="Times,serif" font-size="14.00" fill="#000000">tree append performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4612 -->
<g id="node27" class="node closed">
<title>ZcashFoundation/zebra#4612</title>
<g id="a_node27"><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,-1501 411,-1501 411,-1433 643,-1433 643,-1501"/>
<text text-anchor="middle" x="527" y="-1485.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4612</text>
<text text-anchor="middle" x="527" y="-1470.8" font-family="Times,serif" font-size="14.00" fill="#000000">ci: Wait for lightwalletd</text>
<text text-anchor="middle" x="527" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000">image rebuild if it has</text>
<text text-anchor="middle" x="527" y="-1440.8" font-family="Times,serif" font-size="14.00" fill="#000000">changed</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5164 -->
<g id="node28" class="node open">
<title>ZcashFoundation/zebra#5164</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/5164" xlink:title="ZcashFoundation/zebra#5164&#10;fix(test): Wait for&#10;zebrad and lightwalletd&#10;to reach the tip in&#10;tests, to improve test&#10;coverage" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="307,-1617 75,-1617 75,-1613 71,-1613 71,-1609 75,-1609 75,-1527 71,-1527 71,-1523 75,-1523 75,-1519 307,-1519 307,-1617"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="75,-1613 79,-1613 79,-1609 75,-1609 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="75,-1527 79,-1527 79,-1523 75,-1523 "/>
<text text-anchor="middle" x="191" y="-1601.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5164</text>
<text text-anchor="middle" x="191" y="-1586.8" font-family="Times,serif" font-size="14.00" fill="#000000">fix(test): Wait for</text>
<text text-anchor="middle" x="191" y="-1571.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad and lightwalletd</text>
<text text-anchor="middle" x="191" y="-1556.8" font-family="Times,serif" font-size="14.00" fill="#000000">to reach the tip in</text>
<text text-anchor="middle" x="191" y="-1541.8" font-family="Times,serif" font-size="14.00" fill="#000000">tests, to improve test</text>
<text text-anchor="middle" x="191" y="-1526.8" font-family="Times,serif" font-size="14.00" fill="#000000">coverage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5153 -->
<g id="node29" class="node open">
<title>ZcashFoundation/zebra#5153</title>
<g id="a_node29"><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,-1703 75,-1703 75,-1635 307,-1635 307,-1703"/>
<text text-anchor="middle" x="191" y="-1687.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5153</text>
<text text-anchor="middle" x="191" y="-1672.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tag Google Cloud</text>
<text text-anchor="middle" x="191" y="-1657.8" font-family="Times,serif" font-size="14.00" fill="#000000">instances with the name</text>
<text text-anchor="middle" x="191" y="-1642.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="node30" class="node closed">
<title>ZcashFoundation/zebra#5155</title>
<g id="a_node30"><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,-1746 411,-1746 411,-1678 643,-1678 643,-1746"/>
<text text-anchor="middle" x="527" y="-1730.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5155</text>
<text text-anchor="middle" x="527" y="-1715.8" font-family="Times,serif" font-size="14.00" fill="#000000">Decide if we want to</text>
<text text-anchor="middle" x="527" y="-1700.8" font-family="Times,serif" font-size="14.00" fill="#000000">create cached states more</text>
<text text-anchor="middle" x="527" y="-1685.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,-1683.9C337.27,-1687.7 369.91,-1691.9 400.57,-1695.8"/>
<polygon fill="#000000" stroke="#000000" points="400.5309,-1699.3227 410.89,-1697.1 401.4059,-1692.3775 400.5309,-1699.3227"/>
</g>
<!-- ZcashFoundation/zebra#5188 -->
<g id="node31" class="node closed">
<title>ZcashFoundation/zebra#5188</title>
<g id="a_node31"><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,-1660 411,-1660 411,-1592 643,-1592 643,-1660"/>
<text text-anchor="middle" x="527" y="-1644.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5188</text>
<text text-anchor="middle" x="527" y="-1629.8" font-family="Times,serif" font-size="14.00" fill="#000000">Reduce continuous</text>
<text text-anchor="middle" x="527" y="-1614.8" font-family="Times,serif" font-size="14.00" fill="#000000">deployment instance group</text>
<text text-anchor="middle" x="527" y="-1599.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.1,-1654.1C337.27,-1650.3 369.91,-1646.1 400.57,-1642.2"/>
<polygon fill="#000000" stroke="#000000" points="401.4059,-1645.6225 410.89,-1640.9 400.5309,-1638.6773 401.4059,-1645.6225"/>
</g>
<!-- ZcashFoundation/zebra#4794 -->
<g id="node32" class="node open">
<title>ZcashFoundation/zebra#4794</title>
<g id="a_node32"><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,-1804.5 75,-1804.5 75,-1721.5 307,-1721.5 307,-1804.5"/>
<text text-anchor="middle" x="191" y="-1789.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4794</text>
<text text-anchor="middle" x="191" y="-1774.3" font-family="Times,serif" font-size="14.00" fill="#000000">Revert note commitment</text>
<text text-anchor="middle" x="191" y="-1759.3" font-family="Times,serif" font-size="14.00" fill="#000000">and history trees when</text>
<text text-anchor="middle" x="191" y="-1744.3" font-family="Times,serif" font-size="14.00" fill="#000000">forking non&#45;finalized</text>
<text text-anchor="middle" x="191" y="-1729.3" font-family="Times,serif" font-size="14.00" fill="#000000">chains</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3096 -->
<g id="node33" class="node open">
<title>ZcashFoundation/zebra#3096</title>
<g id="a_node33"><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,-1875.5 75,-1875.5 75,-1822.5 307,-1822.5 307,-1875.5"/>
<text text-anchor="middle" x="191" y="-1860.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3096</text>
<text text-anchor="middle" x="191" y="-1845.3" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra Release</text>
<text text-anchor="middle" x="191" y="-1830.3" font-family="Times,serif" font-size="14.00" fill="#000000">Candidate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4774 -->
<g id="node34" class="node open">
<title>ZcashFoundation/zebra#4774</title>
<g id="a_node34"><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,-1414.5 75,-1414.5 75,-1331.5 307,-1331.5 307,-1414.5"/>
<text text-anchor="middle" x="191" y="-1399.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4774</text>
<text text-anchor="middle" x="191" y="-1384.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="191" y="-1369.3" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="191" y="-1354.3" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Orchard</text>
<text text-anchor="middle" x="191" y="-1339.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,-1355.4C337.4,-1350.8 370.19,-1345.8 400.97,-1341.1"/>
<polygon fill="#000000" stroke="#000000" points="401.5257,-1344.5558 410.89,-1339.6 400.4791,-1337.6345 401.5257,-1344.5558"/>
</g>
<!-- ZcashFoundation/zebra#4775 -->
<g id="node35" class="node open">
<title>ZcashFoundation/zebra#4775</title>
<g id="a_node35"><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,-1313.5 75,-1313.5 75,-1230.5 307,-1230.5 307,-1313.5"/>
<text text-anchor="middle" x="191" y="-1298.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4775</text>
<text text-anchor="middle" x="191" y="-1283.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="191" y="-1268.3" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="191" y="-1253.3" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Sapling</text>
<text text-anchor="middle" x="191" y="-1238.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,-1289.3C337.4,-1293.8 370.19,-1298.7 400.97,-1303.2"/>
<polygon fill="#000000" stroke="#000000" points="400.4791,-1306.6655 410.89,-1304.7 401.5257,-1299.7442 400.4791,-1306.6655"/>
</g>
<!-- ZcashFoundation/zebra#5305 -->
<g id="node36" class="node open">
<title>ZcashFoundation/zebra#5305</title>
<g id="a_node36"><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="643,-441 411,-441 411,-373 643,-373 643,-441"/>
<text text-anchor="middle" x="527" y="-425.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5305</text>
<text text-anchor="middle" x="527" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add a `getblocktemplate&#45;</text>
<text text-anchor="middle" x="527" y="-395.8" font-family="Times,serif" font-size="14.00" fill="#000000">rpcs` feature to `zebrad`</text>
<text text-anchor="middle" x="527" y="-380.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="M600.72,-441.05C618.81,-451.92 636.98,-465.29 651,-481 671.13,-503.56 656.27,-523.07 679,-543 679.98,-543.86 680.98,-544.7 682,-545.51"/>
<polygon fill="#000000" stroke="#000000" points="679.99,-548.3756 690.15,-551.38 684.0811,-542.6956 679.99,-548.3756"/>
</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="M610.77,-372.9C626.24,-363.1 640.74,-350.92 651,-336 696.88,-269.3 627.77,-218.7 679,-156 679.4,-155.51 679.81,-155.02 680.23,-154.54"/>
<polygon fill="#000000" stroke="#000000" points="682.936,-156.7804 687.46,-147.2 677.949,-151.8681 682.936,-156.7804"/>
</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="M590.53,-372.98C610.27,-361.79 631.87,-348.89 651,-336 664.12,-327.16 664.99,-321.36 679,-314 682.52,-312.15 686.16,-310.38 689.86,-308.68"/>
<polygon fill="#000000" stroke="#000000" points="691.4387,-311.8104 699.22,-304.62 688.6531,-305.3885 691.4387,-311.8104"/>
</g>
<!-- ZcashFoundation/zebra#5268 -->
<g id="node37" class="node open">
<title>ZcashFoundation/zebra#5268</title>
<g id="a_node37"><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="911,-533.5 679,-533.5 679,-480.5 911,-480.5 911,-533.5"/>
<text text-anchor="middle" x="795" y="-518.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5268</text>
<text text-anchor="middle" x="795" y="-503.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="795" y="-488.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="M603.75,-441.03C627.66,-451.17 654.25,-461.97 679,-471 684.79,-473.11 690.76,-475.21 696.81,-477.27"/>
<polygon fill="#000000" stroke="#000000" points="695.7561,-480.6081 706.35,-480.47 697.9822,-473.9715 695.7561,-480.6081"/>
</g>
<!-- ZcashFoundation/zebra#5302 -->
<g id="node38" class="node open">
<title>ZcashFoundation/zebra#5302</title>
<g id="a_node38"><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="911,-462 679,-462 679,-394 911,-394 911,-462"/>
<text text-anchor="middle" x="795" y="-446.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5302</text>
<text text-anchor="middle" x="795" y="-431.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="795" y="-416.8" font-family="Times,serif" font-size="14.00" fill="#000000">`getblocksubsidy` RPC</text>
<text text-anchor="middle" x="795" y="-401.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="M643.38,-416.12C651.71,-416.77 660.14,-417.43 668.53,-418.09"/>
<polygon fill="#000000" stroke="#000000" points="668.4971,-421.5981 678.74,-418.89 669.044,-414.6195 668.4971,-421.5981"/>
</g>
<!-- ZcashFoundation/zebra#5303 -->
<g id="node39" class="node open">
<title>ZcashFoundation/zebra#5303</title>
<g id="a_node39"><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="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#5303</text>
<text text-anchor="middle" x="795" y="-345.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="795" y="-330.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="M643.38,-381.81C651.81,-379.99 660.33,-378.15 668.81,-376.31"/>
<polygon fill="#000000" stroke="#000000" points="669.7071,-379.6969 678.74,-374.16 668.2258,-372.8555 669.7071,-379.6969"/>
</g>
<!-- ZcashFoundation/zebra#4882 -->
<g id="node40" class="node open">
<title>ZcashFoundation/zebra#4882</title>
<g id="a_node40"><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,-1501 75,-1501 75,-1433 307,-1433 307,-1501"/>
<text text-anchor="middle" x="191" y="-1485.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4882</text>
<text text-anchor="middle" x="191" y="-1470.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add zcash&#45;lightwalletd /</text>
<text text-anchor="middle" x="191" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000">Build images to required</text>
<text text-anchor="middle" x="191" y="-1440.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,-1467C337.27,-1467 369.91,-1467 400.57,-1467"/>
<polygon fill="#000000" stroke="#000000" points="400.89,-1470.5001 410.89,-1467 400.89,-1463.5001 400.89,-1470.5001"/>
</g>
<!-- ZcashFoundation/zebra#5199 -->
<g id="node41" class="node open">
<title>ZcashFoundation/zebra#5199</title>
<g id="a_node41"><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="307,-740 75,-740 75,-672 307,-672 307,-740"/>
<text text-anchor="middle" x="191" y="-724.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5199</text>
<text text-anchor="middle" x="191" y="-709.8" font-family="Times,serif" font-size="14.00" fill="#000000">Consider using `nextest`</text>
<text text-anchor="middle" x="191" y="-694.8" font-family="Times,serif" font-size="14.00" fill="#000000">to run tests faster and</text>
<text text-anchor="middle" x="191" y="-679.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="M307.1,-704.96C337.27,-704.69 369.91,-704.4 400.57,-704.13"/>
<polygon fill="#000000" stroke="#000000" points="400.9209,-707.6272 410.89,-704.04 400.8598,-700.6274 400.9209,-707.6272"/>
</g>
<!-- ZcashFoundation/zebra#4554 -->
<g id="node42" class="node open">
<title>ZcashFoundation/zebra#4554</title>
<g id="a_node42"><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,-1962 75,-1962 75,-1894 307,-1894 307,-1962"/>
<text text-anchor="middle" x="191" y="-1946.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4554</text>
<text text-anchor="middle" x="191" y="-1931.8" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks: surface</text>
<text text-anchor="middle" x="191" y="-1916.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad mainnet sync time</text>
<text text-anchor="middle" x="191" y="-1901.8" font-family="Times,serif" font-size="14.00" fill="#000000">in CI</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4545 -->
<g id="node43" class="node open">
<title>ZcashFoundation/zebra#4545</title>
<g id="a_node43"><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,-2063.5 75,-2063.5 75,-1980.5 307,-1980.5 307,-2063.5"/>
<text text-anchor="middle" x="191" y="-2048.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4545</text>
<text text-anchor="middle" x="191" y="-2033.3" font-family="Times,serif" font-size="14.00" fill="#000000">Start disconnecting from</text>
<text text-anchor="middle" x="191" y="-2018.3" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers before</text>
<text text-anchor="middle" x="191" y="-2003.3" font-family="Times,serif" font-size="14.00" fill="#000000">network upgrade</text>
<text text-anchor="middle" x="191" y="-1988.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4226 -->
<g id="node44" class="node closed">
<title>ZcashFoundation/zebra#4226</title>
<g id="a_node44"><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,-2056 411,-2056 411,-1988 643,-1988 643,-2056"/>
<text text-anchor="middle" x="527" y="-2040.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4226</text>
<text text-anchor="middle" x="527" y="-2025.8" font-family="Times,serif" font-size="14.00" fill="#000000">Prefer faster peers, but</text>
<text text-anchor="middle" x="527" y="-2010.8" font-family="Times,serif" font-size="14.00" fill="#000000">if all peers are slow,</text>
<text text-anchor="middle" x="527" y="-1995.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,-2022C337.27,-2022 369.91,-2022 400.57,-2022"/>
<polygon fill="#000000" stroke="#000000" points="400.89,-2025.5001 410.89,-2022 400.89,-2018.5001 400.89,-2025.5001"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>