developers/zcash-zf-dag.html

1460 lines
113 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="1395pt" height="4972pt"
viewBox="0.00 0.00 1395.00 4971.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 4967.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-4967.5 1391,-4967.5 1391,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_2</title>
<polygon fill="none" stroke="#0000ff" points="1139,-2358 1139,-3167 1387,-3167 1387,-2358 1139,-2358"/>
<text text-anchor="middle" x="1263" y="-3151.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: Tech Debt</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_4</title>
<polygon fill="none" stroke="#0000ff" points="268,-916 268,-1672 851,-1672 851,-916 268,-916"/>
<text text-anchor="middle" x="559.5" y="-1656.8" font-family="Times,serif" font-size="14.00" fill="#000000">Mini&#45;Epic: Stop tokio tasks running for a long time and blocking other tasks</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_5</title>
<polygon fill="none" stroke="#0000ff" points="559,-329 559,-508 847,-508 847,-329 559,-329"/>
<text text-anchor="middle" x="703" y="-492.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra as a lightwalletd backend</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_0</title>
<polygon fill="none" stroke="#0000ff" points="0,-3301 0,-4714 539,-4714 539,-3301 0,-3301"/>
<text text-anchor="middle" x="269.5" y="-4698.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: Zebra as a Full&#45;Node Wallet</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_1</title>
<polygon fill="none" stroke="#0000ff" points="579,-1680 579,-3493 1119,-3493 1119,-1680 579,-1680"/>
<text text-anchor="middle" x="849" y="-3477.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra Stable Release Candidate</text>
</g>
<g id="clust6" class="cluster">
<title>cluster_3</title>
<polygon fill="none" stroke="#0000ff" points="0,-2956 0,-3293 248,-3293 248,-2956 0,-2956"/>
<text text-anchor="middle" x="124" y="-3277.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: Documentation</text>
</g>
<!-- ZcashFoundation/zebra#1791 -->
<g id="node1" class="node closed">
<title>ZcashFoundation/zebra#1791</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1791" xlink:title="ZcashFoundation/zebra#1791&#10;Re&#45;enable `sync_large_che&#10;ckpoints_testnet` test" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="1379,-3135.5 1147,-3135.5 1147,-3082.5 1379,-3082.5 1379,-3135.5"/>
<text text-anchor="middle" x="1263" y="-3120.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1791</text>
<text text-anchor="middle" x="1263" y="-3105.3" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable `sync_large_che</text>
<text text-anchor="middle" x="1263" y="-3090.3" font-family="Times,serif" font-size="14.00" fill="#000000">ckpoints_testnet` test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3263 -->
<g id="node2" class="node open">
<title>ZcashFoundation/zebra#3263</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3263" xlink:title="ZcashFoundation/zebra#3263&#10;Security: Remove the&#10;ErrorSlot from the&#10;heartbeat and connection&#10;tasks" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1379,-3064.5 1147,-3064.5 1147,-2981.5 1379,-2981.5 1379,-3064.5"/>
<text text-anchor="middle" x="1263" y="-3049.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3263</text>
<text text-anchor="middle" x="1263" y="-3034.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Remove the</text>
<text text-anchor="middle" x="1263" y="-3019.3" font-family="Times,serif" font-size="14.00" fill="#000000">ErrorSlot from the</text>
<text text-anchor="middle" x="1263" y="-3004.3" font-family="Times,serif" font-size="14.00" fill="#000000">heartbeat and connection</text>
<text text-anchor="middle" x="1263" y="-2989.3" font-family="Times,serif" font-size="14.00" fill="#000000">tasks</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3383 -->
<g id="node3" class="node open">
<title>ZcashFoundation/zebra#3383</title>
<g id="a_node3"><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="1379,-2963.5 1147,-2963.5 1147,-2910.5 1379,-2910.5 1379,-2963.5"/>
<text text-anchor="middle" x="1263" y="-2948.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3383</text>
<text text-anchor="middle" x="1263" y="-2933.3" font-family="Times,serif" font-size="14.00" fill="#000000">Document `zebrad</text>
<text text-anchor="middle" x="1263" y="-2918.3" font-family="Times,serif" font-size="14.00" fill="#000000">download` command.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#483 -->
<g id="node4" class="node open">
<title>ZcashFoundation/zebra#483</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/483" xlink:title="ZcashFoundation/zebra#483&#10;Limit generated block and&#10;transaction size" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1374.5,-2892.5 1151.5,-2892.5 1151.5,-2839.5 1374.5,-2839.5 1374.5,-2892.5"/>
<text text-anchor="middle" x="1263" y="-2877.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#483</text>
<text text-anchor="middle" x="1263" y="-2862.3" font-family="Times,serif" font-size="14.00" fill="#000000">Limit generated block and</text>
<text text-anchor="middle" x="1263" y="-2847.3" font-family="Times,serif" font-size="14.00" fill="#000000">transaction size</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3436 -->
<g id="node5" class="node open">
<title>ZcashFoundation/zebra#3436</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3436" xlink:title="ZcashFoundation/zebra#3436&#10;Create wrapper for&#10;`precomputed` in&#10;`CachedFfiTransaction`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1379,-2821 1147,-2821 1147,-2753 1379,-2753 1379,-2821"/>
<text text-anchor="middle" x="1263" y="-2805.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3436</text>
<text text-anchor="middle" x="1263" y="-2790.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create wrapper for</text>
<text text-anchor="middle" x="1263" y="-2775.8" font-family="Times,serif" font-size="14.00" fill="#000000">`precomputed` in</text>
<text text-anchor="middle" x="1263" y="-2760.8" font-family="Times,serif" font-size="14.00" fill="#000000">`CachedFfiTransaction`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2908 -->
<g id="node6" class="node open">
<title>ZcashFoundation/zebra#2908</title>
<g id="a_node6"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2908" xlink:title="ZcashFoundation/zebra#2908&#10;Improve&#10;VerifyBlockError::Commit&#10;typing" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1379,-2735 1147,-2735 1147,-2667 1379,-2667 1379,-2735"/>
<text text-anchor="middle" x="1263" y="-2719.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2908</text>
<text text-anchor="middle" x="1263" y="-2704.8" font-family="Times,serif" font-size="14.00" fill="#000000">Improve</text>
<text text-anchor="middle" x="1263" y="-2689.8" font-family="Times,serif" font-size="14.00" fill="#000000">VerifyBlockError::Commit</text>
<text text-anchor="middle" x="1263" y="-2674.8" font-family="Times,serif" font-size="14.00" fill="#000000">typing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2297 -->
<g id="node7" class="node open">
<title>ZcashFoundation/zebra#2297</title>
<g id="a_node7"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2297" xlink:title="ZcashFoundation/zebra#2297&#10;Enforce unwrap&#45;pertinent&#10;Clippy lints" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1379,-2648.5 1147,-2648.5 1147,-2595.5 1379,-2595.5 1379,-2648.5"/>
<text text-anchor="middle" x="1263" y="-2633.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2297</text>
<text text-anchor="middle" x="1263" y="-2618.3" font-family="Times,serif" font-size="14.00" fill="#000000">Enforce unwrap&#45;pertinent</text>
<text text-anchor="middle" x="1263" y="-2603.3" font-family="Times,serif" font-size="14.00" fill="#000000">Clippy lints</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3831 -->
<g id="node8" class="node open">
<title>ZcashFoundation/zebra#3831</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3831" xlink:title="ZcashFoundation/zebra#3831&#10;Remove duplicated&#10;zcash_proofs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1379,-2577.5 1147,-2577.5 1147,-2524.5 1379,-2524.5 1379,-2577.5"/>
<text text-anchor="middle" x="1263" y="-2562.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3831</text>
<text text-anchor="middle" x="1263" y="-2547.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove duplicated</text>
<text text-anchor="middle" x="1263" y="-2532.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash_proofs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3179 -->
<g id="node9" class="node open">
<title>ZcashFoundation/zebra#3179</title>
<g id="a_node9"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3179" xlink:title="ZcashFoundation/zebra#3179&#10;Use a `bellman::Proof`&#10;instead of a byte array&#10;in `Groth16Proof`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1379,-2506 1147,-2506 1147,-2438 1379,-2438 1379,-2506"/>
<text text-anchor="middle" x="1263" y="-2490.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3179</text>
<text text-anchor="middle" x="1263" y="-2475.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use a `bellman::Proof`</text>
<text text-anchor="middle" x="1263" y="-2460.8" font-family="Times,serif" font-size="14.00" fill="#000000">instead of a byte array</text>
<text text-anchor="middle" x="1263" y="-2445.8" font-family="Times,serif" font-size="14.00" fill="#000000">in `Groth16Proof`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3117 -->
<g id="node10" class="node open">
<title>ZcashFoundation/zebra#3117</title>
<g id="a_node10"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3117" xlink:title="ZcashFoundation/zebra#3117&#10;Stop using private IP&#10;addresses by default" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1379,-2419.5 1147,-2419.5 1147,-2366.5 1379,-2366.5 1379,-2419.5"/>
<text text-anchor="middle" x="1263" y="-2404.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3117</text>
<text text-anchor="middle" x="1263" y="-2389.3" font-family="Times,serif" font-size="14.00" fill="#000000">Stop using private IP</text>
<text text-anchor="middle" x="1263" y="-2374.3" font-family="Times,serif" font-size="14.00" fill="#000000">addresses by default</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4841 -->
<g id="node11" class="node open">
<title>ZcashFoundation/zebra#4841</title>
<g id="a_node11"><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="#c2e0c6" stroke="#000000" points="819,-1250.5 587,-1250.5 587,-1197.5 819,-1197.5 819,-1250.5"/>
<text text-anchor="middle" x="703" y="-1235.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4841</text>
<text text-anchor="middle" x="703" y="-1220.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve note commitment</text>
<text text-anchor="middle" x="703" y="-1205.3" font-family="Times,serif" font-size="14.00" fill="#000000">tree append performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4831 -->
<g id="node12" class="node open">
<title>ZcashFoundation/zebra#4831</title>
<g id="a_node12"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4831" xlink:title="ZcashFoundation/zebra#4831&#10;Revert deserializing&#10;state transactions in&#10;`rayon` threads" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-1641 299,-1641 299,-1573 531,-1573 531,-1641"/>
<text text-anchor="middle" x="415" y="-1625.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4831</text>
<text text-anchor="middle" x="415" y="-1610.8" font-family="Times,serif" font-size="14.00" fill="#000000">Revert deserializing</text>
<text text-anchor="middle" x="415" y="-1595.8" font-family="Times,serif" font-size="14.00" fill="#000000">state transactions in</text>
<text text-anchor="middle" x="415" y="-1580.8" font-family="Times,serif" font-size="14.00" fill="#000000">`rayon` threads</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4721 -->
<g id="node13" class="node open">
<title>ZcashFoundation/zebra#4721</title>
<g id="a_node13"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4721" xlink:title="ZcashFoundation/zebra#4721&#10;Send note commitment and&#10;history trees from the&#10;non&#45;finalized state to&#10;the finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-1554.5 299,-1554.5 299,-1550.5 295,-1550.5 295,-1546.5 299,-1546.5 299,-1479.5 295,-1479.5 295,-1475.5 299,-1475.5 299,-1471.5 531,-1471.5 531,-1554.5"/>
<polyline fill="none" stroke="#000000" points="299,-1550.5 303,-1550.5 303,-1546.5 299,-1546.5 "/>
<polyline fill="none" stroke="#000000" points="299,-1479.5 303,-1479.5 303,-1475.5 299,-1475.5 "/>
<text text-anchor="middle" x="415" y="-1539.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4721</text>
<text text-anchor="middle" x="415" y="-1524.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send note commitment and</text>
<text text-anchor="middle" x="415" y="-1509.3" font-family="Times,serif" font-size="14.00" fill="#000000">history trees from the</text>
<text text-anchor="middle" x="415" y="-1494.3" font-family="Times,serif" font-size="14.00" fill="#000000">non&#45;finalized state to</text>
<text text-anchor="middle" x="415" y="-1479.3" font-family="Times,serif" font-size="14.00" fill="#000000">the finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4823 -->
<g id="node14" class="node closed">
<title>ZcashFoundation/zebra#4823</title>
<g id="a_node14"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4823" xlink:title="ZcashFoundation/zebra#4823&#10;Find out which parts of C&#10;ommitBlock/CommitFinalize&#10;dBlock are slow" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="819,-1547 587,-1547 587,-1479 819,-1479 819,-1547"/>
<text text-anchor="middle" x="703" y="-1531.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4823</text>
<text text-anchor="middle" x="703" y="-1516.8" font-family="Times,serif" font-size="14.00" fill="#000000">Find out which parts of C</text>
<text text-anchor="middle" x="703" y="-1501.8" font-family="Times,serif" font-size="14.00" fill="#000000">ommitBlock/CommitFinalize</text>
<text text-anchor="middle" x="703" y="-1486.8" font-family="Times,serif" font-size="14.00" fill="#000000">dBlock are slow</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4721&#45;&gt;ZcashFoundation/zebra#4823 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#4721&#45;&gt;ZcashFoundation/zebra#4823</title>
<path fill="none" stroke="#000000" d="M531.31,-1513C546.15,-1513 561.4,-1513 576.39,-1513"/>
<polygon fill="#000000" stroke="#000000" points="576.72,-1516.5001 586.72,-1513 576.72,-1509.5001 576.72,-1516.5001"/>
</g>
<!-- ZcashFoundation/zebra#4784 -->
<g id="node49" class="node open">
<title>ZcashFoundation/zebra#4784</title>
<g id="a_node49"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4784" xlink:title="ZcashFoundation/zebra#4784&#10;Store only the first tree&#10;state in each identical&#10;series of tree states" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="819,-2731 587,-2731 587,-2663 819,-2663 819,-2731"/>
<text text-anchor="middle" x="703" y="-2715.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4784</text>
<text text-anchor="middle" x="703" y="-2700.8" font-family="Times,serif" font-size="14.00" fill="#000000">Store only the first tree</text>
<text text-anchor="middle" x="703" y="-2685.8" font-family="Times,serif" font-size="14.00" fill="#000000">state in each identical</text>
<text text-anchor="middle" x="703" y="-2670.8" font-family="Times,serif" font-size="14.00" fill="#000000">series of tree states</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4721&#45;&gt;ZcashFoundation/zebra#4784 -->
<g id="edge17" class="edge">
<title>ZcashFoundation/zebra#4721&#45;&gt;ZcashFoundation/zebra#4784</title>
<path fill="none" stroke="#000000" d="M531.12,-1554.3C533.99,-1557.3 536.64,-1560.5 539,-1564 573.17,-1614 522.37,-2605.8 559,-2654 564.39,-2661.1 570.9,-2667.1 578.14,-2672.1"/>
<polygon fill="#000000" stroke="#000000" points="576.595,-2675.2582 586.95,-2677.5 580.2532,-2669.29 576.595,-2675.2582"/>
</g>
<!-- ZcashFoundation/zebra#4794 -->
<g id="node15" class="node open">
<title>ZcashFoundation/zebra#4794</title>
<g id="a_node15"><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" points="819,-1460.5 587,-1460.5 587,-1377.5 819,-1377.5 819,-1460.5"/>
<text text-anchor="middle" x="703" y="-1445.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4794</text>
<text text-anchor="middle" x="703" y="-1430.3" font-family="Times,serif" font-size="14.00" fill="#000000">Revert note commitment</text>
<text text-anchor="middle" x="703" y="-1415.3" font-family="Times,serif" font-size="14.00" fill="#000000">and history trees when</text>
<text text-anchor="middle" x="703" y="-1400.3" font-family="Times,serif" font-size="14.00" fill="#000000">forking non&#45;finalized</text>
<text text-anchor="middle" x="703" y="-1385.3" font-family="Times,serif" font-size="14.00" fill="#000000">chains</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4837 -->
<g id="node16" class="node open">
<title>ZcashFoundation/zebra#4837</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4837" xlink:title="ZcashFoundation/zebra#4837&#10;Store history trees by&#10;height in the non&#45;&#10;finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="531,-1453 299,-1453 299,-1385 531,-1385 531,-1453"/>
<text text-anchor="middle" x="415" y="-1437.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4837</text>
<text text-anchor="middle" x="415" y="-1422.8" font-family="Times,serif" font-size="14.00" fill="#000000">Store history trees by</text>
<text text-anchor="middle" x="415" y="-1407.8" font-family="Times,serif" font-size="14.00" fill="#000000">height in the non&#45;</text>
<text text-anchor="middle" x="415" y="-1392.8" font-family="Times,serif" font-size="14.00" fill="#000000">finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4837&#45;&gt;ZcashFoundation/zebra#4794 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#4837&#45;&gt;ZcashFoundation/zebra#4794</title>
<path fill="none" stroke="#000000" d="M531.31,-1419C546.15,-1419 561.4,-1419 576.39,-1419"/>
<polygon fill="#000000" stroke="#000000" points="576.72,-1422.5001 586.72,-1419 576.72,-1415.5001 576.72,-1422.5001"/>
</g>
<!-- ZcashFoundation/zebra#4774 -->
<g id="node17" class="node open">
<title>ZcashFoundation/zebra#4774</title>
<g id="a_node17"><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="531,-1366.5 299,-1366.5 299,-1283.5 531,-1283.5 531,-1366.5"/>
<text text-anchor="middle" x="415" y="-1351.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4774</text>
<text text-anchor="middle" x="415" y="-1336.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="415" y="-1321.3" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="415" y="-1306.3" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Orchard</text>
<text text-anchor="middle" x="415" y="-1291.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="edge3" class="edge">
<title>ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M531.31,-1284.2C560.22,-1274.1 590.67,-1263.4 617.77,-1253.9"/>
<polygon fill="#000000" stroke="#000000" points="618.9252,-1257.204 627.21,-1250.6 616.6152,-1250.5961 618.9252,-1257.204"/>
</g>
<!-- ZcashFoundation/zebra#4775 -->
<g id="node18" class="node open">
<title>ZcashFoundation/zebra#4775</title>
<g id="a_node18"><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="531,-1265.5 299,-1265.5 299,-1182.5 531,-1182.5 531,-1265.5"/>
<text text-anchor="middle" x="415" y="-1250.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4775</text>
<text text-anchor="middle" x="415" y="-1235.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="415" y="-1220.3" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="415" y="-1205.3" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Sapling</text>
<text text-anchor="middle" x="415" y="-1190.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="edge4" class="edge">
<title>ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M531.31,-1224C546.15,-1224 561.4,-1224 576.39,-1224"/>
<polygon fill="#000000" stroke="#000000" points="576.72,-1227.5001 586.72,-1224 576.72,-1220.5001 576.72,-1227.5001"/>
</g>
<!-- ZcashFoundation/zebra#4824 -->
<g id="node19" class="node open">
<title>ZcashFoundation/zebra#4824</title>
<g id="a_node19"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4824" xlink:title="ZcashFoundation/zebra#4824&#10;Send note commitment and&#10;history trees from the&#10;non&#45;finalized state to&#10;the finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="531,-1164.5 299,-1164.5 299,-1081.5 531,-1081.5 531,-1164.5"/>
<text text-anchor="middle" x="415" y="-1149.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4824</text>
<text text-anchor="middle" x="415" y="-1134.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send note commitment and</text>
<text text-anchor="middle" x="415" y="-1119.3" font-family="Times,serif" font-size="14.00" fill="#000000">history trees from the</text>
<text text-anchor="middle" x="415" y="-1104.3" font-family="Times,serif" font-size="14.00" fill="#000000">non&#45;finalized state to</text>
<text text-anchor="middle" x="415" y="-1089.3" font-family="Times,serif" font-size="14.00" fill="#000000">the finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4821 -->
<g id="node20" class="node open">
<title>ZcashFoundation/zebra#4821</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4821" xlink:title="ZcashFoundation/zebra#4821&#10;Open the database in a&#10;blocking tokio thread" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="531,-1063.5 299,-1063.5 299,-1010.5 531,-1010.5 531,-1063.5"/>
<text text-anchor="middle" x="415" y="-1048.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4821</text>
<text text-anchor="middle" x="415" y="-1033.3" font-family="Times,serif" font-size="14.00" fill="#000000">Open the database in a</text>
<text text-anchor="middle" x="415" y="-1018.3" font-family="Times,serif" font-size="14.00" fill="#000000">blocking tokio thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4789 -->
<g id="node21" class="node open">
<title>ZcashFoundation/zebra#4789</title>
<g id="a_node21"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4789" xlink:title="ZcashFoundation/zebra#4789&#10;Move CPU&#45;heavy proof&#10;preparation into the&#10;batch cryptography thread" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="531,-992 299,-992 299,-924 531,-924 531,-992"/>
<text text-anchor="middle" x="415" y="-976.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4789</text>
<text text-anchor="middle" x="415" y="-961.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move CPU&#45;heavy proof</text>
<text text-anchor="middle" x="415" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000">preparation into the</text>
<text text-anchor="middle" x="415" y="-931.8" font-family="Times,serif" font-size="14.00" fill="#000000">batch cryptography thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4612 -->
<g id="node22" class="node open">
<title>ZcashFoundation/zebra#4612</title>
<g id="a_node22"><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="#c2e0c6" stroke="#000000" points="819,-477 587,-477 587,-409 819,-409 819,-477"/>
<text text-anchor="middle" x="703" y="-461.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4612</text>
<text text-anchor="middle" x="703" y="-446.8" font-family="Times,serif" font-size="14.00" fill="#000000">ci: Wait for lightwalletd</text>
<text text-anchor="middle" x="703" y="-431.8" font-family="Times,serif" font-size="14.00" fill="#000000">image rebuild if it has</text>
<text text-anchor="middle" x="703" y="-416.8" font-family="Times,serif" font-size="14.00" fill="#000000">changed</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4350 -->
<g id="node23" class="node open">
<title>ZcashFoundation/zebra#4350</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4350" xlink:title="ZcashFoundation/zebra#4350&#10;Add GetMempoolTx gRPC&#10;test" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="819,-390.5 587,-390.5 587,-337.5 819,-337.5 819,-390.5"/>
<text text-anchor="middle" x="703" y="-375.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4350</text>
<text text-anchor="middle" x="703" y="-360.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add GetMempoolTx gRPC</text>
<text text-anchor="middle" x="703" y="-345.3" font-family="Times,serif" font-size="14.00" fill="#000000">test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271 -->
<g id="node24" class="node open">
<title>ZcashFoundation/zebra#271</title>
<g id="a_node24"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/271" xlink:title="ZcashFoundation/zebra#271&#10;Sapling/Orchard Key&#10;Agreement and KDF" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="235.5,-4682.5 12.5,-4682.5 12.5,-4629.5 235.5,-4629.5 235.5,-4682.5"/>
<text text-anchor="middle" x="124" y="-4667.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#271</text>
<text text-anchor="middle" x="124" y="-4652.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling/Orchard Key</text>
<text text-anchor="middle" x="124" y="-4637.3" font-family="Times,serif" font-size="14.00" fill="#000000">Agreement and KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269 -->
<g id="node25" class="node open">
<title>ZcashFoundation/zebra#269</title>
<g id="a_node25"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/269" xlink:title="ZcashFoundation/zebra#269&#10;Sapling/Orchard note&#10;encryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="526.5,-4611 303.5,-4611 303.5,-4543 526.5,-4543 526.5,-4611"/>
<text text-anchor="middle" x="415" y="-4595.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#269</text>
<text text-anchor="middle" x="415" y="-4580.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling/Orchard note</text>
<text text-anchor="middle" x="415" y="-4565.8" font-family="Times,serif" font-size="14.00" fill="#000000">encryption</text>
<text text-anchor="middle" x="415" y="-4550.8" font-family="Times,serif" font-size="14.00" fill="#000000">implementation.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269</title>
<path fill="none" stroke="#000000" d="M221.71,-4629.5C244.78,-4623.2 269.66,-4616.5 293.64,-4609.9"/>
<polygon fill="#000000" stroke="#000000" points="294.7144,-4613.2363 303.49,-4607.3 292.9279,-4606.4682 294.7144,-4613.2363"/>
</g>
<!-- ZcashFoundation/zebra#3002 -->
<g id="node26" class="node open">
<title>ZcashFoundation/zebra#3002</title>
<g id="a_node26"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3002" xlink:title="ZcashFoundation/zebra#3002&#10;Sapling note decryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-4682.5 299,-4682.5 299,-4629.5 531,-4629.5 531,-4682.5"/>
<text text-anchor="middle" x="415" y="-4667.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3002</text>
<text text-anchor="middle" x="415" y="-4652.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note decryption</text>
<text text-anchor="middle" x="415" y="-4637.3" font-family="Times,serif" font-size="14.00" fill="#000000">implementation.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#3002 -->
<g id="edge6" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#3002</title>
<path fill="none" stroke="#000000" d="M235.68,-4656C252.96,-4656 270.92,-4656 288.5,-4656"/>
<polygon fill="#000000" stroke="#000000" points="288.8,-4659.5001 298.8,-4656 288.8,-4652.5001 288.8,-4659.5001"/>
</g>
<!-- ZcashFoundation/zebra#325 -->
<g id="node27" class="node open">
<title>ZcashFoundation/zebra#325</title>
<g id="a_node27"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/325" xlink:title="ZcashFoundation/zebra#325&#10;Block Chain Scanning" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="235.5,-4611 12.5,-4611 12.5,-4573 235.5,-4573 235.5,-4611"/>
<text text-anchor="middle" x="124" y="-4595.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#325</text>
<text text-anchor="middle" x="124" y="-4580.8" font-family="Times,serif" font-size="14.00" fill="#000000">Block Chain Scanning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4691 -->
<g id="node28" class="node open">
<title>ZcashFoundation/zebra#4691</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4691" xlink:title="ZcashFoundation/zebra#4691&#10;Stop assuming testnet&#10;when parsing keys and&#10;addresses" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-4555 8,-4555 8,-4487 240,-4487 240,-4555"/>
<text text-anchor="middle" x="124" y="-4539.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4691</text>
<text text-anchor="middle" x="124" y="-4524.8" font-family="Times,serif" font-size="14.00" fill="#000000">Stop assuming testnet</text>
<text text-anchor="middle" x="124" y="-4509.8" font-family="Times,serif" font-size="14.00" fill="#000000">when parsing keys and</text>
<text text-anchor="middle" x="124" y="-4494.8" font-family="Times,serif" font-size="14.00" fill="#000000">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#267 -->
<g id="node29" class="node open">
<title>ZcashFoundation/zebra#267</title>
<g id="a_node29"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/267" xlink:title="ZcashFoundation/zebra#267&#10;Implement ZIP&#45;32 Sapling&#10;and Orchard key&#10;derivation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="235.5,-4469 12.5,-4469 12.5,-4401 235.5,-4401 235.5,-4469"/>
<text text-anchor="middle" x="124" y="-4453.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#267</text>
<text text-anchor="middle" x="124" y="-4438.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement ZIP&#45;32 Sapling</text>
<text text-anchor="middle" x="124" y="-4423.8" font-family="Times,serif" font-size="14.00" fill="#000000">and Orchard key</text>
<text text-anchor="middle" x="124" y="-4408.8" font-family="Times,serif" font-size="14.00" fill="#000000">derivation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2064 -->
<g id="node30" class="node open">
<title>ZcashFoundation/zebra#2064</title>
<g id="a_node30"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2064" xlink:title="ZcashFoundation/zebra#2064&#10;Import Poseidon hash into&#10;Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-4382.5 8,-4382.5 8,-4329.5 240,-4329.5 240,-4382.5"/>
<text text-anchor="middle" x="124" y="-4367.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2064</text>
<text text-anchor="middle" x="124" y="-4352.3" font-family="Times,serif" font-size="14.00" fill="#000000">Import Poseidon hash into</text>
<text text-anchor="middle" x="124" y="-4337.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2192 -->
<g id="node31" class="node open">
<title>ZcashFoundation/zebra#2192</title>
<g id="a_node31"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2192" xlink:title="ZcashFoundation/zebra#2192&#10;Implement&#10;`EphemeralPrivateKey`&#39;s&#10;for Orchard, Sapling,&#10;Sprout" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-4311.5 8,-4311.5 8,-4228.5 240,-4228.5 240,-4311.5"/>
<text text-anchor="middle" x="124" y="-4296.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2192</text>
<text text-anchor="middle" x="124" y="-4281.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement</text>
<text text-anchor="middle" x="124" y="-4266.3" font-family="Times,serif" font-size="14.00" fill="#000000">`EphemeralPrivateKey`&#39;s</text>
<text text-anchor="middle" x="124" y="-4251.3" font-family="Times,serif" font-size="14.00" fill="#000000">for Orchard, Sapling,</text>
<text text-anchor="middle" x="124" y="-4236.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sprout</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#181 -->
<g id="node32" class="node open">
<title>ZcashFoundation/zebra#181</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/181" xlink:title="ZcashFoundation/zebra#181&#10;Sprout note&#10;encryption/decryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="235.5,-4210 12.5,-4210 12.5,-4142 235.5,-4142 235.5,-4210"/>
<text text-anchor="middle" x="124" y="-4194.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#181</text>
<text text-anchor="middle" x="124" y="-4179.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sprout note</text>
<text text-anchor="middle" x="124" y="-4164.8" font-family="Times,serif" font-size="14.00" fill="#000000">encryption/decryption</text>
<text text-anchor="middle" x="124" y="-4149.8" font-family="Times,serif" font-size="14.00" fill="#000000">implementation.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#321 -->
<g id="node33" class="node open">
<title>ZcashFoundation/zebra#321</title>
<g id="a_node33"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/321" xlink:title="ZcashFoundation/zebra#321&#10;Create Output Proof" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="235.5,-4124 12.5,-4124 12.5,-4086 235.5,-4086 235.5,-4124"/>
<text text-anchor="middle" x="124" y="-4108.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#321</text>
<text text-anchor="middle" x="124" y="-4093.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create Output Proof</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#272 -->
<g id="node34" class="node open">
<title>ZcashFoundation/zebra#272</title>
<g id="a_node34"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/272" xlink:title="ZcashFoundation/zebra#272&#10;Sprout Key Agreement and&#10;KDF" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="235.5,-4067.5 12.5,-4067.5 12.5,-4014.5 235.5,-4014.5 235.5,-4067.5"/>
<text text-anchor="middle" x="124" y="-4052.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#272</text>
<text text-anchor="middle" x="124" y="-4037.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sprout Key Agreement and</text>
<text text-anchor="middle" x="124" y="-4022.3" font-family="Times,serif" font-size="14.00" fill="#000000">KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2496 -->
<g id="node35" class="node open">
<title>ZcashFoundation/zebra#2496</title>
<g id="a_node35"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2496" xlink:title="ZcashFoundation/zebra#2496&#10;Handle a ivk == ⊥&#10;(KA^Orchard private key)&#10;when generating an&#10;Orchard Spending Key" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-3996.5 8,-3996.5 8,-3913.5 240,-3913.5 240,-3996.5"/>
<text text-anchor="middle" x="124" y="-3981.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2496</text>
<text text-anchor="middle" x="124" y="-3966.3" font-family="Times,serif" font-size="14.00" fill="#000000">Handle a ivk == ⊥</text>
<text text-anchor="middle" x="124" y="-3951.3" font-family="Times,serif" font-size="14.00" fill="#000000">(KA^Orchard private key)</text>
<text text-anchor="middle" x="124" y="-3936.3" font-family="Times,serif" font-size="14.00" fill="#000000">when generating an</text>
<text text-anchor="middle" x="124" y="-3921.3" font-family="Times,serif" font-size="14.00" fill="#000000">Orchard Spending Key</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#278 -->
<g id="node36" class="node open">
<title>ZcashFoundation/zebra#278</title>
<g id="a_node36"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/278" xlink:title="ZcashFoundation/zebra#278&#10;Sapling Note Builder" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="235.5,-3895 12.5,-3895 12.5,-3857 235.5,-3857 235.5,-3895"/>
<text text-anchor="middle" x="124" y="-3879.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#278</text>
<text text-anchor="middle" x="124" y="-3864.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling Note Builder</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2447 -->
<g id="node37" class="node open">
<title>ZcashFoundation/zebra#2447</title>
<g id="a_node37"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2447" xlink:title="ZcashFoundation/zebra#2447&#10;Define a new `Amount`&#10;`Constraint` for Note&#10;values w/ [0..2^64) as&#10;`valid_range()`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-3838.5 8,-3838.5 8,-3755.5 240,-3755.5 240,-3838.5"/>
<text text-anchor="middle" x="124" y="-3823.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2447</text>
<text text-anchor="middle" x="124" y="-3808.3" font-family="Times,serif" font-size="14.00" fill="#000000">Define a new `Amount`</text>
<text text-anchor="middle" x="124" y="-3793.3" font-family="Times,serif" font-size="14.00" fill="#000000">`Constraint` for Note</text>
<text text-anchor="middle" x="124" y="-3778.3" font-family="Times,serif" font-size="14.00" fill="#000000">values w/ [0..2^64) as</text>
<text text-anchor="middle" x="124" y="-3763.3" font-family="Times,serif" font-size="14.00" fill="#000000">`valid_range()`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2041 -->
<g id="node38" class="node open">
<title>ZcashFoundation/zebra#2041</title>
<g id="a_node38"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2041" xlink:title="ZcashFoundation/zebra#2041&#10;Orchard: derive&#10;OutgoingCipherKey (&#10;Sapling and Orchard)" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-3737 8,-3737 8,-3669 240,-3669 240,-3737"/>
<text text-anchor="middle" x="124" y="-3721.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2041</text>
<text text-anchor="middle" x="124" y="-3706.8" font-family="Times,serif" font-size="14.00" fill="#000000">Orchard: derive</text>
<text text-anchor="middle" x="124" y="-3691.8" font-family="Times,serif" font-size="14.00" fill="#000000">OutgoingCipherKey (</text>
<text text-anchor="middle" x="124" y="-3676.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling and Orchard)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4692 -->
<g id="node39" class="node open">
<title>ZcashFoundation/zebra#4692</title>
<g id="a_node39"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4692" xlink:title="ZcashFoundation/zebra#4692&#10;Check address and key&#10;lengths when parsing&#10;strings" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-3651 8,-3651 8,-3583 240,-3583 240,-3651"/>
<text text-anchor="middle" x="124" y="-3635.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4692</text>
<text text-anchor="middle" x="124" y="-3620.8" font-family="Times,serif" font-size="14.00" fill="#000000">Check address and key</text>
<text text-anchor="middle" x="124" y="-3605.8" font-family="Times,serif" font-size="14.00" fill="#000000">lengths when parsing</text>
<text text-anchor="middle" x="124" y="-3590.8" font-family="Times,serif" font-size="14.00" fill="#000000">strings</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#320 -->
<g id="node40" class="node open">
<title>ZcashFoundation/zebra#320</title>
<g id="a_node40"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/320" xlink:title="ZcashFoundation/zebra#320&#10;Create a Spend Proof" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="235.5,-3565 12.5,-3565 12.5,-3527 235.5,-3527 235.5,-3565"/>
<text text-anchor="middle" x="124" y="-3549.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#320</text>
<text text-anchor="middle" x="124" y="-3534.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create a Spend Proof</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2080 -->
<g id="node41" class="node open">
<title>ZcashFoundation/zebra#2080</title>
<g id="a_node41"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2080" xlink:title="ZcashFoundation/zebra#2080&#10;[blocked on frost]&#10;replace`redpallas` module&#10;with `reddsa`/`redpallas`&#10;crate" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-3508.5 8,-3508.5 8,-3425.5 240,-3425.5 240,-3508.5"/>
<text text-anchor="middle" x="124" y="-3493.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2080</text>
<text text-anchor="middle" x="124" y="-3478.3" font-family="Times,serif" font-size="14.00" fill="#000000">[blocked on frost]</text>
<text text-anchor="middle" x="124" y="-3463.3" font-family="Times,serif" font-size="14.00" fill="#000000">replace`redpallas` module</text>
<text text-anchor="middle" x="124" y="-3448.3" font-family="Times,serif" font-size="14.00" fill="#000000">with `reddsa`/`redpallas`</text>
<text text-anchor="middle" x="124" y="-3433.3" font-family="Times,serif" font-size="14.00" fill="#000000">crate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2095 -->
<g id="node42" class="node open">
<title>ZcashFoundation/zebra#2095</title>
<g id="a_node42"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2095" xlink:title="ZcashFoundation/zebra#2095&#10;Orchard: update&#10;note/action generation to&#10;include input note&#10;nullifier in the&#10;PRF^expand invocations" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-3407 8,-3407 8,-3309 240,-3309 240,-3407"/>
<text text-anchor="middle" x="124" y="-3391.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2095</text>
<text text-anchor="middle" x="124" y="-3376.8" font-family="Times,serif" font-size="14.00" fill="#000000">Orchard: update</text>
<text text-anchor="middle" x="124" y="-3361.8" font-family="Times,serif" font-size="14.00" fill="#000000">note/action generation to</text>
<text text-anchor="middle" x="124" y="-3346.8" font-family="Times,serif" font-size="14.00" fill="#000000">include input note</text>
<text text-anchor="middle" x="124" y="-3331.8" font-family="Times,serif" font-size="14.00" fill="#000000">nullifier in the</text>
<text text-anchor="middle" x="124" y="-3316.8" font-family="Times,serif" font-size="14.00" fill="#000000">PRF^expand invocations</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2631 -->
<g id="node43" class="node open">
<title>ZcashFoundation/zebra#2631</title>
<g id="a_node43"><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="819,-3462 587,-3462 587,-3394 819,-3394 819,-3462"/>
<text text-anchor="middle" x="703" y="-3446.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2631</text>
<text text-anchor="middle" x="703" y="-3431.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send committed spent</text>
<text text-anchor="middle" x="703" y="-3416.8" font-family="Times,serif" font-size="14.00" fill="#000000">OutPoints &amp; nullifiers to</text>
<text text-anchor="middle" x="703" y="-3401.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool for rejection</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1894 -->
<g id="node44" class="node open">
<title>ZcashFoundation/zebra#1894</title>
<g id="a_node44"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1894" xlink:title="ZcashFoundation/zebra#1894&#10;Zebra should follow OS&#10;directory conventions&#10;better" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-3233 587,-3233 587,-3165 819,-3165 819,-3233"/>
<text text-anchor="middle" x="703" y="-3217.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1894</text>
<text text-anchor="middle" x="703" y="-3202.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should follow OS</text>
<text text-anchor="middle" x="703" y="-3187.8" font-family="Times,serif" font-size="14.00" fill="#000000">directory conventions</text>
<text text-anchor="middle" x="703" y="-3172.8" font-family="Times,serif" font-size="14.00" fill="#000000">better</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3432 -->
<g id="node45" class="node closed">
<title>ZcashFoundation/zebra#3432</title>
<g id="a_node45"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3432" xlink:title="ZcashFoundation/zebra#3432&#10;Use the Filesystem&#10;Hierarchy Standard (FHS)&#10;for deployments and&#10;artifacts" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="1111,-3244.5 879,-3244.5 879,-3161.5 1111,-3161.5 1111,-3244.5"/>
<text text-anchor="middle" x="995" y="-3229.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3432</text>
<text text-anchor="middle" x="995" y="-3214.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use the Filesystem</text>
<text text-anchor="middle" x="995" y="-3199.3" font-family="Times,serif" font-size="14.00" fill="#000000">Hierarchy Standard (FHS)</text>
<text text-anchor="middle" x="995" y="-3184.3" font-family="Times,serif" font-size="14.00" fill="#000000">for deployments and</text>
<text text-anchor="middle" x="995" y="-3169.3" font-family="Times,serif" font-size="14.00" fill="#000000">artifacts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1894&#45;&gt;ZcashFoundation/zebra#3432 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#1894&#45;&gt;ZcashFoundation/zebra#3432</title>
<path fill="none" stroke="#000000" d="M819.25,-3200.6C835.45,-3200.8 852.16,-3201 868.53,-3201.3"/>
<polygon fill="#000000" stroke="#000000" points="868.646,-3204.8012 878.68,-3201.4 868.715,-3197.8016 868.646,-3204.8012"/>
</g>
<!-- ZcashFoundation/zebra#3050 -->
<g id="node46" class="node open">
<title>ZcashFoundation/zebra#3050</title>
<g id="a_node46"><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" stroke-width="2" points="819,-3304.5 587,-3304.5 587,-3251.5 819,-3251.5 819,-3304.5"/>
<text text-anchor="middle" x="703" y="-3289.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3050</text>
<text text-anchor="middle" x="703" y="-3274.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="703" y="-3259.3" font-family="Times,serif" font-size="14.00" fill="#000000">stable release candidate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1904 -->
<g id="node47" class="node open">
<title>ZcashFoundation/zebra#1904</title>
<g id="a_node47"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1904" xlink:title="ZcashFoundation/zebra#1904&#10;Some DNS seeders and&#10;block explorers don&#39;t&#10;show Zebra nodes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1111,-3143 879,-3143 879,-3075 1111,-3075 1111,-3143"/>
<text text-anchor="middle" x="995" y="-3127.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1904</text>
<text text-anchor="middle" x="995" y="-3112.8" font-family="Times,serif" font-size="14.00" fill="#000000">Some DNS seeders and</text>
<text text-anchor="middle" x="995" y="-3097.8" font-family="Times,serif" font-size="14.00" fill="#000000">block explorers don&#39;t</text>
<text text-anchor="middle" x="995" y="-3082.8" font-family="Times,serif" font-size="14.00" fill="#000000">show Zebra nodes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M1111.4,-3109C1119.7,-3109 1128.1,-3109 1136.5,-3109"/>
<polygon fill="#000000" stroke="#000000" points="1136.7,-3112.5001 1146.7,-3109 1136.7,-3105.5001 1136.7,-3112.5001"/>
</g>
<!-- ZcashFoundation/zebra#4875 -->
<g id="node48" class="node open">
<title>ZcashFoundation/zebra#4875</title>
<g id="a_node48"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4875" xlink:title="ZcashFoundation/zebra#4875&#10;Send the state tip height&#10;in Version messages" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="819,-2802.5 587,-2802.5 587,-2749.5 819,-2749.5 819,-2802.5"/>
<text text-anchor="middle" x="703" y="-2787.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4875</text>
<text text-anchor="middle" x="703" y="-2772.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send the state tip height</text>
<text text-anchor="middle" x="703" y="-2757.3" font-family="Times,serif" font-size="14.00" fill="#000000">in Version messages</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4753 -->
<g id="node50" class="node open">
<title>ZcashFoundation/zebra#4753</title>
<g id="a_node50"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4753" xlink:title="ZcashFoundation/zebra#4753&#10;ci: Split deploy&#45;gcp&#45;&#10;tests workflow into&#10;multiple categories" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-3061 587,-3061 587,-2993 819,-2993 819,-3061"/>
<text text-anchor="middle" x="703" y="-3045.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4753</text>
<text text-anchor="middle" x="703" y="-3030.8" font-family="Times,serif" font-size="14.00" fill="#000000">ci: Split deploy&#45;gcp&#45;</text>
<text text-anchor="middle" x="703" y="-3015.8" font-family="Times,serif" font-size="14.00" fill="#000000">tests workflow into</text>
<text text-anchor="middle" x="703" y="-3000.8" font-family="Times,serif" font-size="14.00" fill="#000000">multiple categories</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4834 -->
<g id="node51" class="node open">
<title>ZcashFoundation/zebra#4834</title>
<g id="a_node51"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4834" xlink:title="ZcashFoundation/zebra#4834&#10;Switch zebrad to a non&#45;&#10;blocking tracing logger" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-3375.5 587,-3375.5 587,-3322.5 819,-3322.5 819,-3375.5"/>
<text text-anchor="middle" x="703" y="-3360.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4834</text>
<text text-anchor="middle" x="703" y="-3345.3" font-family="Times,serif" font-size="14.00" fill="#000000">Switch zebrad to a non&#45;</text>
<text text-anchor="middle" x="703" y="-3330.3" font-family="Times,serif" font-size="14.00" fill="#000000">blocking tracing logger</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3096 -->
<g id="node71" class="node open">
<title>ZcashFoundation/zebra#3096</title>
<g id="a_node71"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3096" xlink:title="ZcashFoundation/zebra#3096&#10;Epic: Zebra Stable&#10;Release Candidate" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1111,-3554.5 879,-3554.5 879,-3501.5 1111,-3501.5 1111,-3554.5"/>
<text text-anchor="middle" x="995" y="-3539.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3096</text>
<text text-anchor="middle" x="995" y="-3524.3" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra Stable</text>
<text text-anchor="middle" x="995" y="-3509.3" font-family="Times,serif" font-size="14.00" fill="#000000">Release Candidate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4834&#45;&gt;ZcashFoundation/zebra#3096 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#4834&#45;&gt;ZcashFoundation/zebra#3096</title>
<path fill="none" stroke="#000000" d="M819.15,-3363.8C830.94,-3369.1 841.9,-3376 851,-3385 885.12,-3418.9 848.25,-3455.5 876.92,-3493.6"/>
<polygon fill="#000000" stroke="#000000" points="874.3849,-3496.0194 883.57,-3501.3 879.6827,-3491.4441 874.3849,-3496.0194"/>
</g>
<!-- ZcashFoundation/zebra#4562 -->
<g id="node52" class="node open">
<title>ZcashFoundation/zebra#4562</title>
<g id="a_node52"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4562" xlink:title="ZcashFoundation/zebra#4562&#10;Deploy long&#45;running Zebra&#10;nodes after each tagged&#10;release" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-3147 587,-3147 587,-3079 819,-3079 819,-3147"/>
<text text-anchor="middle" x="703" y="-3131.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4562</text>
<text text-anchor="middle" x="703" y="-3116.8" font-family="Times,serif" font-size="14.00" fill="#000000">Deploy long&#45;running Zebra</text>
<text text-anchor="middle" x="703" y="-3101.8" font-family="Times,serif" font-size="14.00" fill="#000000">nodes after each tagged</text>
<text text-anchor="middle" x="703" y="-3086.8" font-family="Times,serif" font-size="14.00" fill="#000000">release</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4562&#45;&gt;ZcashFoundation/zebra#1904 -->
<g id="edge8" class="edge">
<title>ZcashFoundation/zebra#4562&#45;&gt;ZcashFoundation/zebra#1904</title>
<path fill="none" stroke="#000000" d="M819.25,-3111.4C835.45,-3111.2 852.16,-3111 868.53,-3110.7"/>
<polygon fill="#000000" stroke="#000000" points="868.715,-3114.1984 878.68,-3110.6 868.646,-3107.1988 868.715,-3114.1984"/>
</g>
<!-- ZcashFoundation/zebra#4733 -->
<g id="node53" class="node closed">
<title>ZcashFoundation/zebra#4733</title>
<g id="a_node53"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4733" xlink:title="ZcashFoundation/zebra#4733&#10;Return connection errors&#10;from the heartbeat task&#10;to the `Client`" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="819,-2889 587,-2889 587,-2821 819,-2821 819,-2889"/>
<text text-anchor="middle" x="703" y="-2873.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4733</text>
<text text-anchor="middle" x="703" y="-2858.8" font-family="Times,serif" font-size="14.00" fill="#000000">Return connection errors</text>
<text text-anchor="middle" x="703" y="-2843.8" font-family="Times,serif" font-size="14.00" fill="#000000">from the heartbeat task</text>
<text text-anchor="middle" x="703" y="-2828.8" font-family="Times,serif" font-size="14.00" fill="#000000">to the `Client`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4735 -->
<g id="node72" class="node open">
<title>ZcashFoundation/zebra#4735</title>
<g id="a_node72"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4735" xlink:title="ZcashFoundation/zebra#4735&#10;Remove the `ErrorSlot`&#10;type" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1111,-1671.5 879,-1671.5 879,-1618.5 1111,-1618.5 1111,-1671.5"/>
<text text-anchor="middle" x="995" y="-1656.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4735</text>
<text text-anchor="middle" x="995" y="-1641.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove the `ErrorSlot`</text>
<text text-anchor="middle" x="995" y="-1626.3" font-family="Times,serif" font-size="14.00" fill="#000000">type</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4733&#45;&gt;ZcashFoundation/zebra#4735 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#4733&#45;&gt;ZcashFoundation/zebra#4735</title>
<path fill="none" stroke="#000000" d="M819.34,-2837.4C831.58,-2831.2 842.59,-2822.9 851,-2812 926.24,-2714.3 806.73,-1818.6 877.25,-1680.4"/>
<polygon fill="#000000" stroke="#000000" points="880.2978,-1682.1282 882.66,-1671.8 874.3726,-1678.4008 880.2978,-1682.1282"/>
</g>
<!-- ZcashFoundation/zebra#4737 -->
<g id="node73" class="node closed">
<title>ZcashFoundation/zebra#4737</title>
<g id="a_node73"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4737" xlink:title="ZcashFoundation/zebra#4737&#10;Return detailed error&#10;information from the&#10;heartbeat task" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="1111,-1600 879,-1600 879,-1532 1111,-1532 1111,-1600"/>
<text text-anchor="middle" x="995" y="-1584.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4737</text>
<text text-anchor="middle" x="995" y="-1569.8" font-family="Times,serif" font-size="14.00" fill="#000000">Return detailed error</text>
<text text-anchor="middle" x="995" y="-1554.8" font-family="Times,serif" font-size="14.00" fill="#000000">information from the</text>
<text text-anchor="middle" x="995" y="-1539.8" font-family="Times,serif" font-size="14.00" fill="#000000">heartbeat task</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4733&#45;&gt;ZcashFoundation/zebra#4737 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#4733&#45;&gt;ZcashFoundation/zebra#4737</title>
<path fill="none" stroke="#000000" d="M819,-2837.6C831.37,-2831.4 842.52,-2823 851,-2812 932.45,-2706.1 801.84,-1719.1 879,-1610 879.54,-1609.2 880.1,-1608.5 880.68,-1607.7"/>
<polygon fill="#000000" stroke="#000000" points="883.2573,-1610.0682 887.36,-1600.3 878.0612,-1605.3777 883.2573,-1610.0682"/>
</g>
<!-- ZcashFoundation/zebra#4734 -->
<g id="node54" class="node open">
<title>ZcashFoundation/zebra#4734</title>
<g id="a_node54"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4734" xlink:title="ZcashFoundation/zebra#4734&#10;Return errors from&#10;`Connection` methods to&#10;the `Client`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="819,-2975 587,-2975 587,-2907 819,-2907 819,-2975"/>
<text text-anchor="middle" x="703" y="-2959.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4734</text>
<text text-anchor="middle" x="703" y="-2944.8" font-family="Times,serif" font-size="14.00" fill="#000000">Return errors from</text>
<text text-anchor="middle" x="703" y="-2929.8" font-family="Times,serif" font-size="14.00" fill="#000000">`Connection` methods to</text>
<text text-anchor="middle" x="703" y="-2914.8" font-family="Times,serif" font-size="14.00" fill="#000000">the `Client`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4734&#45;&gt;ZcashFoundation/zebra#4735 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#4734&#45;&gt;ZcashFoundation/zebra#4735</title>
<path fill="none" stroke="#000000" d="M819.01,-2923.6C831.38,-2917.4 842.52,-2909 851,-2898 891.02,-2846 840.6,-1802.2 878.44,-1680.9"/>
<polygon fill="#000000" stroke="#000000" points="881.6281,-1682.3445 882.66,-1671.8 875.2777,-1679.3995 881.6281,-1682.3445"/>
</g>
<!-- ZcashFoundation/zebra#4684 -->
<g id="node55" class="node open">
<title>ZcashFoundation/zebra#4684</title>
<g id="a_node55"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4684" xlink:title="ZcashFoundation/zebra#4684&#10;Test that every old&#10;zebrad.toml config still&#10;works" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-2645 587,-2645 587,-2577 819,-2577 819,-2645"/>
<text text-anchor="middle" x="703" y="-2629.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4684</text>
<text text-anchor="middle" x="703" y="-2614.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test that every old</text>
<text text-anchor="middle" x="703" y="-2599.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad.toml config still</text>
<text text-anchor="middle" x="703" y="-2584.8" font-family="Times,serif" font-size="14.00" fill="#000000">works</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4778 -->
<g id="node56" class="node open">
<title>ZcashFoundation/zebra#4778</title>
<g id="a_node56"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4778" xlink:title="ZcashFoundation/zebra#4778&#10;Replace old release&#10;criteria with stable&#10;release candidate&#10;criteria in docs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-2558.5 587,-2558.5 587,-2475.5 819,-2475.5 819,-2558.5"/>
<text text-anchor="middle" x="703" y="-2543.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4778</text>
<text text-anchor="middle" x="703" y="-2528.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace old release</text>
<text text-anchor="middle" x="703" y="-2513.3" font-family="Times,serif" font-size="14.00" fill="#000000">criteria with stable</text>
<text text-anchor="middle" x="703" y="-2498.3" font-family="Times,serif" font-size="14.00" fill="#000000">release candidate</text>
<text text-anchor="middle" x="703" y="-2483.3" font-family="Times,serif" font-size="14.00" fill="#000000">criteria in docs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4677 -->
<g id="node57" class="node open">
<title>ZcashFoundation/zebra#4677</title>
<g id="a_node57"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4677" xlink:title="ZcashFoundation/zebra#4677&#10;Various tests sometimes&#10;fail" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-2457.5 587,-2457.5 587,-2404.5 819,-2404.5 819,-2457.5"/>
<text text-anchor="middle" x="703" y="-2442.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4677</text>
<text text-anchor="middle" x="703" y="-2427.3" font-family="Times,serif" font-size="14.00" fill="#000000">Various tests sometimes</text>
<text text-anchor="middle" x="703" y="-2412.3" font-family="Times,serif" font-size="14.00" fill="#000000">fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1621 -->
<g id="node58" class="node open">
<title>ZcashFoundation/zebra#1621</title>
<g id="a_node58"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1621" xlink:title="ZcashFoundation/zebra#1621&#10;Run `zebrad start` by&#10;default" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-2386.5 587,-2386.5 587,-2333.5 819,-2333.5 819,-2386.5"/>
<text text-anchor="middle" x="703" y="-2371.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1621</text>
<text text-anchor="middle" x="703" y="-2356.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run `zebrad start` by</text>
<text text-anchor="middle" x="703" y="-2341.3" font-family="Times,serif" font-size="14.00" fill="#000000">default</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4295 -->
<g id="node59" class="node open">
<title>ZcashFoundation/zebra#4295</title>
<g id="a_node59"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4295" xlink:title="ZcashFoundation/zebra#4295&#10;Truncate branch name when&#10;used in Google Cloud&#10;names" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-2315 587,-2315 587,-2247 819,-2247 819,-2315"/>
<text text-anchor="middle" x="703" y="-2299.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4295</text>
<text text-anchor="middle" x="703" y="-2284.8" font-family="Times,serif" font-size="14.00" fill="#000000">Truncate branch name when</text>
<text text-anchor="middle" x="703" y="-2269.8" font-family="Times,serif" font-size="14.00" fill="#000000">used in Google Cloud</text>
<text text-anchor="middle" x="703" y="-2254.8" font-family="Times,serif" font-size="14.00" fill="#000000">names</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1638 -->
<g id="node60" class="node open">
<title>ZcashFoundation/zebra#1638</title>
<g id="a_node60"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1638" xlink:title="ZcashFoundation/zebra#1638&#10;Create PGP keys amongst&#10;security@zfnd.org" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-2228.5 587,-2228.5 587,-2175.5 819,-2175.5 819,-2228.5"/>
<text text-anchor="middle" x="703" y="-2213.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1638</text>
<text text-anchor="middle" x="703" y="-2198.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create PGP keys amongst</text>
<text text-anchor="middle" x="703" y="-2183.3" font-family="Times,serif" font-size="14.00" fill="#000000">security@zfnd.org</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4822 -->
<g id="node61" class="node open">
<title>ZcashFoundation/zebra#4822</title>
<g id="a_node61"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4822" xlink:title="ZcashFoundation/zebra#4822&#10;Speed up opening the&#10;database" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-2157.5 587,-2157.5 587,-2104.5 819,-2104.5 819,-2157.5"/>
<text text-anchor="middle" x="703" y="-2142.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4822</text>
<text text-anchor="middle" x="703" y="-2127.3" font-family="Times,serif" font-size="14.00" fill="#000000">Speed up opening the</text>
<text text-anchor="middle" x="703" y="-2112.3" font-family="Times,serif" font-size="14.00" fill="#000000">database</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3757 -->
<g id="node62" class="node open">
<title>ZcashFoundation/zebra#3757</title>
<g id="a_node62"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3757" xlink:title="ZcashFoundation/zebra#3757&#10;De&#45;duplicate note&#10;commitment trees in the&#10;finalized and non&#45;&#10;finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-2086.5 587,-2086.5 587,-2003.5 819,-2003.5 819,-2086.5"/>
<text text-anchor="middle" x="703" y="-2071.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3757</text>
<text text-anchor="middle" x="703" y="-2056.3" font-family="Times,serif" font-size="14.00" fill="#000000">De&#45;duplicate note</text>
<text text-anchor="middle" x="703" y="-2041.3" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees in the</text>
<text text-anchor="middle" x="703" y="-2026.3" font-family="Times,serif" font-size="14.00" fill="#000000">finalized and non&#45;</text>
<text text-anchor="middle" x="703" y="-2011.3" font-family="Times,serif" font-size="14.00" fill="#000000">finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1615 -->
<g id="node63" class="node open">
<title>ZcashFoundation/zebra#1615</title>
<g id="a_node63"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1615" xlink:title="ZcashFoundation/zebra#1615&#10;Zebra stable download&#10;should be linked from&#10;ZFND website" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-1985 587,-1985 587,-1917 819,-1917 819,-1985"/>
<text text-anchor="middle" x="703" y="-1969.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1615</text>
<text text-anchor="middle" x="703" y="-1954.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra stable download</text>
<text text-anchor="middle" x="703" y="-1939.8" font-family="Times,serif" font-size="14.00" fill="#000000">should be linked from</text>
<text text-anchor="middle" x="703" y="-1924.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZFND website</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4678 -->
<g id="node64" class="node open">
<title>ZcashFoundation/zebra#4678</title>
<g id="a_node64"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4678" xlink:title="ZcashFoundation/zebra#4678&#10;Return peer metadata from&#10;`connect_isolated`&#10;functions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-1899 587,-1899 587,-1831 819,-1831 819,-1899"/>
<text text-anchor="middle" x="703" y="-1883.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4678</text>
<text text-anchor="middle" x="703" y="-1868.8" font-family="Times,serif" font-size="14.00" fill="#000000">Return peer metadata from</text>
<text text-anchor="middle" x="703" y="-1853.8" font-family="Times,serif" font-size="14.00" fill="#000000">`connect_isolated`</text>
<text text-anchor="middle" x="703" y="-1838.8" font-family="Times,serif" font-size="14.00" fill="#000000">functions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2001 -->
<g id="node65" class="node open">
<title>ZcashFoundation/zebra#2001</title>
<g id="a_node65"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2001" xlink:title="ZcashFoundation/zebra#2001&#10;Write a draft security&#10;triage RFC" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-1812.5 587,-1812.5 587,-1759.5 819,-1759.5 819,-1812.5"/>
<text text-anchor="middle" x="703" y="-1797.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2001</text>
<text text-anchor="middle" x="703" y="-1782.3" font-family="Times,serif" font-size="14.00" fill="#000000">Write a draft security</text>
<text text-anchor="middle" x="703" y="-1767.3" font-family="Times,serif" font-size="14.00" fill="#000000">triage RFC</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4591 -->
<g id="node66" class="node open">
<title>ZcashFoundation/zebra#4591</title>
<g id="a_node66"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4591" xlink:title="ZcashFoundation/zebra#4591&#10;Fix timeout not being&#10;enforced by sync_until" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="819,-1741.5 587,-1741.5 587,-1688.5 819,-1688.5 819,-1741.5"/>
<text text-anchor="middle" x="703" y="-1726.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4591</text>
<text text-anchor="middle" x="703" y="-1711.3" font-family="Times,serif" font-size="14.00" fill="#000000">Fix timeout not being</text>
<text text-anchor="middle" x="703" y="-1696.3" font-family="Times,serif" font-size="14.00" fill="#000000">enforced by sync_until</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2971 -->
<g id="node67" class="node open">
<title>ZcashFoundation/zebra#2971</title>
<g id="a_node67"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2971" xlink:title="ZcashFoundation/zebra#2971&#10;Fix crawler.rs doctest" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-3262 8,-3262 8,-3224 240,-3224 240,-3262"/>
<text text-anchor="middle" x="124" y="-3246.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2971</text>
<text text-anchor="middle" x="124" y="-3231.8" font-family="Times,serif" font-size="14.00" fill="#000000">Fix crawler.rs doctest</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1963 -->
<g id="node68" class="node open">
<title>ZcashFoundation/zebra#1963</title>
<g id="a_node68"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1963" xlink:title="ZcashFoundation/zebra#1963&#10;Work out how to release&#10;Zebra binaries" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-3205.5 8,-3205.5 8,-3152.5 240,-3152.5 240,-3205.5"/>
<text text-anchor="middle" x="124" y="-3190.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1963</text>
<text text-anchor="middle" x="124" y="-3175.3" font-family="Times,serif" font-size="14.00" fill="#000000">Work out how to release</text>
<text text-anchor="middle" x="124" y="-3160.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra binaries</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#755 -->
<g id="node74" class="node open">
<title>ZcashFoundation/zebra#755</title>
<g id="a_node74"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/755" xlink:title="ZcashFoundation/zebra#755&#10;Automate zebrad releases" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="526.5,-3269 303.5,-3269 303.5,-3231 526.5,-3231 526.5,-3269"/>
<text text-anchor="middle" x="415" y="-3253.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#755</text>
<text text-anchor="middle" x="415" y="-3238.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automate zebrad releases</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#755 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#755</title>
<path fill="none" stroke="#000000" d="M217.6,-3205.6C227.88,-3208.7 238.18,-3211.9 248,-3215 256.97,-3217.9 258.9,-3219.6 268,-3222 276.94,-3224.4 286.24,-3226.7 295.62,-3228.8"/>
<polygon fill="#000000" stroke="#000000" points="294.8962,-3232.2245 305.42,-3231 296.4295,-3225.3945 294.8962,-3232.2245"/>
</g>
<!-- ZcashFoundation/zebra#2564 -->
<g id="node75" class="node open">
<title>ZcashFoundation/zebra#2564</title>
<g id="a_node75"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2564" xlink:title="ZcashFoundation/zebra#2564&#10;Include git metadata in&#10;docker logs and Google&#10;Cloud panic reports" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-3213 299,-3213 299,-3145 531,-3145 531,-3213"/>
<text text-anchor="middle" x="415" y="-3197.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2564</text>
<text text-anchor="middle" x="415" y="-3182.8" font-family="Times,serif" font-size="14.00" fill="#000000">Include git metadata in</text>
<text text-anchor="middle" x="415" y="-3167.8" font-family="Times,serif" font-size="14.00" fill="#000000">docker logs and Google</text>
<text text-anchor="middle" x="415" y="-3152.8" font-family="Times,serif" font-size="14.00" fill="#000000">Cloud panic reports</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#2564 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#2564</title>
<path fill="none" stroke="#000000" d="M240.27,-3179C256.26,-3179 272.75,-3179 288.91,-3179"/>
<polygon fill="#000000" stroke="#000000" points="288.92,-3182.5001 298.92,-3179 288.92,-3175.5001 288.92,-3182.5001"/>
</g>
<!-- ZcashFoundation/zebra#4412 -->
<g id="node76" class="node open">
<title>ZcashFoundation/zebra#4412</title>
<g id="a_node76"><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" points="531,-3127 299,-3127 299,-3059 531,-3059 531,-3127"/>
<text text-anchor="middle" x="415" y="-3111.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4412</text>
<text text-anchor="middle" x="415" y="-3096.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automate pinning CI</text>
<text text-anchor="middle" x="415" y="-3081.8" font-family="Times,serif" font-size="14.00" fill="#000000">dependencies to specific</text>
<text text-anchor="middle" x="415" y="-3066.8" font-family="Times,serif" font-size="14.00" fill="#000000">commit hashes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#4412 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#4412</title>
<path fill="none" stroke="#000000" d="M217.6,-3152.4C227.88,-3149.3 238.18,-3146.1 248,-3143 256.97,-3140.1 259.03,-3138.9 268,-3136 274.88,-3133.8 281.95,-3131.6 289.09,-3129.4"/>
<polygon fill="#000000" stroke="#000000" points="290.3443,-3132.6764 298.88,-3126.4 288.2934,-3125.9835 290.3443,-3132.6764"/>
</g>
<!-- ZcashFoundation/zebra#2972 -->
<g id="node69" class="node open">
<title>ZcashFoundation/zebra#2972</title>
<g id="a_node69"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2972" xlink:title="ZcashFoundation/zebra#2972&#10;Make it easy for users to&#10;discover how to configure&#10;Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-3134 8,-3134 8,-3066 240,-3066 240,-3134"/>
<text text-anchor="middle" x="124" y="-3118.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2972</text>
<text text-anchor="middle" x="124" y="-3103.8" font-family="Times,serif" font-size="14.00" fill="#000000">Make it easy for users to</text>
<text text-anchor="middle" x="124" y="-3088.8" font-family="Times,serif" font-size="14.00" fill="#000000">discover how to configure</text>
<text text-anchor="middle" x="124" y="-3073.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2740 -->
<g id="node70" class="node open">
<title>ZcashFoundation/zebra#2740</title>
<g id="a_node70"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2740" xlink:title="ZcashFoundation/zebra#2740&#10;Documentation: link to&#10;Zebra architecture blog&#10;posts in zebrad overview&#10;for devs in the book" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-3047.5 8,-3047.5 8,-2964.5 240,-2964.5 240,-3047.5"/>
<text text-anchor="middle" x="124" y="-3032.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2740</text>
<text text-anchor="middle" x="124" y="-3017.3" font-family="Times,serif" font-size="14.00" fill="#000000">Documentation: link to</text>
<text text-anchor="middle" x="124" y="-3002.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra architecture blog</text>
<text text-anchor="middle" x="124" y="-2987.3" font-family="Times,serif" font-size="14.00" fill="#000000">posts in zebrad overview</text>
<text text-anchor="middle" x="124" y="-2972.3" font-family="Times,serif" font-size="14.00" fill="#000000">for devs in the book</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3247 -->
<g id="node77" class="node open">
<title>ZcashFoundation/zebra#3247</title>
<g id="a_node77"><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="240,-4775.5 8,-4775.5 8,-4722.5 240,-4722.5 240,-4775.5"/>
<text text-anchor="middle" x="124" y="-4760.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3247</text>
<text text-anchor="middle" x="124" y="-4745.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: Questions for</text>
<text text-anchor="middle" x="124" y="-4730.3" font-family="Times,serif" font-size="14.00" fill="#000000">Network Audit</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4767 -->
<g id="node78" class="node open">
<title>ZcashFoundation/zebra#4767</title>
<g id="a_node78"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4767" xlink:title="ZcashFoundation/zebra#4767&#10;Remove duplicate&#10;`orchard` crates, change&#10;dependencies to&#10;`zcash/librustzcash`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-867.5 299,-867.5 299,-784.5 531,-784.5 531,-867.5"/>
<text text-anchor="middle" x="415" y="-852.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4767</text>
<text text-anchor="middle" x="415" y="-837.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove duplicate</text>
<text text-anchor="middle" x="415" y="-822.3" font-family="Times,serif" font-size="14.00" fill="#000000">`orchard` crates, change</text>
<text text-anchor="middle" x="415" y="-807.3" font-family="Times,serif" font-size="14.00" fill="#000000">dependencies to</text>
<text text-anchor="middle" x="415" y="-792.3" font-family="Times,serif" font-size="14.00" fill="#000000">`zcash/librustzcash`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4745 -->
<g id="node79" class="node closed">
<title>ZcashFoundation/zebra#4745</title>
<g id="a_node79"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4745" xlink:title="ZcashFoundation/zebra#4745&#10;Broken, half&#45;done support&#10;for halo2 batch&#10;verification" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="819,-884 587,-884 587,-880 583,-880 583,-876 587,-876 587,-824 583,-824 583,-820 587,-820 587,-816 819,-816 819,-884"/>
<polyline fill="none" stroke="#000000" points="587,-880 591,-880 591,-876 587,-876 "/>
<polyline fill="none" stroke="#000000" points="587,-824 591,-824 591,-820 587,-820 "/>
<text text-anchor="middle" x="703" y="-868.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4745</text>
<text text-anchor="middle" x="703" y="-853.8" font-family="Times,serif" font-size="14.00" fill="#000000">Broken, half&#45;done support</text>
<text text-anchor="middle" x="703" y="-838.8" font-family="Times,serif" font-size="14.00" fill="#000000">for halo2 batch</text>
<text text-anchor="middle" x="703" y="-823.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4767&#45;&gt;ZcashFoundation/zebra#4745 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#4767&#45;&gt;ZcashFoundation/zebra#4745</title>
<path fill="none" stroke="#000000" d="M531.31,-835.69C546.15,-836.93 561.4,-838.2 576.39,-839.45"/>
<polygon fill="#000000" stroke="#000000" points="576.4641,-842.9682 586.72,-840.31 577.0449,-835.9923 576.4641,-842.9682"/>
</g>
<!-- ZcashFoundation/zebra#4672 -->
<g id="node80" class="node open">
<title>ZcashFoundation/zebra#4672</title>
<g id="a_node80"><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" points="819,-797.5 587,-797.5 587,-744.5 819,-744.5 819,-797.5"/>
<text text-anchor="middle" x="703" y="-782.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4672</text>
<text text-anchor="middle" x="703" y="-767.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for Orchard</text>
<text text-anchor="middle" x="703" y="-752.3" font-family="Times,serif" font-size="14.00" fill="#000000">proof batch verification</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4767&#45;&gt;ZcashFoundation/zebra#4672 -->
<g id="edge19" class="edge">
<title>ZcashFoundation/zebra#4767&#45;&gt;ZcashFoundation/zebra#4672</title>
<path fill="none" stroke="#000000" d="M531.31,-803.79C546.29,-800.93 561.69,-797.99 576.83,-795.1"/>
<polygon fill="#000000" stroke="#000000" points="577.5547,-798.5249 586.72,-793.21 576.2407,-791.6493 577.5547,-798.5249"/>
</g>
<!-- ZcashFoundation/zebra#4910 -->
<g id="node81" class="node open">
<title>ZcashFoundation/zebra#4910</title>
<g id="a_node81"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4910" xlink:title="ZcashFoundation/zebra#4910&#10;Quick fix for sync test&#10;timeouts in CI" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="240,-751.5 8,-751.5 8,-698.5 240,-698.5 240,-751.5"/>
<text text-anchor="middle" x="124" y="-736.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4910</text>
<text text-anchor="middle" x="124" y="-721.3" font-family="Times,serif" font-size="14.00" fill="#000000">Quick fix for sync test</text>
<text text-anchor="middle" x="124" y="-706.3" font-family="Times,serif" font-size="14.00" fill="#000000">timeouts in CI</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M141,-751.76C164.79,-786.71 211.49,-846.87 268,-876 376.16,-931.76 439.46,-845 539,-915 633.78,-981.66 678.38,-1120.6 694.95,-1187"/>
<polygon fill="#000000" stroke="#000000" points="691.6362,-1188.1908 697.37,-1197.1 698.4435,-1186.5597 691.6362,-1188.1908"/>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4831 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4831</title>
<path fill="none" stroke="#000000" d="M124.89,-751.73C129.73,-880.9 156.87,-1439.3 268,-1564 274.3,-1571.1 281.7,-1577 289.76,-1582"/>
<polygon fill="#000000" stroke="#000000" points="288.3003,-1585.1932 298.74,-1587 291.7057,-1579.0773 288.3003,-1585.1932"/>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4721 -->
<g id="edge23" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4721</title>
<path fill="none" stroke="#000000" d="M125.73,-751.9C133.91,-871.24 172.39,-1351.9 268,-1462 274.37,-1469.3 281.86,-1475.6 290.02,-1481"/>
<polygon fill="#000000" stroke="#000000" points="288.3945,-1484.1075 298.76,-1486.3 292.0242,-1478.122 288.3945,-1484.1075"/>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4612 -->
<g id="edge24" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4612</title>
<path fill="none" stroke="#000000" d="M240.05,-741.82C344.94,-754.63 490.17,-765.67 539,-737 631.52,-682.67 675.68,-555.08 693.26,-487.23"/>
<polygon fill="#000000" stroke="#000000" points="696.7201,-487.8212 695.76,-477.27 689.9307,-486.117 696.7201,-487.8212"/>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4875 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4875</title>
<path fill="none" stroke="#000000" d="M126.14,-751.79C138.2,-899.4 199.47,-1609.2 268,-1676 354.92,-1760.7 457.81,-1619.8 539,-1710 577.28,-1752.5 523.34,-2695.2 559,-2740 564.42,-2746.8 570.92,-2752.4 578.12,-2757.1"/>
<polygon fill="#000000" stroke="#000000" points="576.4511,-2760.1774 586.87,-2762.1 579.9241,-2754.0997 576.4511,-2760.1774"/>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4767 -->
<g id="edge25" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4767</title>
<path fill="none" stroke="#000000" d="M200.46,-751.54C227.58,-760.95 258.87,-771.81 289.02,-782.28"/>
<polygon fill="#000000" stroke="#000000" points="288.1652,-785.6881 298.76,-785.66 290.4601,-779.0749 288.1652,-785.6881"/>
</g>
<!-- ZcashFoundation/zebra#4909 -->
<g id="node82" class="node open">
<title>ZcashFoundation/zebra#4909</title>
<g id="a_node82"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4909" xlink:title="ZcashFoundation/zebra#4909&#10;Checkpoint note&#10;commitment trees and&#10;roots" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-728 299,-728 299,-660 531,-660 531,-728"/>
<text text-anchor="middle" x="415" y="-712.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4909</text>
<text text-anchor="middle" x="415" y="-697.8" font-family="Times,serif" font-size="14.00" fill="#000000">Checkpoint note</text>
<text text-anchor="middle" x="415" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees and</text>
<text text-anchor="middle" x="415" y="-667.8" font-family="Times,serif" font-size="14.00" fill="#000000">roots</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4909 -->
<g id="edge26" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4909</title>
<path fill="none" stroke="#000000" d="M240.27,-712.61C256.26,-710.91 272.75,-709.15 288.91,-707.43"/>
<polygon fill="#000000" stroke="#000000" points="289.3442,-710.9037 298.92,-706.37 288.607,-703.9426 289.3442,-710.9037"/>
</g>
<!-- ZcashFoundation/zebra#4904 -->
<g id="node83" class="node open">
<title>ZcashFoundation/zebra#4904</title>
<g id="a_node83"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4904" xlink:title="ZcashFoundation/zebra#4904&#10;fix(network): send height&#10;to peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-641.5 299,-641.5 299,-637.5 295,-637.5 295,-633.5 299,-633.5 299,-596.5 295,-596.5 295,-592.5 299,-592.5 299,-588.5 531,-588.5 531,-641.5"/>
<polyline fill="none" stroke="#000000" points="299,-637.5 303,-637.5 303,-633.5 299,-633.5 "/>
<polyline fill="none" stroke="#000000" points="299,-596.5 303,-596.5 303,-592.5 299,-592.5 "/>
<text text-anchor="middle" x="415" y="-626.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4904</text>
<text text-anchor="middle" x="415" y="-611.3" font-family="Times,serif" font-size="14.00" fill="#000000">fix(network): send height</text>
<text text-anchor="middle" x="415" y="-596.3" font-family="Times,serif" font-size="14.00" fill="#000000">to peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4904 -->
<g id="edge27" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4904</title>
<path fill="none" stroke="#000000" d="M169.12,-698.34C196.89,-682.81 233.64,-663.83 268,-651 274.77,-648.47 281.78,-646.07 288.9,-643.8"/>
<polygon fill="#000000" stroke="#000000" points="290.1497,-647.0772 298.67,-640.78 288.0824,-640.3894 290.1497,-647.0772"/>
</g>
<!-- ZcashFoundation/zebra#4902 -->
<g id="node84" class="node closed">
<title>ZcashFoundation/zebra#4902</title>
<g id="a_node84"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4902" xlink:title="ZcashFoundation/zebra#4902&#10;build(deps): bump serde&#10;from 1.0.142 to 1.0.143" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="531,-570.5 299,-570.5 299,-566.5 295,-566.5 295,-562.5 299,-562.5 299,-525.5 295,-525.5 295,-521.5 299,-521.5 299,-517.5 531,-517.5 531,-570.5"/>
<polyline fill="none" stroke="#000000" points="299,-566.5 303,-566.5 303,-562.5 299,-562.5 "/>
<polyline fill="none" stroke="#000000" points="299,-525.5 303,-525.5 303,-521.5 299,-521.5 "/>
<text text-anchor="middle" x="415" y="-555.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4902</text>
<text text-anchor="middle" x="415" y="-540.3" font-family="Times,serif" font-size="14.00" fill="#000000">build(deps): bump serde</text>
<text text-anchor="middle" x="415" y="-525.3" font-family="Times,serif" font-size="14.00" fill="#000000">from 1.0.142 to 1.0.143</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4902 -->
<g id="edge28" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4902</title>
<path fill="none" stroke="#000000" d="M142.67,-698.44C167.44,-665.28 214.34,-609.23 268,-579 274.75,-575.2 281.9,-571.81 289.26,-568.78"/>
<polygon fill="#000000" stroke="#000000" points="290.6225,-572.006 298.7,-565.15 288.1101,-565.4724 290.6225,-572.006"/>
</g>
<!-- ZcashFoundation/zebra#4870 -->
<g id="node85" class="node open">
<title>ZcashFoundation/zebra#4870</title>
<g id="a_node85"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4870" xlink:title="ZcashFoundation/zebra#4870&#10;feat(net): return peer&#10;metadata from&#10;`connect_isolated`&#10;functions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-499.5 299,-499.5 299,-495.5 295,-495.5 295,-491.5 299,-491.5 299,-424.5 295,-424.5 295,-420.5 299,-420.5 299,-416.5 531,-416.5 531,-499.5"/>
<polyline fill="none" stroke="#000000" points="299,-495.5 303,-495.5 303,-491.5 299,-491.5 "/>
<polyline fill="none" stroke="#000000" points="299,-424.5 303,-424.5 303,-420.5 299,-420.5 "/>
<text text-anchor="middle" x="415" y="-484.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4870</text>
<text text-anchor="middle" x="415" y="-469.3" font-family="Times,serif" font-size="14.00" fill="#000000">feat(net): return peer</text>
<text text-anchor="middle" x="415" y="-454.3" font-family="Times,serif" font-size="14.00" fill="#000000">metadata from</text>
<text text-anchor="middle" x="415" y="-439.3" font-family="Times,serif" font-size="14.00" fill="#000000">`connect_isolated`</text>
<text text-anchor="middle" x="415" y="-424.3" font-family="Times,serif" font-size="14.00" fill="#000000">functions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4870 -->
<g id="edge29" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4870</title>
<path fill="none" stroke="#000000" d="M134.83,-698.18C154.57,-652.59 200.66,-559.87 268,-508 274.75,-502.8 282.08,-498.12 289.74,-493.91"/>
<polygon fill="#000000" stroke="#000000" points="291.6009,-496.8878 298.87,-489.18 288.3808,-490.6724 291.6009,-496.8878"/>
</g>
<!-- ZcashFoundation/zebra#4894 -->
<g id="node86" class="node open">
<title>ZcashFoundation/zebra#4894</title>
<g id="a_node86"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4894" xlink:title="ZcashFoundation/zebra#4894&#10;Wait until lightwalletd&#10;full sync goes all the&#10;way to the tip" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-398 299,-398 299,-330 531,-330 531,-398"/>
<text text-anchor="middle" x="415" y="-382.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4894</text>
<text text-anchor="middle" x="415" y="-367.8" font-family="Times,serif" font-size="14.00" fill="#000000">Wait until lightwalletd</text>
<text text-anchor="middle" x="415" y="-352.8" font-family="Times,serif" font-size="14.00" fill="#000000">full sync goes all the</text>
<text text-anchor="middle" x="415" y="-337.8" font-family="Times,serif" font-size="14.00" fill="#000000">way to the tip</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4894 -->
<g id="edge30" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4894</title>
<path fill="none" stroke="#000000" d="M128.35,-698.33C139.71,-637.36 176.02,-486.87 268,-407 274.64,-401.24 282.01,-396.24 289.82,-391.92"/>
<polygon fill="#000000" stroke="#000000" points="291.502,-394.991 298.81,-387.32 288.3134,-388.7594 291.502,-394.991"/>
</g>
<!-- ZcashFoundation/zebra#4842 -->
<g id="node87" class="node open">
<title>ZcashFoundation/zebra#4842</title>
<g id="a_node87"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4842" xlink:title="ZcashFoundation/zebra#4842&#10;Replace cached state from&#10;the same commit, rather&#10;than failing the job" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-312 299,-312 299,-244 531,-244 531,-312"/>
<text text-anchor="middle" x="415" y="-296.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4842</text>
<text text-anchor="middle" x="415" y="-281.8" font-family="Times,serif" font-size="14.00" fill="#000000">Replace cached state from</text>
<text text-anchor="middle" x="415" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000">the same commit, rather</text>
<text text-anchor="middle" x="415" y="-251.8" font-family="Times,serif" font-size="14.00" fill="#000000">than failing the job</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4842 -->
<g id="edge31" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4842</title>
<path fill="none" stroke="#000000" d="M125.45,-698.41C130.82,-626.61 155.63,-427.05 268,-321 274.53,-314.83 281.9,-309.55 289.77,-305.01"/>
<polygon fill="#000000" stroke="#000000" points="291.645,-307.9778 298.85,-300.21 288.3735,-301.7893 291.645,-307.9778"/>
</g>
<!-- ZcashFoundation/zebra#4908 -->
<g id="node88" class="node open">
<title>ZcashFoundation/zebra#4908</title>
<g id="a_node88"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4908" xlink:title="ZcashFoundation/zebra#4908&#10;build(deps): bump&#10;console&#45;subscriber from&#10;0.1.6 to 0.1.7" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-226 299,-226 299,-222 295,-222 295,-218 299,-218 299,-166 295,-166 295,-162 299,-162 299,-158 531,-158 531,-226"/>
<polyline fill="none" stroke="#000000" points="299,-222 303,-222 303,-218 299,-218 "/>
<polyline fill="none" stroke="#000000" points="299,-166 303,-166 303,-162 299,-162 "/>
<text text-anchor="middle" x="415" y="-210.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4908</text>
<text text-anchor="middle" x="415" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">build(deps): bump</text>
<text text-anchor="middle" x="415" y="-180.8" font-family="Times,serif" font-size="14.00" fill="#000000">console&#45;subscriber from</text>
<text text-anchor="middle" x="415" y="-165.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.1.6 to 0.1.7</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4908 -->
<g id="edge32" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4908</title>
<path fill="none" stroke="#000000" d="M128.38,-698.45C144.05,-606.39 200.09,-302.83 268,-235 274.49,-228.51 281.91,-223 289.88,-218.3"/>
<polygon fill="#000000" stroke="#000000" points="291.5947,-221.3518 298.73,-213.52 288.268,-215.1928 291.5947,-221.3518"/>
</g>
<!-- ZcashFoundation/zebra#4898 -->
<g id="node89" class="node open">
<title>ZcashFoundation/zebra#4898</title>
<g id="a_node89"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4898" xlink:title="ZcashFoundation/zebra#4898&#10;build(deps): bump chrono&#10;from 0.4.19 to 0.4.20" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-139.5 299,-139.5 299,-135.5 295,-135.5 295,-131.5 299,-131.5 299,-94.5 295,-94.5 295,-90.5 299,-90.5 299,-86.5 531,-86.5 531,-139.5"/>
<polyline fill="none" stroke="#000000" points="299,-135.5 303,-135.5 303,-131.5 299,-131.5 "/>
<polyline fill="none" stroke="#000000" points="299,-94.5 303,-94.5 303,-90.5 299,-90.5 "/>
<text text-anchor="middle" x="415" y="-124.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4898</text>
<text text-anchor="middle" x="415" y="-109.3" font-family="Times,serif" font-size="14.00" fill="#000000">build(deps): bump chrono</text>
<text text-anchor="middle" x="415" y="-94.3" font-family="Times,serif" font-size="14.00" fill="#000000">from 0.4.19 to 0.4.20</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4898 -->
<g id="edge33" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4898</title>
<path fill="none" stroke="#000000" d="M127.02,-698.43C139.16,-596.05 187.72,-228.89 268,-149 274.43,-142.6 281.79,-137.28 289.73,-132.85"/>
<polygon fill="#000000" stroke="#000000" points="291.5575,-135.8483 298.91,-128.22 288.4052,-129.5983 291.5575,-135.8483"/>
</g>
<!-- ZcashFoundation/zebra#4806 -->
<g id="node90" class="node open">
<title>ZcashFoundation/zebra#4806</title>
<g id="a_node90"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4806" xlink:title="ZcashFoundation/zebra#4806&#10;fix(rpc): Isolate RPC&#10;queries from the rest of&#10;Zebra, to improve&#10;performance" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-3040.5 299,-3040.5 299,-3036.5 295,-3036.5 295,-3032.5 299,-3032.5 299,-2965.5 295,-2965.5 295,-2961.5 299,-2961.5 299,-2957.5 531,-2957.5 531,-3040.5"/>
<polyline fill="none" stroke="#000000" points="299,-3036.5 303,-3036.5 303,-3032.5 299,-3032.5 "/>
<polyline fill="none" stroke="#000000" points="299,-2965.5 303,-2965.5 303,-2961.5 299,-2961.5 "/>
<text text-anchor="middle" x="415" y="-3025.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4806</text>
<text text-anchor="middle" x="415" y="-3010.3" font-family="Times,serif" font-size="14.00" fill="#000000">fix(rpc): Isolate RPC</text>
<text text-anchor="middle" x="415" y="-2995.3" font-family="Times,serif" font-size="14.00" fill="#000000">queries from the rest of</text>
<text text-anchor="middle" x="415" y="-2980.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra, to improve</text>
<text text-anchor="middle" x="415" y="-2965.3" font-family="Times,serif" font-size="14.00" fill="#000000">performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4806 -->
<g id="edge34" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4806</title>
<path fill="none" stroke="#000000" d="M124.88,-751.52C133.09,-996.44 197.66,-2857.2 268,-2949 274.21,-2957.1 281.8,-2963.9 290.23,-2969.6"/>
<polygon fill="#000000" stroke="#000000" points="288.5702,-2972.6894 298.91,-2975 292.2679,-2966.7457 288.5702,-2972.6894"/>
</g>
<!-- ZcashFoundation/zebra#4804 -->
<g id="node91" class="node open">
<title>ZcashFoundation/zebra#4804</title>
<g id="a_node91"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4804" xlink:title="ZcashFoundation/zebra#4804&#10;fix(consensus): Increase&#10;the number of blocks&#10;checked for legacy&#10;transactions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="531,-1801.5 299,-1801.5 299,-1797.5 295,-1797.5 295,-1793.5 299,-1793.5 299,-1726.5 295,-1726.5 295,-1722.5 299,-1722.5 299,-1718.5 531,-1718.5 531,-1801.5"/>
<polyline fill="none" stroke="#000000" points="299,-1797.5 303,-1797.5 303,-1793.5 299,-1793.5 "/>
<polyline fill="none" stroke="#000000" points="299,-1726.5 303,-1726.5 303,-1722.5 299,-1722.5 "/>
<text text-anchor="middle" x="415" y="-1786.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4804</text>
<text text-anchor="middle" x="415" y="-1771.3" font-family="Times,serif" font-size="14.00" fill="#000000">fix(consensus): Increase</text>
<text text-anchor="middle" x="415" y="-1756.3" font-family="Times,serif" font-size="14.00" fill="#000000">the number of blocks</text>
<text text-anchor="middle" x="415" y="-1741.3" font-family="Times,serif" font-size="14.00" fill="#000000">checked for legacy</text>
<text text-anchor="middle" x="415" y="-1726.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4804 -->
<g id="edge35" class="edge">
<title>ZcashFoundation/zebra#4910&#45;&gt;ZcashFoundation/zebra#4804</title>
<path fill="none" stroke="#000000" d="M124.38,-751.63C126.92,-892.59 145.26,-1551.1 268,-1704 274.35,-1711.9 281.94,-1718.7 290.3,-1724.5"/>
<polygon fill="#000000" stroke="#000000" points="288.5723,-1727.5499 298.88,-1730 292.35,-1721.6567 288.5723,-1727.5499"/>
</g>
<!-- ZcashFoundation/zebra#4894&#45;&gt;ZcashFoundation/zebra#4350 -->
<g id="edge36" class="edge">
<title>ZcashFoundation/zebra#4894&#45;&gt;ZcashFoundation/zebra#4350</title>
<path fill="none" stroke="#000000" d="M531.31,-364C546.15,-364 561.4,-364 576.39,-364"/>
<polygon fill="#000000" stroke="#000000" points="576.72,-367.5001 586.72,-364 576.72,-360.5001 576.72,-367.5001"/>
</g>
<!-- ZcashFoundation/zebra#4747 -->
<g id="node92" class="node open">
<title>ZcashFoundation/zebra#4747</title>
<g id="a_node92"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4747" xlink:title="ZcashFoundation/zebra#4747&#10;Mini&#45;Epic: Stop tokio&#10;tasks running for a long&#10;time and blocking other&#10;tasks" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="531,-2939.5 299,-2939.5 299,-2856.5 531,-2856.5 531,-2939.5"/>
<text text-anchor="middle" x="415" y="-2924.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4747</text>
<text text-anchor="middle" x="415" y="-2909.3" font-family="Times,serif" font-size="14.00" fill="#000000">Mini&#45;Epic: Stop tokio</text>
<text text-anchor="middle" x="415" y="-2894.3" font-family="Times,serif" font-size="14.00" fill="#000000">tasks running for a long</text>
<text text-anchor="middle" x="415" y="-2879.3" font-family="Times,serif" font-size="14.00" fill="#000000">time and blocking other</text>
<text text-anchor="middle" x="415" y="-2864.3" font-family="Times,serif" font-size="14.00" fill="#000000">tasks</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4747&#45;&gt;ZcashFoundation/zebra#4733 -->
<g id="edge37" class="edge">
<title>ZcashFoundation/zebra#4747&#45;&gt;ZcashFoundation/zebra#4733</title>
<path fill="none" stroke="#000000" d="M531.31,-2880.6C546.29,-2878.4 561.69,-2876.1 576.83,-2873.8"/>
<polygon fill="#000000" stroke="#000000" points="577.3093,-2877.2671 586.72,-2872.4 576.3281,-2870.3362 577.3093,-2877.2671"/>
</g>
<!-- ZcashFoundation/zebra#4747&#45;&gt;ZcashFoundation/zebra#4734 -->
<g id="edge38" class="edge">
<title>ZcashFoundation/zebra#4747&#45;&gt;ZcashFoundation/zebra#4734</title>
<path fill="none" stroke="#000000" d="M531.31,-2915.4C546.29,-2917.6 561.69,-2919.9 576.83,-2922.2"/>
<polygon fill="#000000" stroke="#000000" points="576.3281,-2925.6638 586.72,-2923.6 577.3093,-2918.7329 576.3281,-2925.6638"/>
</g>
<!-- ZcashFoundation/zebra#4747&#45;&gt;ZcashFoundation/zebra#3096 -->
<g id="edge39" class="edge">
<title>ZcashFoundation/zebra#4747&#45;&gt;ZcashFoundation/zebra#3096</title>
<path fill="none" stroke="#000000" d="M531.04,-2939.4C533.93,-2942.4 536.6,-2945.6 539,-2949 573.83,-2999 516.67,-3453.2 559,-3497 641.28,-3582.2 785.26,-3575 885.14,-3556.5"/>
<polygon fill="#000000" stroke="#000000" points="885.816,-3559.9342 894.97,-3554.6 884.4875,-3553.0614 885.816,-3559.9342"/>
</g>
<!-- ZcashFoundation/zebra#4882 -->
<g id="node93" class="node open">
<title>ZcashFoundation/zebra#4882</title>
<g id="a_node93"><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="531,-68 299,-68 299,0 531,0 531,-68"/>
<text text-anchor="middle" x="415" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4882</text>
<text text-anchor="middle" x="415" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add zcash&#45;lightwalletd /</text>
<text text-anchor="middle" x="415" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">Build images to required</text>
<text text-anchor="middle" x="415" y="-7.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="edge40" class="edge">
<title>ZcashFoundation/zebra#4882&#45;&gt;ZcashFoundation/zebra#4612</title>
<path fill="none" stroke="#000000" d="M531.31,-68.39C534.08,-71.051 536.66,-73.915 539,-77 582.36,-134.1 514.58,-342.72 559,-399 564.47,-405.93 571.01,-411.8 578.23,-416.77"/>
<polygon fill="#000000" stroke="#000000" points="576.6534,-419.9101 587,-422.19 580.3334,-413.9554 576.6534,-419.9101"/>
</g>
<!-- ZcashFoundation/zebra#4554 -->
<g id="node94" class="node open">
<title>ZcashFoundation/zebra#4554</title>
<g id="a_node94"><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="240,-4862 8,-4862 8,-4794 240,-4794 240,-4862"/>
<text text-anchor="middle" x="124" y="-4846.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4554</text>
<text text-anchor="middle" x="124" y="-4831.8" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks: surface</text>
<text text-anchor="middle" x="124" y="-4816.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad mainnet sync time</text>
<text text-anchor="middle" x="124" y="-4801.8" font-family="Times,serif" font-size="14.00" fill="#000000">in CI</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4545 -->
<g id="node95" class="node open">
<title>ZcashFoundation/zebra#4545</title>
<g id="a_node95"><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="240,-4963.5 8,-4963.5 8,-4880.5 240,-4880.5 240,-4963.5"/>
<text text-anchor="middle" x="124" y="-4948.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4545</text>
<text text-anchor="middle" x="124" y="-4933.3" font-family="Times,serif" font-size="14.00" fill="#000000">Start disconnecting from</text>
<text text-anchor="middle" x="124" y="-4918.3" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers before</text>
<text text-anchor="middle" x="124" y="-4903.3" font-family="Times,serif" font-size="14.00" fill="#000000">network upgrade</text>
<text text-anchor="middle" x="124" y="-4888.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4226 -->
<g id="node96" class="node open">
<title>ZcashFoundation/zebra#4226</title>
<g id="a_node96"><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="#c2e0c6" stroke="#000000" points="531,-4956 299,-4956 299,-4888 531,-4888 531,-4956"/>
<text text-anchor="middle" x="415" y="-4940.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4226</text>
<text text-anchor="middle" x="415" y="-4925.8" font-family="Times,serif" font-size="14.00" fill="#000000">Prefer faster peers, but</text>
<text text-anchor="middle" x="415" y="-4910.8" font-family="Times,serif" font-size="14.00" fill="#000000">if all peers are slow,</text>
<text text-anchor="middle" x="415" y="-4895.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="edge41" class="edge">
<title>ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226</title>
<path fill="none" stroke="#000000" d="M240.27,-4922C256.26,-4922 272.75,-4922 288.91,-4922"/>
<polygon fill="#000000" stroke="#000000" points="288.92,-4925.5001 298.92,-4922 288.92,-4918.5001 288.92,-4925.5001"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>