developers/zcash-zf-dag.html

770 lines
56 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Zcash zf DAG</title>
<!-- Pan/zoom SVGs -->
<script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
<link rel="stylesheet" href="zcash-dag.css">
<style>
@media (prefers-color-scheme: dark) {
body {
/* Material dark theme surface colour */
background-color: #121212;
}
}
</style>
</head>
<body>
<div id="dag"><svg width="920pt" height="2105pt"
viewBox="0.00 0.00 920.00 2104.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 2100.5)">
<polygon fill="white" stroke="transparent" points="-4,4 -4,-2100.5 916,-2100.5 916,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_0</title>
<polygon fill="none" stroke="blue" points="624,-16.5 624,-123.5 912,-123.5 912,-16.5 624,-16.5"/>
<text text-anchor="middle" x="768" y="-108.3" font-family="Times,serif" font-size="14.00">Epic: Improvements from Zebra Audit</text>
</g>
<!-- ZcashFoundation/zebra#6681 -->
<g id="node1" class="node closed">
<title>ZcashFoundation/zebra#6681</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6681" xlink:title="ZcashFoundation/zebra#6681&#10;Update documentation to&#10;clarify terminology&#10;around block verification" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="883,-92.5 652,-92.5 652,-24.5 883,-24.5 883,-92.5"/>
<text text-anchor="middle" x="767.5" y="-77.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6681</text>
<text text-anchor="middle" x="767.5" y="-62.3" font-family="Times,serif" font-size="14.00">Update documentation to</text>
<text text-anchor="middle" x="767.5" y="-47.3" font-family="Times,serif" font-size="14.00">clarify terminology</text>
<text text-anchor="middle" x="767.5" y="-32.3" font-family="Times,serif" font-size="14.00">around block verification</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6981 -->
<g id="node2" class="node open">
<title>ZcashFoundation/zebra#6981</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6981" xlink:title="ZcashFoundation/zebra#6981&#10;Ignore repeated inbound&#10;connections from the same&#10;IP" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-225.5 24.5,-225.5 24.5,-157.5 255.5,-157.5 255.5,-225.5"/>
<text text-anchor="middle" x="140" y="-210.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6981</text>
<text text-anchor="middle" x="140" y="-195.3" font-family="Times,serif" font-size="14.00">Ignore repeated inbound</text>
<text text-anchor="middle" x="140" y="-180.3" font-family="Times,serif" font-size="14.00">connections from the same</text>
<text text-anchor="middle" x="140" y="-165.3" font-family="Times,serif" font-size="14.00">IP</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5297 -->
<g id="node3" class="node open">
<title>ZcashFoundation/zebra#5297</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5297" xlink:title="ZcashFoundation/zebra#5297&#10;Add metrics for chain&#10;fork work and lengths" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="883,-405 652,-405 652,-352 883,-352 883,-405"/>
<text text-anchor="middle" x="767.5" y="-389.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5297</text>
<text text-anchor="middle" x="767.5" y="-374.8" font-family="Times,serif" font-size="14.00">Add metrics for chain</text>
<text text-anchor="middle" x="767.5" y="-359.8" font-family="Times,serif" font-size="14.00">fork work and lengths</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1135 -->
<g id="node4" class="node open">
<title>ZcashFoundation/zebra#1135</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1135" xlink:title="ZcashFoundation/zebra#1135&#10;Refactor Network and&#10;NetworkUpgrade enums into&#10;structs and a trait" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-427.5 24.5,-427.5 24.5,-359.5 255.5,-359.5 255.5,-427.5"/>
<text text-anchor="middle" x="140" y="-412.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#1135</text>
<text text-anchor="middle" x="140" y="-397.3" font-family="Times,serif" font-size="14.00">Refactor Network and</text>
<text text-anchor="middle" x="140" y="-382.3" font-family="Times,serif" font-size="14.00">NetworkUpgrade enums into</text>
<text text-anchor="middle" x="140" y="-367.3" font-family="Times,serif" font-size="14.00">structs and a trait</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1011 -->
<g id="node5" class="node closed">
<title>ZcashFoundation/zebra#1011</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1011" xlink:title="ZcashFoundation/zebra#1011&#10;Re&#45;enable the&#10;BlockVerifier continuous_&#10;blockchain_test" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="571.5,-427.5 340.5,-427.5 340.5,-359.5 571.5,-359.5 571.5,-427.5"/>
<text text-anchor="middle" x="456" y="-412.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#1011</text>
<text text-anchor="middle" x="456" y="-397.3" font-family="Times,serif" font-size="14.00">Re&#45;enable the</text>
<text text-anchor="middle" x="456" y="-382.3" font-family="Times,serif" font-size="14.00">BlockVerifier continuous_</text>
<text text-anchor="middle" x="456" y="-367.3" font-family="Times,serif" font-size="14.00">blockchain_test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011</title>
<path fill="none" stroke="black" d="M255.69,-393.5C279.95,-393.5 305.65,-393.5 330.25,-393.5"/>
<polygon fill="black" stroke="black" points="330.35,-397 340.35,-393.5 330.35,-390 330.35,-397"/>
</g>
<!-- ZcashFoundation/zebra#5472 -->
<g id="node6" class="node open">
<title>ZcashFoundation/zebra#5472</title>
<g id="a_node6"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5472" xlink:title="ZcashFoundation/zebra#5472&#10;Support shielded coinbase&#10;in `getblocktemplate` for&#10;Sapling addresses" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-513.5 24.5,-513.5 24.5,-445.5 255.5,-445.5 255.5,-513.5"/>
<text text-anchor="middle" x="140" y="-498.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5472</text>
<text text-anchor="middle" x="140" y="-483.3" font-family="Times,serif" font-size="14.00">Support shielded coinbase</text>
<text text-anchor="middle" x="140" y="-468.3" font-family="Times,serif" font-size="14.00">in `getblocktemplate` for</text>
<text text-anchor="middle" x="140" y="-453.3" font-family="Times,serif" font-size="14.00">Sapling addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5929 -->
<g id="node7" class="node open">
<title>ZcashFoundation/zebra#5929</title>
<g id="a_node7"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5929" xlink:title="ZcashFoundation/zebra#5929&#10;Support shielded coinbase&#10;in `getblocktemplate` for&#10;Orchard Unified addresses" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-513.5 340.5,-513.5 340.5,-445.5 571.5,-445.5 571.5,-513.5"/>
<text text-anchor="middle" x="456" y="-498.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5929</text>
<text text-anchor="middle" x="456" y="-483.3" font-family="Times,serif" font-size="14.00">Support shielded coinbase</text>
<text text-anchor="middle" x="456" y="-468.3" font-family="Times,serif" font-size="14.00">in `getblocktemplate` for</text>
<text text-anchor="middle" x="456" y="-453.3" font-family="Times,serif" font-size="14.00">Orchard Unified addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5472&#45;&gt;ZcashFoundation/zebra#5929 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#5472&#45;&gt;ZcashFoundation/zebra#5929</title>
<path fill="none" stroke="black" d="M255.69,-479.5C279.95,-479.5 305.65,-479.5 330.25,-479.5"/>
<polygon fill="black" stroke="black" points="330.35,-483 340.35,-479.5 330.35,-476 330.35,-483"/>
</g>
<!-- ZcashFoundation/zebra#7109 -->
<g id="node8" class="node open">
<title>ZcashFoundation/zebra#7109</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7109" xlink:title="ZcashFoundation/zebra#7109&#10;Store cumulative work in&#10;the finalized state for&#10;each height" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-326.5 340.5,-326.5 340.5,-258.5 571.5,-258.5 571.5,-326.5"/>
<text text-anchor="middle" x="456" y="-311.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7109</text>
<text text-anchor="middle" x="456" y="-296.3" font-family="Times,serif" font-size="14.00">Store cumulative work in</text>
<text text-anchor="middle" x="456" y="-281.3" font-family="Times,serif" font-size="14.00">the finalized state for</text>
<text text-anchor="middle" x="456" y="-266.3" font-family="Times,serif" font-size="14.00">each height</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#5297 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#5297</title>
<path fill="none" stroke="black" d="M568.2,-326.53C586.79,-332 605.91,-337.51 624,-342.5 632.31,-344.79 640.91,-347.11 649.58,-349.4"/>
<polygon fill="black" stroke="black" points="648.82,-352.82 659.38,-351.97 650.59,-346.05 648.82,-352.82"/>
</g>
<!-- ZcashFoundation/zebra#6688 -->
<g id="node9" class="node open">
<title>ZcashFoundation/zebra#6688</title>
<g id="a_node9"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6688" xlink:title="ZcashFoundation/zebra#6688&#10;`getnetworksolps` &amp;&#10;`getnetworkhashps` RPCs&#10;hang with large&#10;num_blocks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="883,-334 652,-334 652,-251 883,-251 883,-334"/>
<text text-anchor="middle" x="767.5" y="-318.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6688</text>
<text text-anchor="middle" x="767.5" y="-303.8" font-family="Times,serif" font-size="14.00">`getnetworksolps` &amp;</text>
<text text-anchor="middle" x="767.5" y="-288.8" font-family="Times,serif" font-size="14.00">`getnetworkhashps` RPCs</text>
<text text-anchor="middle" x="767.5" y="-273.8" font-family="Times,serif" font-size="14.00">hang with large</text>
<text text-anchor="middle" x="767.5" y="-258.8" font-family="Times,serif" font-size="14.00">num_blocks</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#6688 -->
<g id="edge4" class="edge">
<title>ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#6688</title>
<path fill="none" stroke="black" d="M571.81,-292.5C594.58,-292.5 618.6,-292.5 641.69,-292.5"/>
<polygon fill="black" stroke="black" points="641.88,-296 651.88,-292.5 641.88,-289 641.88,-296"/>
</g>
<!-- ZcashFoundation/zebra#7110 -->
<g id="node10" class="node open">
<title>ZcashFoundation/zebra#7110</title>
<g id="a_node10"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7110" xlink:title="ZcashFoundation/zebra#7110&#10;Show the full chain work&#10;in the chain fork&#10;progress bars" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="883,-232.5 652,-232.5 652,-164.5 883,-164.5 883,-232.5"/>
<text text-anchor="middle" x="767.5" y="-217.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7110</text>
<text text-anchor="middle" x="767.5" y="-202.3" font-family="Times,serif" font-size="14.00">Show the full chain work</text>
<text text-anchor="middle" x="767.5" y="-187.3" font-family="Times,serif" font-size="14.00">in the chain fork</text>
<text text-anchor="middle" x="767.5" y="-172.3" font-family="Times,serif" font-size="14.00">progress bars</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#7110 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#7110</title>
<path fill="none" stroke="black" d="M568.37,-258.43C586.95,-252.77 606.02,-246.96 624,-241.5 630.4,-239.56 636.95,-237.57 643.58,-235.56"/>
<polygon fill="black" stroke="black" points="644.76,-238.86 653.32,-232.62 642.74,-232.16 644.76,-238.86"/>
</g>
<!-- ZcashFoundation/zebra#6752 -->
<g id="node11" class="node open">
<title>ZcashFoundation/zebra#6752</title>
<g id="a_node11"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6752" xlink:title="ZcashFoundation/zebra#6752&#10;Pass mining config to the&#10;mining Docker container&#10;at runtime" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-599.5 24.5,-599.5 24.5,-531.5 255.5,-531.5 255.5,-599.5"/>
<text text-anchor="middle" x="140" y="-584.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6752</text>
<text text-anchor="middle" x="140" y="-569.3" font-family="Times,serif" font-size="14.00">Pass mining config to the</text>
<text text-anchor="middle" x="140" y="-554.3" font-family="Times,serif" font-size="14.00">mining Docker container</text>
<text text-anchor="middle" x="140" y="-539.3" font-family="Times,serif" font-size="14.00">at runtime</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6611 -->
<g id="node12" class="node open">
<title>ZcashFoundation/zebra#6611</title>
<g id="a_node12"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6611" xlink:title="ZcashFoundation/zebra#6611&#10;Document how to switch&#10;from Testnet to Mainnet&#10;in Docker images" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-599.5 340.5,-599.5 340.5,-531.5 571.5,-531.5 571.5,-599.5"/>
<text text-anchor="middle" x="456" y="-584.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6611</text>
<text text-anchor="middle" x="456" y="-569.3" font-family="Times,serif" font-size="14.00">Document how to switch</text>
<text text-anchor="middle" x="456" y="-554.3" font-family="Times,serif" font-size="14.00">from Testnet to Mainnet</text>
<text text-anchor="middle" x="456" y="-539.3" font-family="Times,serif" font-size="14.00">in Docker images</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6752&#45;&gt;ZcashFoundation/zebra#6611 -->
<g id="edge6" class="edge">
<title>ZcashFoundation/zebra#6752&#45;&gt;ZcashFoundation/zebra#6611</title>
<path fill="none" stroke="black" d="M255.69,-565.5C279.95,-565.5 305.65,-565.5 330.25,-565.5"/>
<polygon fill="black" stroke="black" points="330.35,-569 340.35,-565.5 330.35,-562 330.35,-569"/>
</g>
<!-- ZcashFoundation/zebra#6159 -->
<g id="node13" class="node closed">
<title>ZcashFoundation/zebra#6159</title>
<g id="a_node13"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6159" xlink:title="ZcashFoundation/zebra#6159&#10;Documentation: Write a&#10;blog post to share how we&#10;used Zebra and s&#45;nomp to&#10;mine on testnet" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="883,-607 652,-607 652,-524 883,-524 883,-607"/>
<text text-anchor="middle" x="767.5" y="-591.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6159</text>
<text text-anchor="middle" x="767.5" y="-576.8" font-family="Times,serif" font-size="14.00">Documentation: Write a</text>
<text text-anchor="middle" x="767.5" y="-561.8" font-family="Times,serif" font-size="14.00">blog post to share how we</text>
<text text-anchor="middle" x="767.5" y="-546.8" font-family="Times,serif" font-size="14.00">used Zebra and s&#45;nomp to</text>
<text text-anchor="middle" x="767.5" y="-531.8" font-family="Times,serif" font-size="14.00">mine on testnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6611&#45;&gt;ZcashFoundation/zebra#6159 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#6611&#45;&gt;ZcashFoundation/zebra#6159</title>
<path fill="none" stroke="black" d="M571.81,-565.5C594.58,-565.5 618.6,-565.5 641.69,-565.5"/>
<polygon fill="black" stroke="black" points="641.88,-569 651.88,-565.5 641.88,-562 641.88,-569"/>
</g>
<!-- ZcashFoundation/zebra#7133 -->
<g id="node14" class="node open">
<title>ZcashFoundation/zebra#7133</title>
<g id="a_node14"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7133" xlink:title="ZcashFoundation/zebra#7133&#10;warning: package&#10;`x25519&#45;dalek&#10;v2.0.0&#45;rc.2` in&#10;Cargo.lock is yanked" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-701 24.5,-701 24.5,-618 255.5,-618 255.5,-701"/>
<text text-anchor="middle" x="140" y="-685.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7133</text>
<text text-anchor="middle" x="140" y="-670.8" font-family="Times,serif" font-size="14.00">warning: package</text>
<text text-anchor="middle" x="140" y="-655.8" font-family="Times,serif" font-size="14.00">`x25519&#45;dalek</text>
<text text-anchor="middle" x="140" y="-640.8" font-family="Times,serif" font-size="14.00">v2.0.0&#45;rc.2` in</text>
<text text-anchor="middle" x="140" y="-625.8" font-family="Times,serif" font-size="14.00">Cargo.lock is yanked</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7136 -->
<g id="node15" class="node open">
<title>ZcashFoundation/zebra#7136</title>
<g id="a_node15"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7136" xlink:title="ZcashFoundation/zebra#7136&#10;Publish next Zebra&#10;release: 1.1.0" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-686 340.5,-686 340.5,-633 571.5,-633 571.5,-686"/>
<text text-anchor="middle" x="456" y="-670.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7136</text>
<text text-anchor="middle" x="456" y="-655.8" font-family="Times,serif" font-size="14.00">Publish next Zebra</text>
<text text-anchor="middle" x="456" y="-640.8" font-family="Times,serif" font-size="14.00">release: 1.1.0</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7133&#45;&gt;ZcashFoundation/zebra#7136 -->
<g id="edge8" class="edge">
<title>ZcashFoundation/zebra#7133&#45;&gt;ZcashFoundation/zebra#7136</title>
<path fill="none" stroke="black" d="M255.69,-659.5C279.95,-659.5 305.65,-659.5 330.25,-659.5"/>
<polygon fill="black" stroke="black" points="330.35,-663 340.35,-659.5 330.35,-656 330.35,-663"/>
</g>
<!-- ZcashFoundation/zebra#6037 -->
<g id="node16" class="node open">
<title>ZcashFoundation/zebra#6037</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6037" xlink:title="ZcashFoundation/zebra#6037&#10;Don&#39;t return from long&#10;polling if the block&#10;template is an invalid&#10;block proposal" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-857 24.5,-857 24.5,-774 255.5,-774 255.5,-857"/>
<text text-anchor="middle" x="140" y="-841.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6037</text>
<text text-anchor="middle" x="140" y="-826.8" font-family="Times,serif" font-size="14.00">Don&#39;t return from long</text>
<text text-anchor="middle" x="140" y="-811.8" font-family="Times,serif" font-size="14.00">polling if the block</text>
<text text-anchor="middle" x="140" y="-796.8" font-family="Times,serif" font-size="14.00">template is an invalid</text>
<text text-anchor="middle" x="140" y="-781.8" font-family="Times,serif" font-size="14.00">block proposal</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6047 -->
<g id="node17" class="node open">
<title>ZcashFoundation/zebra#6047</title>
<g id="a_node17"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6047" xlink:title="ZcashFoundation/zebra#6047&#10;Verify proposals are&#10;valid after sending them&#10;to miners" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-873.5 340.5,-873.5 340.5,-805.5 571.5,-805.5 571.5,-873.5"/>
<text text-anchor="middle" x="456" y="-858.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6047</text>
<text text-anchor="middle" x="456" y="-843.3" font-family="Times,serif" font-size="14.00">Verify proposals are</text>
<text text-anchor="middle" x="456" y="-828.3" font-family="Times,serif" font-size="14.00">valid after sending them</text>
<text text-anchor="middle" x="456" y="-813.3" font-family="Times,serif" font-size="14.00">to miners</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6037&#45;&gt;ZcashFoundation/zebra#6047 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#6037&#45;&gt;ZcashFoundation/zebra#6047</title>
<path fill="none" stroke="black" d="M255.69,-824.27C279.95,-826.12 305.65,-828.08 330.25,-829.97"/>
<polygon fill="black" stroke="black" points="330.11,-833.47 340.35,-830.74 330.65,-826.49 330.11,-833.47"/>
</g>
<!-- ZcashFoundation/zebra#5604 -->
<g id="node18" class="node open">
<title>ZcashFoundation/zebra#5604</title>
<g id="a_node18"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5604" xlink:title="ZcashFoundation/zebra#5604&#10;Send the same&#10;getblocktemplate RPC&#10;response until the&#10;template would change" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-787 340.5,-787 340.5,-704 571.5,-704 571.5,-787"/>
<text text-anchor="middle" x="456" y="-771.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5604</text>
<text text-anchor="middle" x="456" y="-756.8" font-family="Times,serif" font-size="14.00">Send the same</text>
<text text-anchor="middle" x="456" y="-741.8" font-family="Times,serif" font-size="14.00">getblocktemplate RPC</text>
<text text-anchor="middle" x="456" y="-726.8" font-family="Times,serif" font-size="14.00">response until the</text>
<text text-anchor="middle" x="456" y="-711.8" font-family="Times,serif" font-size="14.00">template would change</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6037&#45;&gt;ZcashFoundation/zebra#5604 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#6037&#45;&gt;ZcashFoundation/zebra#5604</title>
<path fill="none" stroke="black" d="M255.69,-789.93C280.05,-784.5 305.88,-778.74 330.58,-773.24"/>
<polygon fill="black" stroke="black" points="331.35,-776.65 340.35,-771.06 329.83,-769.82 331.35,-776.65"/>
</g>
<!-- ZcashFoundation/zebra#7031 -->
<g id="node19" class="node open">
<title>ZcashFoundation/zebra#7031</title>
<g id="a_node19"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/7031" xlink:title="ZcashFoundation/zebra#7031&#10;change(state): Prepare&#10;for in&#45;place database&#10;format upgrades, but&#10;don&#39;t make any format&#10;changes yet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-341.5 24.5,-341.5 24.5,-337.5 20.5,-337.5 20.5,-333.5 24.5,-333.5 24.5,-251.5 20.5,-251.5 20.5,-247.5 24.5,-247.5 24.5,-243.5 255.5,-243.5 255.5,-341.5"/>
<polyline fill="none" stroke="black" stroke-width="2" points="24.5,-337.5 28.5,-337.5 28.5,-333.5 24.5,-333.5 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="24.5,-251.5 28.5,-251.5 28.5,-247.5 24.5,-247.5 "/>
<text text-anchor="middle" x="140" y="-326.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7031</text>
<text text-anchor="middle" x="140" y="-311.3" font-family="Times,serif" font-size="14.00">change(state): Prepare</text>
<text text-anchor="middle" x="140" y="-296.3" font-family="Times,serif" font-size="14.00">for in&#45;place database</text>
<text text-anchor="middle" x="140" y="-281.3" font-family="Times,serif" font-size="14.00">format upgrades, but</text>
<text text-anchor="middle" x="140" y="-266.3" font-family="Times,serif" font-size="14.00">don&#39;t make any format</text>
<text text-anchor="middle" x="140" y="-251.3" font-family="Times,serif" font-size="14.00">changes yet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7031&#45;&gt;ZcashFoundation/zebra#7109 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#7031&#45;&gt;ZcashFoundation/zebra#7109</title>
<path fill="none" stroke="black" d="M255.69,-292.5C279.95,-292.5 305.65,-292.5 330.25,-292.5"/>
<polygon fill="black" stroke="black" points="330.35,-296 340.35,-292.5 330.35,-289 330.35,-296"/>
</g>
<!-- ZcashFoundation/zebra#6025 -->
<g id="node20" class="node open">
<title>ZcashFoundation/zebra#6025</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6025" xlink:title="ZcashFoundation/zebra#6025&#10;Add a manually&#45;triggered&#10;workflow for mining a&#10;block on testnet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-982.5 340.5,-982.5 340.5,-914.5 571.5,-914.5 571.5,-982.5"/>
<text text-anchor="middle" x="456" y="-967.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6025</text>
<text text-anchor="middle" x="456" y="-952.3" font-family="Times,serif" font-size="14.00">Add a manually&#45;triggered</text>
<text text-anchor="middle" x="456" y="-937.3" font-family="Times,serif" font-size="14.00">workflow for mining a</text>
<text text-anchor="middle" x="456" y="-922.3" font-family="Times,serif" font-size="14.00">block on testnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5911 -->
<g id="node21" class="node open">
<title>ZcashFoundation/zebra#5911</title>
<g id="a_node21"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5911" xlink:title="ZcashFoundation/zebra#5911&#10;Store the serialized&#10;block size in the&#10;database" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1076.5 24.5,-1076.5 24.5,-1008.5 255.5,-1008.5 255.5,-1076.5"/>
<text text-anchor="middle" x="140" y="-1061.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5911</text>
<text text-anchor="middle" x="140" y="-1046.3" font-family="Times,serif" font-size="14.00">Store the serialized</text>
<text text-anchor="middle" x="140" y="-1031.3" font-family="Times,serif" font-size="14.00">block size in the</text>
<text text-anchor="middle" x="140" y="-1016.3" font-family="Times,serif" font-size="14.00">database</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6118 -->
<g id="node22" class="node open">
<title>ZcashFoundation/zebra#6118</title>
<g id="a_node22"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6118" xlink:title="ZcashFoundation/zebra#6118&#10;Create a Docker images&#10;and docker&#45;compose for&#10;mining with Zebra on&#10;Testnet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-990 24.5,-990 24.5,-907 255.5,-907 255.5,-990"/>
<text text-anchor="middle" x="140" y="-974.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6118</text>
<text text-anchor="middle" x="140" y="-959.8" font-family="Times,serif" font-size="14.00">Create a Docker images</text>
<text text-anchor="middle" x="140" y="-944.8" font-family="Times,serif" font-size="14.00">and docker&#45;compose for</text>
<text text-anchor="middle" x="140" y="-929.8" font-family="Times,serif" font-size="14.00">mining with Zebra on</text>
<text text-anchor="middle" x="140" y="-914.8" font-family="Times,serif" font-size="14.00">Testnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6118&#45;&gt;ZcashFoundation/zebra#6025 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#6118&#45;&gt;ZcashFoundation/zebra#6025</title>
<path fill="none" stroke="black" d="M255.69,-948.5C279.95,-948.5 305.65,-948.5 330.25,-948.5"/>
<polygon fill="black" stroke="black" points="330.35,-952 340.35,-948.5 330.35,-945 330.35,-952"/>
</g>
<!-- ZcashFoundation/zebra#4841 -->
<g id="node23" class="node closed">
<title>ZcashFoundation/zebra#4841</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4841" xlink:title="ZcashFoundation/zebra#4841&#10;Improve note commitment&#10;tree append performance" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="571.5,-1213 340.5,-1213 340.5,-1160 571.5,-1160 571.5,-1213"/>
<text text-anchor="middle" x="456" y="-1197.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4841</text>
<text text-anchor="middle" x="456" y="-1182.8" font-family="Times,serif" font-size="14.00">Improve note commitment</text>
<text text-anchor="middle" x="456" y="-1167.8" font-family="Times,serif" font-size="14.00">tree append performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4784 -->
<g id="node24" class="node open">
<title>ZcashFoundation/zebra#4784</title>
<g id="a_node24"><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="black" points="571.5,-1365.5 340.5,-1365.5 340.5,-1297.5 571.5,-1297.5 571.5,-1365.5"/>
<text text-anchor="middle" x="456" y="-1350.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4784</text>
<text text-anchor="middle" x="456" y="-1335.3" font-family="Times,serif" font-size="14.00">Store only the first tree</text>
<text text-anchor="middle" x="456" y="-1320.3" font-family="Times,serif" font-size="14.00">state in each identical</text>
<text text-anchor="middle" x="456" y="-1305.3" font-family="Times,serif" font-size="14.00">series of tree states</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6642 -->
<g id="node25" class="node open">
<title>ZcashFoundation/zebra#6642</title>
<g id="a_node25"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6642" xlink:title="ZcashFoundation/zebra#6642&#10;Tracking: Update&#10;`lightwalletd` RPCs for&#10;&quot;fast spendability&quot;&#10;algorithm" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="883,-1373 652,-1373 652,-1290 883,-1290 883,-1373"/>
<text text-anchor="middle" x="767.5" y="-1357.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6642</text>
<text text-anchor="middle" x="767.5" y="-1342.8" font-family="Times,serif" font-size="14.00">Tracking: Update</text>
<text text-anchor="middle" x="767.5" y="-1327.8" font-family="Times,serif" font-size="14.00">`lightwalletd` RPCs for</text>
<text text-anchor="middle" x="767.5" y="-1312.8" font-family="Times,serif" font-size="14.00">&quot;fast spendability&quot;</text>
<text text-anchor="middle" x="767.5" y="-1297.8" font-family="Times,serif" font-size="14.00">algorithm</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4784&#45;&gt;ZcashFoundation/zebra#6642 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#4784&#45;&gt;ZcashFoundation/zebra#6642</title>
<path fill="none" stroke="black" d="M571.81,-1331.5C594.58,-1331.5 618.6,-1331.5 641.69,-1331.5"/>
<polygon fill="black" stroke="black" points="641.88,-1335 651.88,-1331.5 641.88,-1328 641.88,-1335"/>
</g>
<!-- ZcashFoundation/zebra#2908 -->
<g id="node26" class="node open">
<title>ZcashFoundation/zebra#2908</title>
<g id="a_node26"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2908" xlink:title="ZcashFoundation/zebra#2908&#10;Improve&#10;VerifyBlockError::Commit&#10;typing, so we don&#39;t&#10;accidentally break syncer&#10;error handling" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1481.5 24.5,-1481.5 24.5,-1383.5 255.5,-1383.5 255.5,-1481.5"/>
<text text-anchor="middle" x="140" y="-1466.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#2908</text>
<text text-anchor="middle" x="140" y="-1451.3" font-family="Times,serif" font-size="14.00">Improve</text>
<text text-anchor="middle" x="140" y="-1436.3" font-family="Times,serif" font-size="14.00">VerifyBlockError::Commit</text>
<text text-anchor="middle" x="140" y="-1421.3" font-family="Times,serif" font-size="14.00">typing, so we don&#39;t</text>
<text text-anchor="middle" x="140" y="-1406.3" font-family="Times,serif" font-size="14.00">accidentally break syncer</text>
<text text-anchor="middle" x="140" y="-1391.3" font-family="Times,serif" font-size="14.00">error handling</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5487 -->
<g id="node27" class="node open">
<title>ZcashFoundation/zebra#5487</title>
<g id="a_node27"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5487" xlink:title="ZcashFoundation/zebra#5487&#10;Return detailed errors&#10;from the `submitblock`&#10;RPC" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-1466.5 340.5,-1466.5 340.5,-1398.5 571.5,-1398.5 571.5,-1466.5"/>
<text text-anchor="middle" x="456" y="-1451.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5487</text>
<text text-anchor="middle" x="456" y="-1436.3" font-family="Times,serif" font-size="14.00">Return detailed errors</text>
<text text-anchor="middle" x="456" y="-1421.3" font-family="Times,serif" font-size="14.00">from the `submitblock`</text>
<text text-anchor="middle" x="456" y="-1406.3" font-family="Times,serif" font-size="14.00">RPC</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2908&#45;&gt;ZcashFoundation/zebra#5487 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#2908&#45;&gt;ZcashFoundation/zebra#5487</title>
<path fill="none" stroke="black" d="M255.69,-1432.5C279.95,-1432.5 305.65,-1432.5 330.25,-1432.5"/>
<polygon fill="black" stroke="black" points="330.35,-1436 340.35,-1432.5 330.35,-1429 330.35,-1436"/>
</g>
<!-- ZcashFoundation/zebra#5709 -->
<g id="node28" class="node open">
<title>ZcashFoundation/zebra#5709</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5709" xlink:title="ZcashFoundation/zebra#5709&#10;Fix repeated block&#10;timeouts during initial&#10;sync" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1567.5 24.5,-1567.5 24.5,-1499.5 255.5,-1499.5 255.5,-1567.5"/>
<text text-anchor="middle" x="140" y="-1552.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5709</text>
<text text-anchor="middle" x="140" y="-1537.3" font-family="Times,serif" font-size="14.00">Fix repeated block</text>
<text text-anchor="middle" x="140" y="-1522.3" font-family="Times,serif" font-size="14.00">timeouts during initial</text>
<text text-anchor="middle" x="140" y="-1507.3" font-family="Times,serif" font-size="14.00">sync</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5425 -->
<g id="node29" class="node closed">
<title>ZcashFoundation/zebra#5425</title>
<g id="a_node29"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5425" xlink:title="ZcashFoundation/zebra#5425&#10;Parallelise note&#10;commitment tree point&#10;conversions" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="571.5,-1567.5 340.5,-1567.5 340.5,-1499.5 571.5,-1499.5 571.5,-1567.5"/>
<text text-anchor="middle" x="456" y="-1552.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5425</text>
<text text-anchor="middle" x="456" y="-1537.3" font-family="Times,serif" font-size="14.00">Parallelise note</text>
<text text-anchor="middle" x="456" y="-1522.3" font-family="Times,serif" font-size="14.00">commitment tree point</text>
<text text-anchor="middle" x="456" y="-1507.3" font-family="Times,serif" font-size="14.00">conversions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5709&#45;&gt;ZcashFoundation/zebra#5425 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#5709&#45;&gt;ZcashFoundation/zebra#5425</title>
<path fill="none" stroke="black" d="M255.69,-1533.5C279.95,-1533.5 305.65,-1533.5 330.25,-1533.5"/>
<polygon fill="black" stroke="black" points="330.35,-1537 340.35,-1533.5 330.35,-1530 330.35,-1537"/>
</g>
<!-- ZcashFoundation/zebra#4774 -->
<g id="node30" class="node open">
<title>ZcashFoundation/zebra#4774</title>
<g id="a_node30"><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="black" stroke-width="2" points="255.5,-1279 24.5,-1279 24.5,-1196 255.5,-1196 255.5,-1279"/>
<text text-anchor="middle" x="140" y="-1263.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4774</text>
<text text-anchor="middle" x="140" y="-1248.8" font-family="Times,serif" font-size="14.00">Add an NU5 block test</text>
<text text-anchor="middle" x="140" y="-1233.8" font-family="Times,serif" font-size="14.00">vector that contains many</text>
<text text-anchor="middle" x="140" y="-1218.8" font-family="Times,serif" font-size="14.00">shielded Orchard</text>
<text text-anchor="middle" x="140" y="-1203.8" font-family="Times,serif" font-size="14.00">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="black" d="M255.69,-1218.9C279.95,-1214.9 305.65,-1210.8 330.25,-1206.8"/>
<polygon fill="black" stroke="black" points="331.07,-1210.21 340.35,-1205.1 329.91,-1203.31 331.07,-1210.21"/>
</g>
<!-- ZcashFoundation/zebra#4775 -->
<g id="node31" class="node open">
<title>ZcashFoundation/zebra#4775</title>
<g id="a_node31"><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="black" stroke-width="2" points="255.5,-1178 24.5,-1178 24.5,-1095 255.5,-1095 255.5,-1178"/>
<text text-anchor="middle" x="140" y="-1162.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4775</text>
<text text-anchor="middle" x="140" y="-1147.8" font-family="Times,serif" font-size="14.00">Add an NU5 block test</text>
<text text-anchor="middle" x="140" y="-1132.8" font-family="Times,serif" font-size="14.00">vector that contains many</text>
<text text-anchor="middle" x="140" y="-1117.8" font-family="Times,serif" font-size="14.00">shielded Sapling</text>
<text text-anchor="middle" x="140" y="-1102.8" font-family="Times,serif" font-size="14.00">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge17" class="edge">
<title>ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="black" d="M255.69,-1154.8C279.95,-1158.6 305.65,-1162.7 330.25,-1166.6"/>
<polygon fill="black" stroke="black" points="329.93,-1170.09 340.35,-1168.2 331.02,-1163.18 329.93,-1170.09"/>
</g>
<!-- ZcashFoundation/zebra#4554 -->
<g id="node32" class="node open">
<title>ZcashFoundation/zebra#4554</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4554" xlink:title="ZcashFoundation/zebra#4554&#10;benchmarks: create a&#10;ticket if zebrad mainnet&#10;sync time increases&#10;significantly" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1669 24.5,-1669 24.5,-1586 255.5,-1586 255.5,-1669"/>
<text text-anchor="middle" x="140" y="-1653.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4554</text>
<text text-anchor="middle" x="140" y="-1638.8" font-family="Times,serif" font-size="14.00">benchmarks: create a</text>
<text text-anchor="middle" x="140" y="-1623.8" font-family="Times,serif" font-size="14.00">ticket if zebrad mainnet</text>
<text text-anchor="middle" x="140" y="-1608.8" font-family="Times,serif" font-size="14.00">sync time increases</text>
<text text-anchor="middle" x="140" y="-1593.8" font-family="Times,serif" font-size="14.00">significantly</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4545 -->
<g id="node33" class="node open">
<title>ZcashFoundation/zebra#4545</title>
<g id="a_node33"><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="black" stroke-width="2" points="255.5,-1770 24.5,-1770 24.5,-1687 255.5,-1687 255.5,-1770"/>
<text text-anchor="middle" x="140" y="-1754.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4545</text>
<text text-anchor="middle" x="140" y="-1739.8" font-family="Times,serif" font-size="14.00">Start disconnecting from</text>
<text text-anchor="middle" x="140" y="-1724.8" font-family="Times,serif" font-size="14.00">outdated peers before</text>
<text text-anchor="middle" x="140" y="-1709.8" font-family="Times,serif" font-size="14.00">network upgrade</text>
<text text-anchor="middle" x="140" y="-1694.8" font-family="Times,serif" font-size="14.00">activation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4226 -->
<g id="node34" class="node closed">
<title>ZcashFoundation/zebra#4226</title>
<g id="a_node34"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4226" xlink:title="ZcashFoundation/zebra#4226&#10;Prefer faster peers, but&#10;if all peers are slow,&#10;still connect to them" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="571.5,-1762.5 340.5,-1762.5 340.5,-1694.5 571.5,-1694.5 571.5,-1762.5"/>
<text text-anchor="middle" x="456" y="-1747.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4226</text>
<text text-anchor="middle" x="456" y="-1732.3" font-family="Times,serif" font-size="14.00">Prefer faster peers, but</text>
<text text-anchor="middle" x="456" y="-1717.3" font-family="Times,serif" font-size="14.00">if all peers are slow,</text>
<text text-anchor="middle" x="456" y="-1702.3" font-family="Times,serif" font-size="14.00">still connect to them</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226</title>
<path fill="none" stroke="black" d="M255.69,-1728.5C279.95,-1728.5 305.65,-1728.5 330.25,-1728.5"/>
<polygon fill="black" stroke="black" points="330.35,-1732 340.35,-1728.5 330.35,-1725 330.35,-1732"/>
</g>
<!-- ZcashFoundation/zebra#6388 -->
<g id="node35" class="node open">
<title>ZcashFoundation/zebra#6388</title>
<g id="a_node35"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6388" xlink:title="ZcashFoundation/zebra#6388&#10;can_fork_chain_at()&#10;should ignore blocks&#10;below the finalized tip" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-139.5 24.5,-139.5 24.5,-71.5 255.5,-71.5 255.5,-139.5"/>
<text text-anchor="middle" x="140" y="-124.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6388</text>
<text text-anchor="middle" x="140" y="-109.3" font-family="Times,serif" font-size="14.00">can_fork_chain_at()</text>
<text text-anchor="middle" x="140" y="-94.3" font-family="Times,serif" font-size="14.00">should ignore blocks</text>
<text text-anchor="middle" x="140" y="-79.3" font-family="Times,serif" font-size="14.00">below the finalized tip</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6388&#45;&gt;ZcashFoundation/zebra#6681 -->
<g id="edge19" class="edge">
<title>ZcashFoundation/zebra#6388&#45;&gt;ZcashFoundation/zebra#6681</title>
<path fill="none" stroke="black" d="M255.7,-137.29C348.66,-158.08 482.4,-176.64 596,-148.5 636.09,-138.57 677.15,-117.3 708.92,-97.93"/>
<polygon fill="black" stroke="black" points="710.98,-100.77 717.63,-92.53 707.29,-94.83 710.98,-100.77"/>
</g>
<!-- ZcashFoundation/zebra#5125 -->
<g id="node36" class="node open">
<title>ZcashFoundation/zebra#5125</title>
<g id="a_node36"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5125" xlink:title="ZcashFoundation/zebra#5125&#10;Avoid temporary failures&#10;verifying the first non&#45;&#10;finalized block" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-139.5 340.5,-139.5 340.5,-71.5 571.5,-71.5 571.5,-139.5"/>
<text text-anchor="middle" x="456" y="-124.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5125</text>
<text text-anchor="middle" x="456" y="-109.3" font-family="Times,serif" font-size="14.00">Avoid temporary failures</text>
<text text-anchor="middle" x="456" y="-94.3" font-family="Times,serif" font-size="14.00">verifying the first non&#45;</text>
<text text-anchor="middle" x="456" y="-79.3" font-family="Times,serif" font-size="14.00">finalized block</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6388&#45;&gt;ZcashFoundation/zebra#5125 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#6388&#45;&gt;ZcashFoundation/zebra#5125</title>
<path fill="none" stroke="black" d="M255.69,-105.5C279.95,-105.5 305.65,-105.5 330.25,-105.5"/>
<polygon fill="black" stroke="black" points="330.35,-109 340.35,-105.5 330.35,-102 330.35,-109"/>
</g>
<!-- ZcashFoundation/zebra#6793 -->
<g id="node37" class="node closed">
<title>ZcashFoundation/zebra#6793</title>
<g id="a_node37"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6793" xlink:title="ZcashFoundation/zebra#6793&#10;Do the state renames that&#10;were not done in #6762" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="571.5,-53 340.5,-53 340.5,0 571.5,0 571.5,-53"/>
<text text-anchor="middle" x="456" y="-37.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6793</text>
<text text-anchor="middle" x="456" y="-22.8" font-family="Times,serif" font-size="14.00">Do the state renames that</text>
<text text-anchor="middle" x="456" y="-7.8" font-family="Times,serif" font-size="14.00">were not done in #6762</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6388&#45;&gt;ZcashFoundation/zebra#6793 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#6388&#45;&gt;ZcashFoundation/zebra#6793</title>
<path fill="none" stroke="black" d="M255.69,-76.64C283,-69.77 312.15,-62.44 339.49,-55.56"/>
<polygon fill="black" stroke="black" points="340.64,-58.88 349.48,-53.05 338.93,-52.09 340.64,-58.88"/>
</g>
<!-- ZcashFoundation/zebra#6793&#45;&gt;ZcashFoundation/zebra#6681 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#6793&#45;&gt;ZcashFoundation/zebra#6681</title>
<path fill="none" stroke="black" d="M571.81,-38.37C594.58,-40.72 618.6,-43.21 641.69,-45.6"/>
<polygon fill="black" stroke="black" points="641.57,-49.1 651.88,-46.65 642.29,-42.14 641.57,-49.1"/>
</g>
<!-- ZcashFoundation/zebra#6812 -->
<g id="node38" class="node open">
<title>ZcashFoundation/zebra#6812</title>
<g id="a_node38"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6812" xlink:title="ZcashFoundation/zebra#6812&#10;Process abort in state&#10;tests on some macOS&#10;versions with Rust 1.70" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1856.5 24.5,-1856.5 24.5,-1788.5 255.5,-1788.5 255.5,-1856.5"/>
<text text-anchor="middle" x="140" y="-1841.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6812</text>
<text text-anchor="middle" x="140" y="-1826.3" font-family="Times,serif" font-size="14.00">Process abort in state</text>
<text text-anchor="middle" x="140" y="-1811.3" font-family="Times,serif" font-size="14.00">tests on some macOS</text>
<text text-anchor="middle" x="140" y="-1796.3" font-family="Times,serif" font-size="14.00">versions with Rust 1.70</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6824 -->
<g id="node39" class="node closed">
<title>ZcashFoundation/zebra#6824</title>
<g id="a_node39"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6824" xlink:title="ZcashFoundation/zebra#6824&#10;Restore macOS tests" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="571.5,-1841.5 340.5,-1841.5 340.5,-1803.5 571.5,-1803.5 571.5,-1841.5"/>
<text text-anchor="middle" x="456" y="-1826.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6824</text>
<text text-anchor="middle" x="456" y="-1811.3" font-family="Times,serif" font-size="14.00">Restore macOS tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6812&#45;&gt;ZcashFoundation/zebra#6824 -->
<g id="edge23" class="edge">
<title>ZcashFoundation/zebra#6812&#45;&gt;ZcashFoundation/zebra#6824</title>
<path fill="none" stroke="black" d="M255.69,-1822.5C279.95,-1822.5 305.65,-1822.5 330.25,-1822.5"/>
<polygon fill="black" stroke="black" points="330.35,-1826 340.35,-1822.5 330.35,-1819 330.35,-1826"/>
</g>
<!-- ZcashFoundation/zebra#6859 -->
<g id="node40" class="node open">
<title>ZcashFoundation/zebra#6859</title>
<g id="a_node40"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6859" xlink:title="ZcashFoundation/zebra#6859&#10;Tracking: Upgrade shared&#10;ECC dependencies and&#10;zcash_script for zcashd&#10;5.6.0" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1994 24.5,-1994 24.5,-1911 255.5,-1911 255.5,-1994"/>
<text text-anchor="middle" x="140" y="-1978.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6859</text>
<text text-anchor="middle" x="140" y="-1963.8" font-family="Times,serif" font-size="14.00">Tracking: Upgrade shared</text>
<text text-anchor="middle" x="140" y="-1948.8" font-family="Times,serif" font-size="14.00">ECC dependencies and</text>
<text text-anchor="middle" x="140" y="-1933.8" font-family="Times,serif" font-size="14.00">zcash_script for zcashd</text>
<text text-anchor="middle" x="140" y="-1918.8" font-family="Times,serif" font-size="14.00">5.6.0</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6952 -->
<g id="node41" class="node open">
<title>ZcashFoundation/zebra#6952</title>
<g id="a_node41"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6952" xlink:title="ZcashFoundation/zebra#6952&#10;Add note tree size fields&#10;to the `getblock` RPC" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-1999 340.5,-1999 340.5,-1946 571.5,-1946 571.5,-1999"/>
<text text-anchor="middle" x="456" y="-1983.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6952</text>
<text text-anchor="middle" x="456" y="-1968.8" font-family="Times,serif" font-size="14.00">Add note tree size fields</text>
<text text-anchor="middle" x="456" y="-1953.8" font-family="Times,serif" font-size="14.00">to the `getblock` RPC</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6859&#45;&gt;ZcashFoundation/zebra#6952 -->
<g id="edge24" class="edge">
<title>ZcashFoundation/zebra#6859&#45;&gt;ZcashFoundation/zebra#6952</title>
<path fill="none" stroke="black" d="M255.69,-1959.8C279.95,-1961.4 305.65,-1963 330.25,-1964.6"/>
<polygon fill="black" stroke="black" points="330.16,-1968.1 340.35,-1965.2 330.58,-1961.11 330.16,-1968.1"/>
</g>
<!-- ZcashFoundation/zebra#6953 -->
<g id="node42" class="node open">
<title>ZcashFoundation/zebra#6953</title>
<g id="a_node42"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6953" xlink:title="ZcashFoundation/zebra#6953&#10;Add note subtree indexes&#10;to the finalized and non&#45;&#10;finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-1927.5 340.5,-1927.5 340.5,-1859.5 571.5,-1859.5 571.5,-1927.5"/>
<text text-anchor="middle" x="456" y="-1912.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6953</text>
<text text-anchor="middle" x="456" y="-1897.3" font-family="Times,serif" font-size="14.00">Add note subtree indexes</text>
<text text-anchor="middle" x="456" y="-1882.3" font-family="Times,serif" font-size="14.00">to the finalized and non&#45;</text>
<text text-anchor="middle" x="456" y="-1867.3" font-family="Times,serif" font-size="14.00">finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6859&#45;&gt;ZcashFoundation/zebra#6953 -->
<g id="edge25" class="edge">
<title>ZcashFoundation/zebra#6859&#45;&gt;ZcashFoundation/zebra#6953</title>
<path fill="none" stroke="black" d="M255.69,-1930.9C279.95,-1926.4 305.65,-1921.6 330.25,-1916.9"/>
<polygon fill="black" stroke="black" points="331.17,-1920.29 340.35,-1915 329.88,-1913.41 331.17,-1920.29"/>
</g>
<!-- ZcashFoundation/zebra#6954 -->
<g id="node43" class="node open">
<title>ZcashFoundation/zebra#6954</title>
<g id="a_node43"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6954" xlink:title="ZcashFoundation/zebra#6954&#10;Implement&#10;`z_getsubtreesbyindex`&#10;RPC" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="883,-1927.5 652,-1927.5 652,-1859.5 883,-1859.5 883,-1927.5"/>
<text text-anchor="middle" x="767.5" y="-1912.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6954</text>
<text text-anchor="middle" x="767.5" y="-1897.3" font-family="Times,serif" font-size="14.00">Implement</text>
<text text-anchor="middle" x="767.5" y="-1882.3" font-family="Times,serif" font-size="14.00">`z_getsubtreesbyindex`</text>
<text text-anchor="middle" x="767.5" y="-1867.3" font-family="Times,serif" font-size="14.00">RPC</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6953&#45;&gt;ZcashFoundation/zebra#6954 -->
<g id="edge26" class="edge">
<title>ZcashFoundation/zebra#6953&#45;&gt;ZcashFoundation/zebra#6954</title>
<path fill="none" stroke="black" d="M571.81,-1893.5C594.58,-1893.5 618.6,-1893.5 641.69,-1893.5"/>
<polygon fill="black" stroke="black" points="641.88,-1897 651.88,-1893.5 641.88,-1890 641.88,-1897"/>
</g>
<!-- ZcashFoundation/zebra#6955 -->
<g id="node44" class="node open">
<title>ZcashFoundation/zebra#6955</title>
<g id="a_node44"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6955" xlink:title="ZcashFoundation/zebra#6955&#10;Create an empty database&#10;format update task and&#10;format update tests" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1365.5 24.5,-1365.5 24.5,-1297.5 255.5,-1297.5 255.5,-1365.5"/>
<text text-anchor="middle" x="140" y="-1350.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6955</text>
<text text-anchor="middle" x="140" y="-1335.3" font-family="Times,serif" font-size="14.00">Create an empty database</text>
<text text-anchor="middle" x="140" y="-1320.3" font-family="Times,serif" font-size="14.00">format update task and</text>
<text text-anchor="middle" x="140" y="-1305.3" font-family="Times,serif" font-size="14.00">format update tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6955&#45;&gt;ZcashFoundation/zebra#4784 -->
<g id="edge27" class="edge">
<title>ZcashFoundation/zebra#6955&#45;&gt;ZcashFoundation/zebra#4784</title>
<path fill="none" stroke="black" d="M255.69,-1331.5C279.95,-1331.5 305.65,-1331.5 330.25,-1331.5"/>
<polygon fill="black" stroke="black" points="330.35,-1335 340.35,-1331.5 330.35,-1328 330.35,-1335"/>
</g>
<!-- ZcashFoundation/ed25519&#45;zebra#77 -->
<g id="node45" class="node open">
<title>ZcashFoundation/ed25519&#45;zebra#77</title>
<g id="a_node45"><a xlink:href="https://github.com/ZcashFoundation/ed25519-zebra/issues/77" xlink:title="ZcashFoundation/ed25519&#45;zebra#77&#10;Add instructions to the&#10;README for updating this&#10;crate" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="280,-2096.5 0,-2096.5 0,-2028.5 280,-2028.5 280,-2096.5"/>
<text text-anchor="middle" x="140" y="-2081.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/ed25519&#45;zebra#77</text>
<text text-anchor="middle" x="140" y="-2066.3" font-family="Times,serif" font-size="14.00">Add instructions to the</text>
<text text-anchor="middle" x="140" y="-2051.3" font-family="Times,serif" font-size="14.00">README for updating this</text>
<text text-anchor="middle" x="140" y="-2036.3" font-family="Times,serif" font-size="14.00">crate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/ed25519&#45;zebra#79 -->
<g id="node46" class="node closed">
<title>ZcashFoundation/ed25519&#45;zebra#79</title>
<g id="a_node46"><a xlink:href="https://github.com/ZcashFoundation/ed25519-zebra/issues/79" xlink:title="ZcashFoundation/ed25519&#45;zebra#79&#10;Tag a new &#160;ed25519&#45;zebra&#10;release" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="596,-2089 316,-2089 316,-2036 596,-2036 596,-2089"/>
<text text-anchor="middle" x="456" y="-2073.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/ed25519&#45;zebra#79</text>
<text text-anchor="middle" x="456" y="-2058.8" font-family="Times,serif" font-size="14.00">Tag a new &#160;ed25519&#45;zebra</text>
<text text-anchor="middle" x="456" y="-2043.8" font-family="Times,serif" font-size="14.00">release</text>
</a>
</g>
</g>
<!-- ZcashFoundation/ed25519&#45;zebra#77&#45;&gt;ZcashFoundation/ed25519&#45;zebra#79 -->
<g id="edge28" class="edge">
<title>ZcashFoundation/ed25519&#45;zebra#77&#45;&gt;ZcashFoundation/ed25519&#45;zebra#79</title>
<path fill="none" stroke="black" d="M280.1,-2062.5C288.49,-2062.5 296.96,-2062.5 305.4,-2062.5"/>
<polygon fill="black" stroke="black" points="305.67,-2066 315.67,-2062.5 305.67,-2059 305.67,-2066"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>