developers/zcash-zf-dag.html

749 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="2325pt"
viewBox="0.00 0.00 1187.00 2324.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 2320.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2320.5 1183,-2320.5 1183,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_2</title>
<polygon fill="none" stroke="#0000ff" points="67,-339 67,-604 651,-604 651,-339 67,-339"/>
<text text-anchor="middle" x="359" y="-588.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,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>
<!-- 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,-565.5 411,-565.5 411,-512.5 643,-512.5 643,-565.5"/>
<text text-anchor="middle" x="527" y="-550.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3050</text>
<text text-anchor="middle" x="527" y="-535.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="-520.3" font-family="Times,serif" font-size="14.00" fill="#000000">stable release candidate</text>
</a>
</g>
</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="911,-683.5 679,-683.5 679,-679.5 675,-679.5 675,-675.5 679,-675.5 679,-638.5 675,-638.5 675,-634.5 679,-634.5 679,-630.5 911,-630.5 911,-683.5"/>
<polyline fill="none" stroke="#000000" points="679,-679.5 683,-679.5 683,-675.5 679,-675.5 "/>
<polyline fill="none" stroke="#000000" points="679,-638.5 683,-638.5 683,-634.5 679,-634.5 "/>
<text text-anchor="middle" x="795" y="-668.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4967</text>
<text text-anchor="middle" x="795" y="-653.3" font-family="Times,serif" font-size="14.00" fill="#000000">feat(rpc): add</text>
<text text-anchor="middle" x="795" y="-638.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="edge2" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4967</title>
<path fill="none" stroke="#000000" d="M570.78,-565.56C600.56,-582.88 641.27,-605.14 679,-621 683.8,-623.02 688.75,-624.98 693.78,-626.88"/>
<polygon fill="#000000" stroke="#000000" points="692.9362,-630.2982 703.53,-630.45 695.3431,-623.725 692.9362,-630.2982"/>
</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="911,-454 679,-454 679,-450 675,-450 675,-446 679,-446 679,-394 675,-394 675,-390 679,-390 679,-386 911,-386 911,-454"/>
<polyline fill="none" stroke="#000000" points="679,-450 683,-450 683,-446 679,-446 "/>
<polyline fill="none" stroke="#000000" points="679,-394 683,-394 683,-390 679,-390 "/>
<text text-anchor="middle" x="795" y="-438.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5357</text>
<text text-anchor="middle" x="795" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000">feat(rpc): introduce</text>
<text text-anchor="middle" x="795" y="-408.8" font-family="Times,serif" font-size="14.00" fill="#000000">`getblocktemplate&#45;rpcs`</text>
<text text-anchor="middle" x="795" y="-393.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="edge3" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#5357</title>
<path fill="none" stroke="#000000" d="M576.67,-512.45C606.06,-497.18 644.22,-478.09 679,-463 682.88,-461.32 686.85,-459.64 690.87,-457.97"/>
<polygon fill="#000000" stroke="#000000" points="692.387,-461.1314 700.33,-454.12 689.7483,-454.6478 692.387,-461.1314"/>
</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="911,-612 679,-612 679,-544 911,-544 911,-612"/>
<text text-anchor="middle" x="795" y="-596.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4955</text>
<text text-anchor="middle" x="795" y="-581.8" font-family="Times,serif" font-size="14.00" fill="#000000">Make long&#45;running test</text>
<text text-anchor="middle" x="795" y="-566.8" font-family="Times,serif" font-size="14.00" fill="#000000">names match workflow</text>
<text text-anchor="middle" x="795" y="-551.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="M643.38,-555.94C651.81,-557.16 660.33,-558.4 668.81,-559.64"/>
<polygon fill="#000000" stroke="#000000" points="668.3412,-563.1085 678.74,-561.08 669.3458,-556.181 668.3412,-563.1085"/>
</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="911,-525.5 679,-525.5 679,-472.5 911,-472.5 911,-525.5"/>
<text text-anchor="middle" x="795" y="-510.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4992</text>
<text text-anchor="middle" x="795" y="-495.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run cached state CI on</text>
<text text-anchor="middle" x="795" y="-480.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="M643.38,-521.63C651.81,-520.37 660.33,-519.1 668.81,-517.83"/>
<polygon fill="#000000" stroke="#000000" points="669.3652,-521.286 678.74,-516.35 668.3333,-514.3625 669.3652,-521.286"/>
</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,-573 75,-573 75,-505 307,-505 307,-573"/>
<text text-anchor="middle" x="191" y="-557.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4937</text>
<text text-anchor="middle" x="191" y="-542.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Commit blocks to</text>
<text text-anchor="middle" x="191" y="-527.8" font-family="Times,serif" font-size="14.00" fill="#000000">state using a separate</text>
<text text-anchor="middle" x="191" y="-512.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,-539C337.27,-539 369.91,-539 400.57,-539"/>
<polygon fill="#000000" stroke="#000000" points="400.89,-542.5001 410.89,-539 400.89,-535.5001 400.89,-542.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="643,-330.5 411,-330.5 411,-277.5 643,-277.5 643,-330.5"/>
<text text-anchor="middle" x="527" y="-315.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5189</text>
<text text-anchor="middle" x="527" y="-300.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run some docker tests on</text>
<text text-anchor="middle" x="527" y="-285.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="M307.24,-535.1C335.4,-528.68 363.09,-516.9 383,-496 430.86,-445.78 368.12,-393.51 408.95,-338.4"/>
<polygon fill="#000000" stroke="#000000" points="411.727,-340.5341 415.41,-330.6 406.3359,-336.0691 411.727,-340.5341"/>
</g>
<!-- ZcashFoundation/zebra#5125 -->
<g id="node3" class="node open">
<title>ZcashFoundation/zebra#5125</title>
<g id="a_node3"><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="307,-487 75,-487 75,-419 307,-419 307,-487"/>
<text text-anchor="middle" x="191" y="-471.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5125</text>
<text text-anchor="middle" x="191" y="-456.8" font-family="Times,serif" font-size="14.00" fill="#000000">Avoid temporary failures</text>
<text text-anchor="middle" x="191" y="-441.8" font-family="Times,serif" font-size="14.00" fill="#000000">verifying the first non&#45;</text>
<text text-anchor="middle" x="191" y="-426.8" font-family="Times,serif" font-size="14.00" fill="#000000">finalized block</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5214 -->
<g id="node4" class="node open">
<title>ZcashFoundation/zebra#5214</title>
<g id="a_node4"><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,-400.5 75,-400.5 75,-347.5 307,-347.5 307,-400.5"/>
<text text-anchor="middle" x="191" y="-385.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5214</text>
<text text-anchor="middle" x="191" y="-370.3" font-family="Times,serif" font-size="14.00" fill="#000000">Task: Make a list of</text>
<text text-anchor="middle" x="191" y="-355.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra dependencies</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2654 -->
<g id="node5" class="node open">
<title>ZcashFoundation/zebra#2654</title>
<g id="a_node5"><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#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" stroke-width="2" points="307,-329 75,-329 75,-325 71,-325 71,-321 75,-321 75,-239 71,-239 71,-235 75,-235 75,-231 307,-231 307,-329"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="75,-325 79,-325 79,-321 75,-321 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="75,-239 79,-239 79,-235 75,-235 "/>
<text text-anchor="middle" x="191" y="-313.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5257</text>
<text text-anchor="middle" x="191" y="-298.8" font-family="Times,serif" font-size="14.00" fill="#000000">change(state): Write non&#45;</text>
<text text-anchor="middle" x="191" y="-283.8" font-family="Times,serif" font-size="14.00" fill="#000000">finalized blocks to the</text>
<text text-anchor="middle" x="191" y="-268.8" font-family="Times,serif" font-size="14.00" fill="#000000">state in a separate</text>
<text text-anchor="middle" x="191" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000">thread, to avoid network</text>
<text text-anchor="middle" x="191" y="-238.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.15,-299.7C333.66,-307.76 360.6,-319.09 383,-335 444.54,-378.71 488.98,-457.33 511.11,-503.15"/>
<polygon fill="#000000" stroke="#000000" points="508.0535,-504.8734 515.5,-512.41 514.3787,-501.8747 508.0535,-504.8734"/>
</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="643,-259.5 411,-259.5 411,-206.5 643,-206.5 643,-259.5"/>
<text text-anchor="middle" x="527" y="-244.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5297</text>
<text text-anchor="middle" x="527" y="-229.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add metrics for chain</text>
<text text-anchor="middle" x="527" y="-214.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,-263.76C337.4,-259.52 370.19,-254.93 400.97,-250.63"/>
<polygon fill="#000000" stroke="#000000" points="401.4725,-254.0939 410.89,-249.24 400.501,-247.1616 401.4725,-254.0939"/>
</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,-885 75,-885 75,-817 307,-817 307,-885"/>
<text text-anchor="middle" x="191" y="-869.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5316</text>
<text text-anchor="middle" x="191" y="-854.8" font-family="Times,serif" font-size="14.00" fill="#000000">Only run the</text>
<text text-anchor="middle" x="191" y="-839.8" font-family="Times,serif" font-size="14.00" fill="#000000">`lightwalletd` full sync</text>
<text text-anchor="middle" x="191" y="-824.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,-1067.5 75,-1067.5 75,-984.5 307,-984.5 307,-1067.5"/>
<text text-anchor="middle" x="191" y="-1052.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5015</text>
<text text-anchor="middle" x="191" y="-1037.3" font-family="Times,serif" font-size="14.00" fill="#000000">Get transactions from the</text>
<text text-anchor="middle" x="191" y="-1022.3" font-family="Times,serif" font-size="14.00" fill="#000000">non&#45;finalized state in</text>
<text text-anchor="middle" x="191" y="-1007.3" font-family="Times,serif" font-size="14.00" fill="#000000">the send transactions</text>
<text text-anchor="middle" x="191" y="-992.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,-1195 75,-1195 75,-1127 307,-1127 307,-1195"/>
<text text-anchor="middle" x="191" y="-1179.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2375</text>
<text text-anchor="middle" x="191" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000">Allow different `zebra&#45;</text>
<text text-anchor="middle" x="191" y="-1149.8" font-family="Times,serif" font-size="14.00" fill="#000000">network` apps to use</text>
<text text-anchor="middle" x="191" y="-1134.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,-1187.5 415.5,-1187.5 415.5,-1134.5 638.5,-1134.5 638.5,-1187.5"/>
<text text-anchor="middle" x="527" y="-1172.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#794</text>
<text text-anchor="middle" x="527" y="-1157.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make sure custom user</text>
<text text-anchor="middle" x="527" y="-1142.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="edge9" class="edge">
<title>ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794</title>
<path fill="none" stroke="#000000" d="M307.1,-1161C338.77,-1161 373.16,-1161 405.14,-1161"/>
<polygon fill="#000000" stroke="#000000" points="405.43,-1164.5001 415.43,-1161 405.43,-1157.5001 405.43,-1164.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="643,-1116 411,-1116 411,-1048 643,-1048 643,-1116"/>
<text text-anchor="middle" x="527" y="-1100.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2631</text>
<text text-anchor="middle" x="527" y="-1085.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send committed spent</text>
<text text-anchor="middle" x="527" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000">OutPoints &amp; nullifiers to</text>
<text text-anchor="middle" x="527" y="-1055.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="911,-1156 679,-1156 679,-1088 911,-1088 911,-1156"/>
<text text-anchor="middle" x="795" y="-1140.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5235</text>
<text text-anchor="middle" x="795" y="-1125.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="795" y="-1110.8" font-family="Times,serif" font-size="14.00" fill="#000000">`getblocktemplate` RPC</text>
<text text-anchor="middle" x="795" y="-1095.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="edge10" class="edge">
<title>ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5235</title>
<path fill="none" stroke="#000000" d="M643.38,-1099.4C651.81,-1100.6 660.33,-1101.9 668.81,-1103.2"/>
<polygon fill="#000000" stroke="#000000" points="668.3493,-1106.6696 678.74,-1104.6 669.3266,-1099.7381 668.3493,-1106.6696"/>
</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="911,-1069.5 679,-1069.5 679,-1016.5 911,-1016.5 911,-1069.5"/>
<text text-anchor="middle" x="795" y="-1054.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5236</text>
<text text-anchor="middle" x="795" y="-1039.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="795" y="-1024.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="edge11" class="edge">
<title>ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5236</title>
<path fill="none" stroke="#000000" d="M643.38,-1065.1C651.81,-1063.8 660.33,-1062.6 668.81,-1061.4"/>
<polygon fill="#000000" stroke="#000000" points="669.375,-1064.8545 678.74,-1059.9 668.3294,-1057.933 669.375,-1064.8545"/>
</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="1179,-1077 947,-1077 947,-1009 1179,-1009 1179,-1077"/>
<text text-anchor="middle" x="1063" y="-1061.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5336</text>
<text text-anchor="middle" x="1063" y="-1046.8" font-family="Times,serif" font-size="14.00" fill="#000000">Relay mempool</text>
<text text-anchor="middle" x="1063" y="-1031.8" font-family="Times,serif" font-size="14.00" fill="#000000">transactions based on the</text>
<text text-anchor="middle" x="1063" y="-1016.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="edge12" class="edge">
<title>ZcashFoundation/zebra#5235&#45;&gt;ZcashFoundation/zebra#5336</title>
<path fill="none" stroke="#000000" d="M910.6,-1087.9C919.55,-1085.3 928.61,-1082.6 937.61,-1080"/>
<polygon fill="#000000" stroke="#000000" points="938.7728,-1083.3057 947.36,-1077.1 936.7771,-1076.5962 938.7728,-1083.3057"/>
</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,-1266.5 75,-1266.5 75,-1213.5 307,-1213.5 307,-1266.5"/>
<text text-anchor="middle" x="191" y="-1251.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3247</text>
<text text-anchor="middle" x="191" y="-1236.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: Questions for</text>
<text text-anchor="middle" x="191" y="-1221.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,-1337.5 75,-1337.5 75,-1284.5 307,-1284.5 307,-1337.5"/>
<text text-anchor="middle" x="191" y="-1322.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3383</text>
<text text-anchor="middle" x="191" y="-1307.3" font-family="Times,serif" font-size="14.00" fill="#000000">Document `zebrad</text>
<text text-anchor="middle" x="191" y="-1292.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="911,-998 679,-998 679,-930 911,-930 911,-998"/>
<text text-anchor="middle" x="795" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5335</text>
<text text-anchor="middle" x="795" y="-967.8" font-family="Times,serif" font-size="14.00" fill="#000000">Evict transactions from</text>
<text text-anchor="middle" x="795" y="-952.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool based on the</text>
<text text-anchor="middle" x="795" y="-937.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="edge13" class="edge">
<title>ZcashFoundation/zebra#5335&#45;&gt;ZcashFoundation/zebra#5336</title>
<path fill="none" stroke="#000000" d="M910.6,-998.1C919.55,-1000.7 928.61,-1003.4 937.61,-1006"/>
<polygon fill="#000000" stroke="#000000" points="936.7771,-1009.4038 947.36,-1008.9 938.7728,-1002.6943 936.7771,-1009.4038"/>
</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,-1424 75,-1424 75,-1356 307,-1356 307,-1424"/>
<text text-anchor="middle" x="191" y="-1408.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1615</text>
<text text-anchor="middle" x="191" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra release candidate</text>
<text text-anchor="middle" x="191" y="-1378.8" font-family="Times,serif" font-size="14.00" fill="#000000">binaries should be linked</text>
<text text-anchor="middle" x="191" y="-1363.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,-680 75,-680 75,-676 71,-676 71,-672 75,-672 75,-620 71,-620 71,-616 75,-616 75,-612 307,-612 307,-680"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="75,-676 79,-676 79,-672 75,-672 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="75,-620 79,-620 79,-616 75,-616 "/>
<text text-anchor="middle" x="191" y="-664.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5360</text>
<text text-anchor="middle" x="191" y="-649.8" font-family="Times,serif" font-size="14.00" fill="#000000">change(consensus): Update</text>
<text text-anchor="middle" x="191" y="-634.8" font-family="Times,serif" font-size="14.00" fill="#000000">mainnet and testnet</text>
<text text-anchor="middle" x="191" y="-619.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="edge14" class="edge">
<title>ZcashFoundation/zebra#5360&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M307.21,-627.88C332.5,-622.59 358.9,-616.02 383,-608 412.77,-598.1 444.35,-583.47 470.34,-570.23"/>
<polygon fill="#000000" stroke="#000000" points="472.003,-573.3104 479.28,-565.61 468.7893,-567.0917 472.003,-573.3104"/>
</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,-1510 75,-1510 75,-1442 307,-1442 307,-1510"/>
<text text-anchor="middle" x="191" y="-1494.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4412</text>
<text text-anchor="middle" x="191" y="-1479.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automate pinning CI</text>
<text text-anchor="middle" x="191" y="-1464.8" font-family="Times,serif" font-size="14.00" fill="#000000">dependencies to specific</text>
<text text-anchor="middle" x="191" y="-1449.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,-1581.5 75,-1581.5 75,-1528.5 307,-1528.5 307,-1581.5"/>
<text text-anchor="middle" x="191" y="-1566.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4672</text>
<text text-anchor="middle" x="191" y="-1551.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for Orchard</text>
<text text-anchor="middle" x="191" y="-1536.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,-1717.5 411,-1717.5 411,-1664.5 643,-1664.5 643,-1717.5"/>
<text text-anchor="middle" x="527" y="-1702.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4841</text>
<text text-anchor="middle" x="527" y="-1687.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve note commitment</text>
<text text-anchor="middle" x="527" y="-1672.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,-1870 411,-1870 411,-1802 643,-1802 643,-1870"/>
<text text-anchor="middle" x="527" y="-1854.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4612</text>
<text text-anchor="middle" x="527" y="-1839.8" font-family="Times,serif" font-size="14.00" fill="#000000">ci: Wait for lightwalletd</text>
<text text-anchor="middle" x="527" y="-1824.8" font-family="Times,serif" font-size="14.00" fill="#000000">image rebuild if it has</text>
<text text-anchor="middle" x="527" y="-1809.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,-1956 75,-1956 75,-1888 307,-1888 307,-1956"/>
<text text-anchor="middle" x="191" y="-1940.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5153</text>
<text text-anchor="middle" x="191" y="-1925.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tag Google Cloud</text>
<text text-anchor="middle" x="191" y="-1910.8" font-family="Times,serif" font-size="14.00" fill="#000000">instances with the name</text>
<text text-anchor="middle" x="191" y="-1895.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,-2042 411,-2042 411,-1974 643,-1974 643,-2042"/>
<text text-anchor="middle" x="527" y="-2026.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5155</text>
<text text-anchor="middle" x="527" y="-2011.8" font-family="Times,serif" font-size="14.00" fill="#000000">Decide if we want to</text>
<text text-anchor="middle" x="527" y="-1996.8" font-family="Times,serif" font-size="14.00" fill="#000000">create cached states more</text>
<text text-anchor="middle" x="527" y="-1981.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="edge15" class="edge">
<title>ZcashFoundation/zebra#5153&#45;&gt;ZcashFoundation/zebra#5155</title>
<path fill="none" stroke="#000000" d="M307.01,-1947.4C332.13,-1953.3 358.51,-1959.6 383,-1966 389.43,-1967.7 396.02,-1969.4 402.66,-1971.2"/>
<polygon fill="#000000" stroke="#000000" points="401.8386,-1974.6042 412.41,-1973.9 403.7068,-1967.8581 401.8386,-1974.6042"/>
</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,-1956 411,-1956 411,-1888 643,-1888 643,-1956"/>
<text text-anchor="middle" x="527" y="-1940.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5188</text>
<text text-anchor="middle" x="527" y="-1925.8" font-family="Times,serif" font-size="14.00" fill="#000000">Reduce continuous</text>
<text text-anchor="middle" x="527" y="-1910.8" font-family="Times,serif" font-size="14.00" fill="#000000">deployment instance group</text>
<text text-anchor="middle" x="527" y="-1895.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="edge16" class="edge">
<title>ZcashFoundation/zebra#5153&#45;&gt;ZcashFoundation/zebra#5188</title>
<path fill="none" stroke="#000000" d="M307.1,-1922C337.27,-1922 369.91,-1922 400.57,-1922"/>
<polygon fill="#000000" stroke="#000000" points="400.89,-1925.5001 410.89,-1922 400.89,-1918.5001 400.89,-1925.5001"/>
</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,-2057.5 75,-2057.5 75,-1974.5 307,-1974.5 307,-2057.5"/>
<text text-anchor="middle" x="191" y="-2042.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4794</text>
<text text-anchor="middle" x="191" y="-2027.3" font-family="Times,serif" font-size="14.00" fill="#000000">Revert note commitment</text>
<text text-anchor="middle" x="191" y="-2012.3" font-family="Times,serif" font-size="14.00" fill="#000000">and history trees when</text>
<text text-anchor="middle" x="191" y="-1997.3" font-family="Times,serif" font-size="14.00" fill="#000000">forking non&#45;finalized</text>
<text text-anchor="middle" x="191" y="-1982.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,-2128.5 75,-2128.5 75,-2075.5 307,-2075.5 307,-2128.5"/>
<text text-anchor="middle" x="191" y="-2113.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3096</text>
<text text-anchor="middle" x="191" y="-2098.3" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra Release</text>
<text text-anchor="middle" x="191" y="-2083.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,-1783.5 75,-1783.5 75,-1700.5 307,-1700.5 307,-1783.5"/>
<text text-anchor="middle" x="191" y="-1768.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4774</text>
<text text-anchor="middle" x="191" y="-1753.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="191" y="-1738.3" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="191" y="-1723.3" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Orchard</text>
<text text-anchor="middle" x="191" y="-1708.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="edge17" class="edge">
<title>ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M307.1,-1724.4C337.4,-1719.8 370.19,-1714.8 400.97,-1710.1"/>
<polygon fill="#000000" stroke="#000000" points="401.5257,-1713.5558 410.89,-1708.6 400.4791,-1706.6345 401.5257,-1713.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,-1682.5 75,-1682.5 75,-1599.5 307,-1599.5 307,-1682.5"/>
<text text-anchor="middle" x="191" y="-1667.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4775</text>
<text text-anchor="middle" x="191" y="-1652.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="191" y="-1637.3" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="191" y="-1622.3" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Sapling</text>
<text text-anchor="middle" x="191" y="-1607.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="edge18" class="edge">
<title>ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M307.1,-1658.3C337.4,-1662.8 370.19,-1667.7 400.97,-1672.2"/>
<polygon fill="#000000" stroke="#000000" points="400.4791,-1675.6655 410.89,-1673.7 401.5257,-1668.7442 400.4791,-1675.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="643,-873 411,-873 411,-805 643,-805 643,-873"/>
<text text-anchor="middle" x="527" y="-857.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5305</text>
<text text-anchor="middle" x="527" y="-842.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add a `getblocktemplate&#45;</text>
<text text-anchor="middle" x="527" y="-827.8" font-family="Times,serif" font-size="14.00" fill="#000000">rpcs` feature to `zebrad`</text>
<text text-anchor="middle" x="527" y="-812.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="edge19" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#4967</title>
<path fill="none" stroke="#000000" d="M553.99,-804.72C581.93,-771.41 628.5,-721.64 679,-692 681.34,-690.62 683.74,-689.3 686.19,-688.02"/>
<polygon fill="#000000" stroke="#000000" points="687.7904,-691.1336 695.24,-683.6 684.7184,-684.8436 687.7904,-691.1336"/>
</g>
<!-- ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5235 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5235</title>
<path fill="none" stroke="#000000" d="M547.95,-873.19C587.44,-937.44 669.77,-1070.5 679,-1078 680.76,-1079.4 682.58,-1080.8 684.44,-1082.2"/>
<polygon fill="#000000" stroke="#000000" points="682.5951,-1085.1764 692.86,-1087.8 686.4717,-1079.3478 682.5951,-1085.1764"/>
</g>
<!-- ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5236 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5236</title>
<path fill="none" stroke="#000000" d="M549.5,-873.32C576.11,-911.3 623.8,-971.76 679,-1007 681.63,-1008.7 684.33,-1010.3 687.11,-1011.8"/>
<polygon fill="#000000" stroke="#000000" points="685.6816,-1015.0019 696.17,-1016.5 688.9051,-1008.7882 685.6816,-1015.0019"/>
</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="911,-754.5 679,-754.5 679,-701.5 911,-701.5 911,-754.5"/>
<text text-anchor="middle" x="795" y="-739.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5268</text>
<text text-anchor="middle" x="795" y="-724.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="795" y="-709.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="edge22" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5268</title>
<path fill="none" stroke="#000000" d="M589.13,-804.93C616.24,-790.85 648.7,-775.04 679,-763 683.24,-761.32 687.59,-759.67 692.01,-758.06"/>
<polygon fill="#000000" stroke="#000000" points="693.5064,-761.2429 701.76,-754.6 691.1653,-754.646 693.5064,-761.2429"/>
</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="911,-912 679,-912 679,-844 911,-844 911,-912"/>
<text text-anchor="middle" x="795" y="-896.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5302</text>
<text text-anchor="middle" x="795" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="795" y="-866.8" font-family="Times,serif" font-size="14.00" fill="#000000">`getblocksubsidy` RPC</text>
<text text-anchor="middle" x="795" y="-851.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="edge23" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5302</title>
<path fill="none" stroke="#000000" d="M643.38,-855.94C651.81,-857.16 660.33,-858.4 668.81,-859.64"/>
<polygon fill="#000000" stroke="#000000" points="668.3412,-863.1085 678.74,-861.08 669.3458,-856.181 668.3412,-863.1085"/>
</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="911,-825.5 679,-825.5 679,-772.5 911,-772.5 911,-825.5"/>
<text text-anchor="middle" x="795" y="-810.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5303</text>
<text text-anchor="middle" x="795" y="-795.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="795" y="-780.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="edge24" class="edge">
<title>ZcashFoundation/zebra#5305&#45;&gt;ZcashFoundation/zebra#5303</title>
<path fill="none" stroke="#000000" d="M643.38,-821.63C651.81,-820.37 660.33,-819.1 668.81,-817.83"/>
<polygon fill="#000000" stroke="#000000" points="669.3652,-821.286 678.74,-816.35 668.3333,-814.3625 669.3652,-821.286"/>
</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,-1870 75,-1870 75,-1802 307,-1802 307,-1870"/>
<text text-anchor="middle" x="191" y="-1854.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4882</text>
<text text-anchor="middle" x="191" y="-1839.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add zcash&#45;lightwalletd /</text>
<text text-anchor="middle" x="191" y="-1824.8" font-family="Times,serif" font-size="14.00" fill="#000000">Build images to required</text>
<text text-anchor="middle" x="191" y="-1809.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="edge25" class="edge">
<title>ZcashFoundation/zebra#4882&#45;&gt;ZcashFoundation/zebra#4612</title>
<path fill="none" stroke="#000000" d="M307.1,-1836C337.27,-1836 369.91,-1836 400.57,-1836"/>
<polygon fill="#000000" stroke="#000000" points="400.89,-1839.5001 410.89,-1836 400.89,-1832.5001 400.89,-1839.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="307,-213 75,-213 75,-145 307,-145 307,-213"/>
<text text-anchor="middle" x="191" y="-197.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5199</text>
<text text-anchor="middle" x="191" y="-182.8" font-family="Times,serif" font-size="14.00" fill="#000000">Consider using `nextest`</text>
<text text-anchor="middle" x="191" y="-167.8" font-family="Times,serif" font-size="14.00" fill="#000000">to run tests faster and</text>
<text text-anchor="middle" x="191" y="-152.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="edge26" class="edge">
<title>ZcashFoundation/zebra#5199&#45;&gt;ZcashFoundation/zebra#5189</title>
<path fill="none" stroke="#000000" d="M307.23,-189.5C333.89,-195.97 360.86,-206.12 383,-222 402.45,-235.95 392.13,-253.28 411,-268 412.79,-269.4 414.63,-270.74 416.53,-272.03"/>
<polygon fill="#000000" stroke="#000000" points="414.7511,-275.0453 425.09,-277.36 418.4511,-269.1031 414.7511,-275.0453"/>
</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,-2215 75,-2215 75,-2147 307,-2147 307,-2215"/>
<text text-anchor="middle" x="191" y="-2199.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4554</text>
<text text-anchor="middle" x="191" y="-2184.8" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks: surface</text>
<text text-anchor="middle" x="191" y="-2169.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad mainnet sync time</text>
<text text-anchor="middle" x="191" y="-2154.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,-2316.5 75,-2316.5 75,-2233.5 307,-2233.5 307,-2316.5"/>
<text text-anchor="middle" x="191" y="-2301.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4545</text>
<text text-anchor="middle" x="191" y="-2286.3" font-family="Times,serif" font-size="14.00" fill="#000000">Start disconnecting from</text>
<text text-anchor="middle" x="191" y="-2271.3" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers before</text>
<text text-anchor="middle" x="191" y="-2256.3" font-family="Times,serif" font-size="14.00" fill="#000000">network upgrade</text>
<text text-anchor="middle" x="191" y="-2241.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,-2309 411,-2309 411,-2241 643,-2241 643,-2309"/>
<text text-anchor="middle" x="527" y="-2293.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4226</text>
<text text-anchor="middle" x="527" y="-2278.8" font-family="Times,serif" font-size="14.00" fill="#000000">Prefer faster peers, but</text>
<text text-anchor="middle" x="527" y="-2263.8" font-family="Times,serif" font-size="14.00" fill="#000000">if all peers are slow,</text>
<text text-anchor="middle" x="527" y="-2248.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="edge27" class="edge">
<title>ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226</title>
<path fill="none" stroke="#000000" d="M307.1,-2275C337.27,-2275 369.91,-2275 400.57,-2275"/>
<polygon fill="#000000" stroke="#000000" points="400.89,-2278.5001 410.89,-2275 400.89,-2271.5001 400.89,-2278.5001"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>