developers/zcash-zf-dag.html

784 lines
57 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Zcash zf DAG</title>
<!-- Pan/zoom SVGs -->
<script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
<link rel="stylesheet" href="zcash-dag.css">
<style>
@media (prefers-color-scheme: dark) {
body {
/* Material dark theme surface colour */
background-color: #121212;
}
}
</style>
</head>
<body>
<div id="dag"><svg width="871pt" height="2582pt"
viewBox="0.00 0.00 871.00 2582.00" 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 2578)">
<polygon fill="white" stroke="transparent" points="-4,4 -4,-2578 867,-2578 867,4 -4,4"/>
<!-- ZcashFoundation/zebra#5297 -->
<g id="node1" class="node open">
<title>ZcashFoundation/zebra#5297</title>
<g id="a_node1"><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="571.5,-240.5 340.5,-240.5 340.5,-187.5 571.5,-187.5 571.5,-240.5"/>
<text text-anchor="middle" x="456" y="-225.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5297</text>
<text text-anchor="middle" x="456" y="-210.3" font-family="Times,serif" font-size="14.00">Add metrics for chain</text>
<text text-anchor="middle" x="456" y="-195.3" font-family="Times,serif" font-size="14.00">fork work and lengths</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1875 -->
<g id="node2" class="node open">
<title>ZcashFoundation/zebra#1875</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1875" xlink:title="ZcashFoundation/zebra#1875&#10;Zebra attempts new peer&#10;connections in a fixed,&#10;predictable order" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-248 24.5,-248 24.5,-180 255.5,-180 255.5,-248"/>
<text text-anchor="middle" x="140" y="-232.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#1875</text>
<text text-anchor="middle" x="140" y="-217.8" font-family="Times,serif" font-size="14.00">Zebra attempts new peer</text>
<text text-anchor="middle" x="140" y="-202.8" font-family="Times,serif" font-size="14.00">connections in a fixed,</text>
<text text-anchor="middle" x="140" y="-187.8" font-family="Times,serif" font-size="14.00">predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5472 -->
<g id="node3" class="node open">
<title>ZcashFoundation/zebra#5472</title>
<g id="a_node3"><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,-334 24.5,-334 24.5,-266 255.5,-266 255.5,-334"/>
<text text-anchor="middle" x="140" y="-318.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5472</text>
<text text-anchor="middle" x="140" y="-303.8" font-family="Times,serif" font-size="14.00">Support shielded coinbase</text>
<text text-anchor="middle" x="140" y="-288.8" font-family="Times,serif" font-size="14.00">in `getblocktemplate` for</text>
<text text-anchor="middle" x="140" y="-273.8" font-family="Times,serif" font-size="14.00">Sapling addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5929 -->
<g id="node4" class="node open">
<title>ZcashFoundation/zebra#5929</title>
<g id="a_node4"><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,-334 340.5,-334 340.5,-266 571.5,-266 571.5,-334"/>
<text text-anchor="middle" x="456" y="-318.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5929</text>
<text text-anchor="middle" x="456" y="-303.8" font-family="Times,serif" font-size="14.00">Support shielded coinbase</text>
<text text-anchor="middle" x="456" y="-288.8" font-family="Times,serif" font-size="14.00">in `getblocktemplate` for</text>
<text text-anchor="middle" x="456" y="-273.8" 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="edge1" class="edge">
<title>ZcashFoundation/zebra#5472&#45;&gt;ZcashFoundation/zebra#5929</title>
<path fill="none" stroke="black" d="M255.69,-300C279.95,-300 305.65,-300 330.25,-300"/>
<polygon fill="black" stroke="black" points="330.35,-303.5 340.35,-300 330.35,-296.5 330.35,-303.5"/>
</g>
<!-- ZcashFoundation/zebra#7109 -->
<g id="node5" class="node open">
<title>ZcashFoundation/zebra#7109</title>
<g id="a_node5"><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" stroke-width="2" points="255.5,-162 24.5,-162 24.5,-94 255.5,-94 255.5,-162"/>
<text text-anchor="middle" x="140" y="-146.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7109</text>
<text text-anchor="middle" x="140" y="-131.8" font-family="Times,serif" font-size="14.00">Store cumulative work in</text>
<text text-anchor="middle" x="140" y="-116.8" font-family="Times,serif" font-size="14.00">the finalized state for</text>
<text text-anchor="middle" x="140" y="-101.8" font-family="Times,serif" font-size="14.00">each height</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#5297 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#5297</title>
<path fill="none" stroke="black" d="M255.73,-161.22C275.79,-166.91 296.49,-172.69 316,-178 324.3,-180.26 332.89,-182.57 341.54,-184.86"/>
<polygon fill="black" stroke="black" points="340.76,-188.27 351.32,-187.45 342.55,-181.51 340.76,-188.27"/>
</g>
<!-- ZcashFoundation/zebra#6688 -->
<g id="node6" class="node closed">
<title>ZcashFoundation/zebra#6688</title>
<g id="a_node6"><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="#fad8c7" stroke="black" points="571.5,-169.5 340.5,-169.5 340.5,-86.5 571.5,-86.5 571.5,-169.5"/>
<text text-anchor="middle" x="456" y="-154.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6688</text>
<text text-anchor="middle" x="456" y="-139.3" font-family="Times,serif" font-size="14.00">`getnetworksolps` &amp;</text>
<text text-anchor="middle" x="456" y="-124.3" font-family="Times,serif" font-size="14.00">`getnetworkhashps` RPCs</text>
<text text-anchor="middle" x="456" y="-109.3" font-family="Times,serif" font-size="14.00">hang with large</text>
<text text-anchor="middle" x="456" y="-94.3" font-family="Times,serif" font-size="14.00">num_blocks</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#6688 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#6688</title>
<path fill="none" stroke="black" d="M255.69,-128C279.95,-128 305.65,-128 330.25,-128"/>
<polygon fill="black" stroke="black" points="330.35,-131.5 340.35,-128 330.35,-124.5 330.35,-131.5"/>
</g>
<!-- ZcashFoundation/zebra#7110 -->
<g id="node7" class="node open">
<title>ZcashFoundation/zebra#7110</title>
<g id="a_node7"><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="571.5,-68 340.5,-68 340.5,0 571.5,0 571.5,-68"/>
<text text-anchor="middle" x="456" y="-52.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7110</text>
<text text-anchor="middle" x="456" y="-37.8" font-family="Times,serif" font-size="14.00">Show the full chain work</text>
<text text-anchor="middle" x="456" y="-22.8" font-family="Times,serif" font-size="14.00">in the chain fork</text>
<text text-anchor="middle" x="456" y="-7.8" font-family="Times,serif" font-size="14.00">progress bars</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#7110 -->
<g id="edge4" class="edge">
<title>ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#7110</title>
<path fill="none" stroke="black" d="M254.81,-93.93C279.78,-86.45 306.34,-78.5 331.68,-70.92"/>
<polygon fill="black" stroke="black" points="332.74,-74.25 341.32,-68.03 330.74,-67.55 332.74,-74.25"/>
</g>
<!-- ZcashFoundation/zebra#7403 -->
<g id="node8" class="node open">
<title>ZcashFoundation/zebra#7403</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7403" xlink:title="ZcashFoundation/zebra#7403&#10;Make `getnetworksolps` &amp;&#10;`getnetworkhashps` RPCs&#10;more efficient by caching&#10;difficulties and times" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="863,-169.5 632,-169.5 632,-86.5 863,-86.5 863,-169.5"/>
<text text-anchor="middle" x="747.5" y="-154.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7403</text>
<text text-anchor="middle" x="747.5" y="-139.3" font-family="Times,serif" font-size="14.00">Make `getnetworksolps` &amp;</text>
<text text-anchor="middle" x="747.5" y="-124.3" font-family="Times,serif" font-size="14.00">`getnetworkhashps` RPCs</text>
<text text-anchor="middle" x="747.5" y="-109.3" font-family="Times,serif" font-size="14.00">more efficient by caching</text>
<text text-anchor="middle" x="747.5" y="-94.3" font-family="Times,serif" font-size="14.00">difficulties and times</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6688&#45;&gt;ZcashFoundation/zebra#7403 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#6688&#45;&gt;ZcashFoundation/zebra#7403</title>
<path fill="none" stroke="black" d="M571.83,-128C588.18,-128 605.05,-128 621.57,-128"/>
<polygon fill="black" stroke="black" points="621.81,-131.5 631.81,-128 621.81,-124.5 621.81,-131.5"/>
</g>
<!-- ZcashFoundation/zebra#5604 -->
<g id="node9" class="node open">
<title>ZcashFoundation/zebra#5604</title>
<g id="a_node9"><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" stroke-width="2" points="255.5,-435.5 24.5,-435.5 24.5,-352.5 255.5,-352.5 255.5,-435.5"/>
<text text-anchor="middle" x="140" y="-420.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5604</text>
<text text-anchor="middle" x="140" y="-405.3" font-family="Times,serif" font-size="14.00">Send the same</text>
<text text-anchor="middle" x="140" y="-390.3" font-family="Times,serif" font-size="14.00">getblocktemplate RPC</text>
<text text-anchor="middle" x="140" y="-375.3" font-family="Times,serif" font-size="14.00">response until the</text>
<text text-anchor="middle" x="140" y="-360.3" font-family="Times,serif" font-size="14.00">template would change</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5911 -->
<g id="node10" class="node open">
<title>ZcashFoundation/zebra#5911</title>
<g id="a_node10"><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,-522 24.5,-522 24.5,-454 255.5,-454 255.5,-522"/>
<text text-anchor="middle" x="140" y="-506.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5911</text>
<text text-anchor="middle" x="140" y="-491.8" font-family="Times,serif" font-size="14.00">Store the serialized</text>
<text text-anchor="middle" x="140" y="-476.8" font-family="Times,serif" font-size="14.00">block size in the</text>
<text text-anchor="middle" x="140" y="-461.8" font-family="Times,serif" font-size="14.00">database</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4841 -->
<g id="node11" class="node closed">
<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="#fad8c7" stroke="black" points="571.5,-658.5 340.5,-658.5 340.5,-605.5 571.5,-605.5 571.5,-658.5"/>
<text text-anchor="middle" x="456" y="-643.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4841</text>
<text text-anchor="middle" x="456" y="-628.3" font-family="Times,serif" font-size="14.00">Improve note commitment</text>
<text text-anchor="middle" x="456" y="-613.3" font-family="Times,serif" font-size="14.00">tree append performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2908 -->
<g id="node12" class="node open">
<title>ZcashFoundation/zebra#2908</title>
<g id="a_node12"><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,-841 24.5,-841 24.5,-743 255.5,-743 255.5,-841"/>
<text text-anchor="middle" x="140" y="-825.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#2908</text>
<text text-anchor="middle" x="140" y="-810.8" font-family="Times,serif" font-size="14.00">Improve</text>
<text text-anchor="middle" x="140" y="-795.8" font-family="Times,serif" font-size="14.00">VerifyBlockError::Commit</text>
<text text-anchor="middle" x="140" y="-780.8" font-family="Times,serif" font-size="14.00">typing, so we don&#39;t</text>
<text text-anchor="middle" x="140" y="-765.8" font-family="Times,serif" font-size="14.00">accidentally break syncer</text>
<text text-anchor="middle" x="140" y="-750.8" font-family="Times,serif" font-size="14.00">error handling</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5487 -->
<g id="node13" class="node closed">
<title>ZcashFoundation/zebra#5487</title>
<g id="a_node13"><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="#fad8c7" stroke="black" points="571.5,-826 340.5,-826 340.5,-758 571.5,-758 571.5,-826"/>
<text text-anchor="middle" x="456" y="-810.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5487</text>
<text text-anchor="middle" x="456" y="-795.8" font-family="Times,serif" font-size="14.00">Return detailed errors</text>
<text text-anchor="middle" x="456" y="-780.8" font-family="Times,serif" font-size="14.00">from the `submitblock`</text>
<text text-anchor="middle" x="456" y="-765.8" font-family="Times,serif" font-size="14.00">RPC</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2908&#45;&gt;ZcashFoundation/zebra#5487 -->
<g id="edge6" class="edge">
<title>ZcashFoundation/zebra#2908&#45;&gt;ZcashFoundation/zebra#5487</title>
<path fill="none" stroke="black" d="M255.69,-792C279.95,-792 305.65,-792 330.25,-792"/>
<polygon fill="black" stroke="black" points="330.35,-795.5 340.35,-792 330.35,-788.5 330.35,-795.5"/>
</g>
<!-- ZcashFoundation/zebra#5709 -->
<g id="node14" class="node open">
<title>ZcashFoundation/zebra#5709</title>
<g id="a_node14"><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,-927 24.5,-927 24.5,-859 255.5,-859 255.5,-927"/>
<text text-anchor="middle" x="140" y="-911.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5709</text>
<text text-anchor="middle" x="140" y="-896.8" font-family="Times,serif" font-size="14.00">Fix repeated block</text>
<text text-anchor="middle" x="140" y="-881.8" font-family="Times,serif" font-size="14.00">timeouts during initial</text>
<text text-anchor="middle" x="140" y="-866.8" font-family="Times,serif" font-size="14.00">sync</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5425 -->
<g id="node15" class="node closed">
<title>ZcashFoundation/zebra#5425</title>
<g id="a_node15"><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,-927 340.5,-927 340.5,-859 571.5,-859 571.5,-927"/>
<text text-anchor="middle" x="456" y="-911.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5425</text>
<text text-anchor="middle" x="456" y="-896.8" font-family="Times,serif" font-size="14.00">Parallelise note</text>
<text text-anchor="middle" x="456" y="-881.8" font-family="Times,serif" font-size="14.00">commitment tree point</text>
<text text-anchor="middle" x="456" y="-866.8" font-family="Times,serif" font-size="14.00">conversions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5709&#45;&gt;ZcashFoundation/zebra#5425 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#5709&#45;&gt;ZcashFoundation/zebra#5425</title>
<path fill="none" stroke="black" d="M255.69,-893C279.95,-893 305.65,-893 330.25,-893"/>
<polygon fill="black" stroke="black" points="330.35,-896.5 340.35,-893 330.35,-889.5 330.35,-896.5"/>
</g>
<!-- ZcashFoundation/zebra#4774 -->
<g id="node16" class="node open">
<title>ZcashFoundation/zebra#4774</title>
<g id="a_node16"><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,-724.5 24.5,-724.5 24.5,-641.5 255.5,-641.5 255.5,-724.5"/>
<text text-anchor="middle" x="140" y="-709.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4774</text>
<text text-anchor="middle" x="140" y="-694.3" font-family="Times,serif" font-size="14.00">Add an NU5 block test</text>
<text text-anchor="middle" x="140" y="-679.3" font-family="Times,serif" font-size="14.00">vector that contains many</text>
<text text-anchor="middle" x="140" y="-664.3" font-family="Times,serif" font-size="14.00">shielded Orchard</text>
<text text-anchor="middle" x="140" y="-649.3" font-family="Times,serif" font-size="14.00">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge8" class="edge">
<title>ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="black" d="M255.69,-664.37C279.95,-660.43 305.65,-656.26 330.25,-652.26"/>
<polygon fill="black" stroke="black" points="331.04,-655.68 340.35,-650.62 329.92,-648.77 331.04,-655.68"/>
</g>
<!-- ZcashFoundation/zebra#4775 -->
<g id="node17" class="node open">
<title>ZcashFoundation/zebra#4775</title>
<g id="a_node17"><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,-623.5 24.5,-623.5 24.5,-540.5 255.5,-540.5 255.5,-623.5"/>
<text text-anchor="middle" x="140" y="-608.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4775</text>
<text text-anchor="middle" x="140" y="-593.3" font-family="Times,serif" font-size="14.00">Add an NU5 block test</text>
<text text-anchor="middle" x="140" y="-578.3" font-family="Times,serif" font-size="14.00">vector that contains many</text>
<text text-anchor="middle" x="140" y="-563.3" font-family="Times,serif" font-size="14.00">shielded Sapling</text>
<text text-anchor="middle" x="140" y="-548.3" font-family="Times,serif" font-size="14.00">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="black" d="M255.69,-600.26C279.95,-604.13 305.65,-608.22 330.25,-612.14"/>
<polygon fill="black" stroke="black" points="329.93,-615.63 340.35,-613.74 331.02,-608.72 329.93,-615.63"/>
</g>
<!-- ZcashFoundation/zebra#4545 -->
<g id="node18" class="node open">
<title>ZcashFoundation/zebra#4545</title>
<g id="a_node18"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4545" xlink:title="ZcashFoundation/zebra#4545&#10;Start disconnecting from&#10;outdated peers a few days&#10;before network upgrade&#10;activation" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-1028.5 340.5,-1028.5 340.5,-945.5 571.5,-945.5 571.5,-1028.5"/>
<text text-anchor="middle" x="456" y="-1013.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4545</text>
<text text-anchor="middle" x="456" y="-998.3" font-family="Times,serif" font-size="14.00">Start disconnecting from</text>
<text text-anchor="middle" x="456" y="-983.3" font-family="Times,serif" font-size="14.00">outdated peers a few days</text>
<text text-anchor="middle" x="456" y="-968.3" font-family="Times,serif" font-size="14.00">before network upgrade</text>
<text text-anchor="middle" x="456" y="-953.3" font-family="Times,serif" font-size="14.00">activation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4226 -->
<g id="node19" class="node closed">
<title>ZcashFoundation/zebra#4226</title>
<g id="a_node19"><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="863,-1021 632,-1021 632,-953 863,-953 863,-1021"/>
<text text-anchor="middle" x="747.5" y="-1005.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4226</text>
<text text-anchor="middle" x="747.5" y="-990.8" font-family="Times,serif" font-size="14.00">Prefer faster peers, but</text>
<text text-anchor="middle" x="747.5" y="-975.8" font-family="Times,serif" font-size="14.00">if all peers are slow,</text>
<text text-anchor="middle" x="747.5" y="-960.8" 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="edge10" class="edge">
<title>ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226</title>
<path fill="none" stroke="black" d="M571.83,-987C588.18,-987 605.05,-987 621.57,-987"/>
<polygon fill="black" stroke="black" points="621.81,-990.5 631.81,-987 621.81,-983.5 621.81,-990.5"/>
</g>
<!-- ZcashFoundation/zebra#7617 -->
<g id="node20" class="node open">
<title>ZcashFoundation/zebra#7617</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/7617" xlink:title="ZcashFoundation/zebra#7617&#10;ref(docker): use cache&#10;mounts for build cache" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1099.5 24.5,-1099.5 24.5,-1095.5 20.5,-1095.5 20.5,-1091.5 24.5,-1091.5 24.5,-1054.5 20.5,-1054.5 20.5,-1050.5 24.5,-1050.5 24.5,-1046.5 255.5,-1046.5 255.5,-1099.5"/>
<polyline fill="none" stroke="black" stroke-width="2" points="24.5,-1095.5 28.5,-1095.5 28.5,-1091.5 24.5,-1091.5 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="24.5,-1054.5 28.5,-1054.5 28.5,-1050.5 24.5,-1050.5 "/>
<text text-anchor="middle" x="140" y="-1084.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7617</text>
<text text-anchor="middle" x="140" y="-1069.3" font-family="Times,serif" font-size="14.00">ref(docker): use cache</text>
<text text-anchor="middle" x="140" y="-1054.3" font-family="Times,serif" font-size="14.00">mounts for build cache</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6894 -->
<g id="node21" class="node open">
<title>ZcashFoundation/zebra#6894</title>
<g id="a_node21"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6894" xlink:title="ZcashFoundation/zebra#6894&#10;Use cached state for&#10;continuous deployment&#10;instances" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1186 24.5,-1186 24.5,-1118 255.5,-1118 255.5,-1186"/>
<text text-anchor="middle" x="140" y="-1170.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6894</text>
<text text-anchor="middle" x="140" y="-1155.8" font-family="Times,serif" font-size="14.00">Use cached state for</text>
<text text-anchor="middle" x="140" y="-1140.8" font-family="Times,serif" font-size="14.00">continuous deployment</text>
<text text-anchor="middle" x="140" y="-1125.8" font-family="Times,serif" font-size="14.00">instances</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7738 -->
<g id="node22" class="node open">
<title>ZcashFoundation/zebra#7738</title>
<g id="a_node22"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7738" xlink:title="ZcashFoundation/zebra#7738&#10;docs: Add ticket&#10;templates for RPC methods&#10;and state format upgrades" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-1265 340.5,-1265 340.5,-1197 571.5,-1197 571.5,-1265"/>
<text text-anchor="middle" x="456" y="-1249.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7738</text>
<text text-anchor="middle" x="456" y="-1234.8" font-family="Times,serif" font-size="14.00">docs: Add ticket</text>
<text text-anchor="middle" x="456" y="-1219.8" font-family="Times,serif" font-size="14.00">templates for RPC methods</text>
<text text-anchor="middle" x="456" y="-1204.8" font-family="Times,serif" font-size="14.00">and state format upgrades</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7833 -->
<g id="node23" class="node open">
<title>ZcashFoundation/zebra#7833</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7833" xlink:title="ZcashFoundation/zebra#7833&#10;Document how to design&#10;RPCs and state queries" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1257.5 24.5,-1257.5 24.5,-1204.5 255.5,-1204.5 255.5,-1257.5"/>
<text text-anchor="middle" x="140" y="-1242.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7833</text>
<text text-anchor="middle" x="140" y="-1227.3" font-family="Times,serif" font-size="14.00">Document how to design</text>
<text text-anchor="middle" x="140" y="-1212.3" font-family="Times,serif" font-size="14.00">RPCs and state queries</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7833&#45;&gt;ZcashFoundation/zebra#7738 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#7833&#45;&gt;ZcashFoundation/zebra#7738</title>
<path fill="none" stroke="black" d="M255.69,-1231C279.95,-1231 305.65,-1231 330.25,-1231"/>
<polygon fill="black" stroke="black" points="330.35,-1234.5 340.35,-1231 330.35,-1227.5 330.35,-1234.5"/>
</g>
<!-- ZcashFoundation/zebra#7383 -->
<g id="node24" class="node open">
<title>ZcashFoundation/zebra#7383</title>
<g id="a_node24"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7383" xlink:title="ZcashFoundation/zebra#7383&#10;(De)Serialize&#10;`NoteCommitmentTree`s&#10;using supported&#10;serialization format&#10;instead of `bincode`" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1374 24.5,-1374 24.5,-1276 255.5,-1276 255.5,-1374"/>
<text text-anchor="middle" x="140" y="-1358.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7383</text>
<text text-anchor="middle" x="140" y="-1343.8" font-family="Times,serif" font-size="14.00">(De)Serialize</text>
<text text-anchor="middle" x="140" y="-1328.8" font-family="Times,serif" font-size="14.00">`NoteCommitmentTree`s</text>
<text text-anchor="middle" x="140" y="-1313.8" font-family="Times,serif" font-size="14.00">using supported</text>
<text text-anchor="middle" x="140" y="-1298.8" font-family="Times,serif" font-size="14.00">serialization format</text>
<text text-anchor="middle" x="140" y="-1283.8" font-family="Times,serif" font-size="14.00">instead of `bincode`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7416 -->
<g id="node25" class="node open">
<title>ZcashFoundation/zebra#7416</title>
<g id="a_node25"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7416" xlink:title="ZcashFoundation/zebra#7416&#10;diagnostic: Log column&#10;family and database size&#10;on startup and shutdown" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1460 24.5,-1460 24.5,-1392 255.5,-1392 255.5,-1460"/>
<text text-anchor="middle" x="140" y="-1444.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7416</text>
<text text-anchor="middle" x="140" y="-1429.8" font-family="Times,serif" font-size="14.00">diagnostic: Log column</text>
<text text-anchor="middle" x="140" y="-1414.8" font-family="Times,serif" font-size="14.00">family and database size</text>
<text text-anchor="middle" x="140" y="-1399.8" font-family="Times,serif" font-size="14.00">on startup and shutdown</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5718 -->
<g id="node26" class="node open">
<title>ZcashFoundation/zebra#5718</title>
<g id="a_node26"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5718" xlink:title="ZcashFoundation/zebra#5718&#10;Reduce Zebra disk usage&#10;for mining pools" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-1452.5 340.5,-1452.5 340.5,-1399.5 571.5,-1399.5 571.5,-1452.5"/>
<text text-anchor="middle" x="456" y="-1437.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5718</text>
<text text-anchor="middle" x="456" y="-1422.3" font-family="Times,serif" font-size="14.00">Reduce Zebra disk usage</text>
<text text-anchor="middle" x="456" y="-1407.3" font-family="Times,serif" font-size="14.00">for mining pools</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7416&#45;&gt;ZcashFoundation/zebra#5718 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#7416&#45;&gt;ZcashFoundation/zebra#5718</title>
<path fill="none" stroke="black" d="M255.69,-1426C279.95,-1426 305.65,-1426 330.25,-1426"/>
<polygon fill="black" stroke="black" points="330.35,-1429.5 340.35,-1426 330.35,-1422.5 330.35,-1429.5"/>
</g>
<!-- ZcashFoundation/zebra#6642 -->
<g id="node27" class="node open">
<title>ZcashFoundation/zebra#6642</title>
<g id="a_node27"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/6642" xlink:title="ZcashFoundation/zebra#6642&#10;Tracking: Update&#10;`lightwalletd` RPCs for&#10;&quot;spend before sync&quot;&#10;algorithm" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1561.5 24.5,-1561.5 24.5,-1478.5 255.5,-1478.5 255.5,-1561.5"/>
<text text-anchor="middle" x="140" y="-1546.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6642</text>
<text text-anchor="middle" x="140" y="-1531.3" font-family="Times,serif" font-size="14.00">Tracking: Update</text>
<text text-anchor="middle" x="140" y="-1516.3" font-family="Times,serif" font-size="14.00">`lightwalletd` RPCs for</text>
<text text-anchor="middle" x="140" y="-1501.3" font-family="Times,serif" font-size="14.00">&quot;spend before sync&quot;</text>
<text text-anchor="middle" x="140" y="-1486.3" font-family="Times,serif" font-size="14.00">algorithm</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7558 -->
<g id="node28" class="node open">
<title>ZcashFoundation/zebra#7558</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7558" xlink:title="ZcashFoundation/zebra#7558&#10;dev docs: Document how to&#10;fix cached state issues" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-1632.5 340.5,-1632.5 340.5,-1579.5 571.5,-1579.5 571.5,-1632.5"/>
<text text-anchor="middle" x="456" y="-1617.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7558</text>
<text text-anchor="middle" x="456" y="-1602.3" font-family="Times,serif" font-size="14.00">dev docs: Document how to</text>
<text text-anchor="middle" x="456" y="-1587.3" font-family="Times,serif" font-size="14.00">fix cached state issues</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7785 -->
<g id="node29" class="node open">
<title>ZcashFoundation/zebra#7785</title>
<g id="a_node29"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7785" xlink:title="ZcashFoundation/zebra#7785&#10;change: Support hiding&#10;specific progress bars in&#10;summary mode" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1719 24.5,-1719 24.5,-1651 255.5,-1651 255.5,-1719"/>
<text text-anchor="middle" x="140" y="-1703.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7785</text>
<text text-anchor="middle" x="140" y="-1688.8" font-family="Times,serif" font-size="14.00">change: Support hiding</text>
<text text-anchor="middle" x="140" y="-1673.8" font-family="Times,serif" font-size="14.00">specific progress bars in</text>
<text text-anchor="middle" x="140" y="-1658.8" font-family="Times,serif" font-size="14.00">summary mode</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7648 -->
<g id="node30" class="node open">
<title>ZcashFoundation/zebra#7648</title>
<g id="a_node30"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7648" xlink:title="ZcashFoundation/zebra#7648&#10;Allow logging to terminal&#10;when progress bars are&#10;enabled" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-1719 340.5,-1719 340.5,-1651 571.5,-1651 571.5,-1719"/>
<text text-anchor="middle" x="456" y="-1703.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7648</text>
<text text-anchor="middle" x="456" y="-1688.8" font-family="Times,serif" font-size="14.00">Allow logging to terminal</text>
<text text-anchor="middle" x="456" y="-1673.8" font-family="Times,serif" font-size="14.00">when progress bars are</text>
<text text-anchor="middle" x="456" y="-1658.8" font-family="Times,serif" font-size="14.00">enabled</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7785&#45;&gt;ZcashFoundation/zebra#7648 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#7785&#45;&gt;ZcashFoundation/zebra#7648</title>
<path fill="none" stroke="black" d="M255.69,-1685C279.95,-1685 305.65,-1685 330.25,-1685"/>
<polygon fill="black" stroke="black" points="330.35,-1688.5 340.35,-1685 330.35,-1681.5 330.35,-1688.5"/>
</g>
<!-- ZcashFoundation/zebra#7533 -->
<g id="node31" class="node open">
<title>ZcashFoundation/zebra#7533</title>
<g id="a_node31"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7533" xlink:title="ZcashFoundation/zebra#7533&#10;Document how to rebuild&#10;cached states" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1632.5 24.5,-1632.5 24.5,-1579.5 255.5,-1579.5 255.5,-1632.5"/>
<text text-anchor="middle" x="140" y="-1617.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7533</text>
<text text-anchor="middle" x="140" y="-1602.3" font-family="Times,serif" font-size="14.00">Document how to rebuild</text>
<text text-anchor="middle" x="140" y="-1587.3" font-family="Times,serif" font-size="14.00">cached states</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7533&#45;&gt;ZcashFoundation/zebra#7558 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#7533&#45;&gt;ZcashFoundation/zebra#7558</title>
<path fill="none" stroke="black" d="M255.69,-1606C279.95,-1606 305.65,-1606 330.25,-1606"/>
<polygon fill="black" stroke="black" points="330.35,-1609.5 340.35,-1606 330.35,-1602.5 330.35,-1609.5"/>
</g>
<!-- ZcashFoundation/zebra#7119 -->
<g id="node32" class="node open">
<title>ZcashFoundation/zebra#7119</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7119" xlink:title="ZcashFoundation/zebra#7119&#10;Tracking: Add regtest&#10;network" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1790.5 24.5,-1790.5 24.5,-1737.5 255.5,-1737.5 255.5,-1790.5"/>
<text text-anchor="middle" x="140" y="-1775.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7119</text>
<text text-anchor="middle" x="140" y="-1760.3" font-family="Times,serif" font-size="14.00">Tracking: Add regtest</text>
<text text-anchor="middle" x="140" y="-1745.3" font-family="Times,serif" font-size="14.00">network</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7534 -->
<g id="node33" class="node open">
<title>ZcashFoundation/zebra#7534</title>
<g id="a_node33"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7534" xlink:title="ZcashFoundation/zebra#7534&#10;Make it possible to run&#10;CI tests locally for&#10;developers" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1877 24.5,-1877 24.5,-1809 255.5,-1809 255.5,-1877"/>
<text text-anchor="middle" x="140" y="-1861.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7534</text>
<text text-anchor="middle" x="140" y="-1846.8" font-family="Times,serif" font-size="14.00">Make it possible to run</text>
<text text-anchor="middle" x="140" y="-1831.8" font-family="Times,serif" font-size="14.00">CI tests locally for</text>
<text text-anchor="middle" x="140" y="-1816.8" font-family="Times,serif" font-size="14.00">developers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4464 -->
<g id="node34" class="node open">
<title>ZcashFoundation/zebra#4464</title>
<g id="a_node34"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4464" xlink:title="ZcashFoundation/zebra#4464&#10;ci: create documentation&#10;on how to run tests&#10;locally for development&#10;purposes" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-1884.5 340.5,-1884.5 340.5,-1801.5 571.5,-1801.5 571.5,-1884.5"/>
<text text-anchor="middle" x="456" y="-1869.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4464</text>
<text text-anchor="middle" x="456" y="-1854.3" font-family="Times,serif" font-size="14.00">ci: create documentation</text>
<text text-anchor="middle" x="456" y="-1839.3" font-family="Times,serif" font-size="14.00">on how to run tests</text>
<text text-anchor="middle" x="456" y="-1824.3" font-family="Times,serif" font-size="14.00">locally for development</text>
<text text-anchor="middle" x="456" y="-1809.3" font-family="Times,serif" font-size="14.00">purposes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7534&#45;&gt;ZcashFoundation/zebra#4464 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#7534&#45;&gt;ZcashFoundation/zebra#4464</title>
<path fill="none" stroke="black" d="M255.69,-1843C279.95,-1843 305.65,-1843 330.25,-1843"/>
<polygon fill="black" stroke="black" points="330.35,-1846.5 340.35,-1843 330.35,-1839.5 330.35,-1846.5"/>
</g>
<!-- ZcashFoundation/zebra#7845 -->
<g id="node35" class="node open">
<title>ZcashFoundation/zebra#7845</title>
<g id="a_node35"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7845" xlink:title="ZcashFoundation/zebra#7845&#10;Add parameters to&#10;`Network::Testnet`&#10;variant" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1963 24.5,-1963 24.5,-1895 255.5,-1895 255.5,-1963"/>
<text text-anchor="middle" x="140" y="-1947.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7845</text>
<text text-anchor="middle" x="140" y="-1932.8" font-family="Times,serif" font-size="14.00">Add parameters to</text>
<text text-anchor="middle" x="140" y="-1917.8" font-family="Times,serif" font-size="14.00">`Network::Testnet`</text>
<text text-anchor="middle" x="140" y="-1902.8" font-family="Times,serif" font-size="14.00">variant</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7839 -->
<g id="node36" class="node open">
<title>ZcashFoundation/zebra#7839</title>
<g id="a_node36"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7839" xlink:title="ZcashFoundation/zebra#7839&#10;Add a `Regtest` constant&#10;of `Network::Testnet`" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-1955.5 340.5,-1955.5 340.5,-1902.5 571.5,-1902.5 571.5,-1955.5"/>
<text text-anchor="middle" x="456" y="-1940.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7839</text>
<text text-anchor="middle" x="456" y="-1925.3" font-family="Times,serif" font-size="14.00">Add a `Regtest` constant</text>
<text text-anchor="middle" x="456" y="-1910.3" font-family="Times,serif" font-size="14.00">of `Network::Testnet`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7845&#45;&gt;ZcashFoundation/zebra#7839 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#7845&#45;&gt;ZcashFoundation/zebra#7839</title>
<path fill="none" stroke="black" d="M255.69,-1929C279.95,-1929 305.65,-1929 330.25,-1929"/>
<polygon fill="black" stroke="black" points="330.35,-1932.5 340.35,-1929 330.35,-1925.5 330.35,-1932.5"/>
</g>
<!-- ZcashFoundation/zebra#7847 -->
<g id="node37" class="node open">
<title>ZcashFoundation/zebra#7847</title>
<g id="a_node37"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7847" xlink:title="ZcashFoundation/zebra#7847&#10;Reconnect to peers after&#10;arbitrarily long&#10;disconnections with&#10;randomized exponential&#10;backoff" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-2079 24.5,-2079 24.5,-1981 255.5,-1981 255.5,-2079"/>
<text text-anchor="middle" x="140" y="-2063.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7847</text>
<text text-anchor="middle" x="140" y="-2048.8" font-family="Times,serif" font-size="14.00">Reconnect to peers after</text>
<text text-anchor="middle" x="140" y="-2033.8" font-family="Times,serif" font-size="14.00">arbitrarily long</text>
<text text-anchor="middle" x="140" y="-2018.8" font-family="Times,serif" font-size="14.00">disconnections with</text>
<text text-anchor="middle" x="140" y="-2003.8" font-family="Times,serif" font-size="14.00">randomized exponential</text>
<text text-anchor="middle" x="140" y="-1988.8" font-family="Times,serif" font-size="14.00">backoff</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3117 -->
<g id="node38" class="node open">
<title>ZcashFoundation/zebra#3117</title>
<g id="a_node38"><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="black" stroke-width="2" points="255.5,-2150.5 24.5,-2150.5 24.5,-2097.5 255.5,-2097.5 255.5,-2150.5"/>
<text text-anchor="middle" x="140" y="-2135.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#3117</text>
<text text-anchor="middle" x="140" y="-2120.3" font-family="Times,serif" font-size="14.00">Stop using private IP</text>
<text text-anchor="middle" x="140" y="-2105.3" font-family="Times,serif" font-size="14.00">addresses by default</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id="node39" class="node open">
<title>ZcashFoundation/zebra#1890</title>
<g id="a_node39"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1890" xlink:title="ZcashFoundation/zebra#1890&#10;Zebra should support&#10;separate local bind and&#10;external advertise&#10;addresses" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-2165.5 340.5,-2165.5 340.5,-2082.5 571.5,-2082.5 571.5,-2165.5"/>
<text text-anchor="middle" x="456" y="-2150.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#1890</text>
<text text-anchor="middle" x="456" y="-2135.3" font-family="Times,serif" font-size="14.00">Zebra should support</text>
<text text-anchor="middle" x="456" y="-2120.3" font-family="Times,serif" font-size="14.00">separate local bind and</text>
<text text-anchor="middle" x="456" y="-2105.3" font-family="Times,serif" font-size="14.00">external advertise</text>
<text text-anchor="middle" x="456" y="-2090.3" font-family="Times,serif" font-size="14.00">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3117&#45;&gt;ZcashFoundation/zebra#1890 -->
<g id="edge17" class="edge">
<title>ZcashFoundation/zebra#3117&#45;&gt;ZcashFoundation/zebra#1890</title>
<path fill="none" stroke="black" d="M255.69,-2124C279.95,-2124 305.65,-2124 330.25,-2124"/>
<polygon fill="black" stroke="black" points="330.35,-2127.5 340.35,-2124 330.35,-2120.5 330.35,-2127.5"/>
</g>
<!-- ZcashFoundation/zebra#7822 -->
<g id="node40" class="node open">
<title>ZcashFoundation/zebra#7822</title>
<g id="a_node40"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7822" xlink:title="ZcashFoundation/zebra#7822&#10;security: Limit ability&#10;of synthetic nodes to&#10;take up connection slots.&#10;Credit: Ziggurat Team" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-1028.5 24.5,-1028.5 24.5,-945.5 255.5,-945.5 255.5,-1028.5"/>
<text text-anchor="middle" x="140" y="-1013.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7822</text>
<text text-anchor="middle" x="140" y="-998.3" font-family="Times,serif" font-size="14.00">security: Limit ability</text>
<text text-anchor="middle" x="140" y="-983.3" font-family="Times,serif" font-size="14.00">of synthetic nodes to</text>
<text text-anchor="middle" x="140" y="-968.3" font-family="Times,serif" font-size="14.00">take up connection slots.</text>
<text text-anchor="middle" x="140" y="-953.3" font-family="Times,serif" font-size="14.00">Credit: Ziggurat Team</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7822&#45;&gt;ZcashFoundation/zebra#4545 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#7822&#45;&gt;ZcashFoundation/zebra#4545</title>
<path fill="none" stroke="black" d="M255.69,-987C279.95,-987 305.65,-987 330.25,-987"/>
<polygon fill="black" stroke="black" points="330.35,-990.5 340.35,-987 330.35,-983.5 330.35,-990.5"/>
</g>
<!-- ZcashFoundation/zebra#7680 -->
<g id="node41" class="node open">
<title>ZcashFoundation/zebra#7680</title>
<g id="a_node41"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7680" xlink:title="ZcashFoundation/zebra#7680&#10;Automatically open an&#10;issue when main branch&#10;release&#45;related merges&#10;fail" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-2259.5 24.5,-2259.5 24.5,-2176.5 255.5,-2176.5 255.5,-2259.5"/>
<text text-anchor="middle" x="140" y="-2244.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7680</text>
<text text-anchor="middle" x="140" y="-2229.3" font-family="Times,serif" font-size="14.00">Automatically open an</text>
<text text-anchor="middle" x="140" y="-2214.3" font-family="Times,serif" font-size="14.00">issue when main branch</text>
<text text-anchor="middle" x="140" y="-2199.3" font-family="Times,serif" font-size="14.00">release&#45;related merges</text>
<text text-anchor="middle" x="140" y="-2184.3" font-family="Times,serif" font-size="14.00">fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7891 -->
<g id="node42" class="node open">
<title>ZcashFoundation/zebra#7891</title>
<g id="a_node42"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7891" xlink:title="ZcashFoundation/zebra#7891&#10;change(docker): Publish&#10;fewer Zebra docker tags,&#10;and standardise names" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-2252 340.5,-2252 340.5,-2184 571.5,-2184 571.5,-2252"/>
<text text-anchor="middle" x="456" y="-2236.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7891</text>
<text text-anchor="middle" x="456" y="-2221.8" font-family="Times,serif" font-size="14.00">change(docker): Publish</text>
<text text-anchor="middle" x="456" y="-2206.8" font-family="Times,serif" font-size="14.00">fewer Zebra docker tags,</text>
<text text-anchor="middle" x="456" y="-2191.8" font-family="Times,serif" font-size="14.00">and standardise names</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7680&#45;&gt;ZcashFoundation/zebra#7891 -->
<g id="edge19" class="edge">
<title>ZcashFoundation/zebra#7680&#45;&gt;ZcashFoundation/zebra#7891</title>
<path fill="none" stroke="black" d="M255.69,-2218C279.95,-2218 305.65,-2218 330.25,-2218"/>
<polygon fill="black" stroke="black" points="330.35,-2221.5 340.35,-2218 330.35,-2214.5 330.35,-2221.5"/>
</g>
<!-- ZcashFoundation/zebra#7892 -->
<g id="node43" class="node open">
<title>ZcashFoundation/zebra#7892</title>
<g id="a_node43"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7892" xlink:title="ZcashFoundation/zebra#7892&#10;change(release): Enable&#10;all user features in the&#10;`experimental` build" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="863,-2252 632,-2252 632,-2184 863,-2184 863,-2252"/>
<text text-anchor="middle" x="747.5" y="-2236.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7892</text>
<text text-anchor="middle" x="747.5" y="-2221.8" font-family="Times,serif" font-size="14.00">change(release): Enable</text>
<text text-anchor="middle" x="747.5" y="-2206.8" font-family="Times,serif" font-size="14.00">all user features in the</text>
<text text-anchor="middle" x="747.5" y="-2191.8" font-family="Times,serif" font-size="14.00">`experimental` build</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7891&#45;&gt;ZcashFoundation/zebra#7892 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#7891&#45;&gt;ZcashFoundation/zebra#7892</title>
<path fill="none" stroke="black" d="M571.83,-2218C588.18,-2218 605.05,-2218 621.57,-2218"/>
<polygon fill="black" stroke="black" points="621.81,-2221.5 631.81,-2218 621.81,-2214.5 621.81,-2221.5"/>
</g>
<!-- ZcashFoundation/zebra#7905 -->
<g id="node44" class="node open">
<title>ZcashFoundation/zebra#7905</title>
<g id="a_node44"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7905" xlink:title="ZcashFoundation/zebra#7905&#10;feat(zebra&#45;scan): Create&#10;the scanner task" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-2401.5 24.5,-2401.5 24.5,-2348.5 255.5,-2348.5 255.5,-2401.5"/>
<text text-anchor="middle" x="140" y="-2386.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7905</text>
<text text-anchor="middle" x="140" y="-2371.3" font-family="Times,serif" font-size="14.00">feat(zebra&#45;scan): Create</text>
<text text-anchor="middle" x="140" y="-2356.3" font-family="Times,serif" font-size="14.00">the scanner task</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7907 -->
<g id="node45" class="node open">
<title>ZcashFoundation/zebra#7907</title>
<g id="a_node45"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7907" xlink:title="ZcashFoundation/zebra#7907&#10;feat(zebra&#45;scan): Make&#10;the scanner send data to&#10;the broadcast channel" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-2373 340.5,-2373 340.5,-2305 571.5,-2305 571.5,-2373"/>
<text text-anchor="middle" x="456" y="-2357.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7907</text>
<text text-anchor="middle" x="456" y="-2342.8" font-family="Times,serif" font-size="14.00">feat(zebra&#45;scan): Make</text>
<text text-anchor="middle" x="456" y="-2327.8" font-family="Times,serif" font-size="14.00">the scanner send data to</text>
<text text-anchor="middle" x="456" y="-2312.8" font-family="Times,serif" font-size="14.00">the broadcast channel</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7905&#45;&gt;ZcashFoundation/zebra#7907 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#7905&#45;&gt;ZcashFoundation/zebra#7907</title>
<path fill="none" stroke="black" d="M255.69,-2361.9C279.95,-2359.1 305.65,-2356.1 330.25,-2353.3"/>
<polygon fill="black" stroke="black" points="330.83,-2356.76 340.35,-2352.1 330.01,-2349.8 330.83,-2356.76"/>
</g>
<!-- ZcashFoundation/zebra#7906 -->
<g id="node46" class="node open">
<title>ZcashFoundation/zebra#7906</title>
<g id="a_node46"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7906" xlink:title="ZcashFoundation/zebra#7906&#10;feat(zebra&#45;scan): Create&#10;a broadcast channel" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-2330.5 24.5,-2330.5 24.5,-2277.5 255.5,-2277.5 255.5,-2330.5"/>
<text text-anchor="middle" x="140" y="-2315.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7906</text>
<text text-anchor="middle" x="140" y="-2300.3" font-family="Times,serif" font-size="14.00">feat(zebra&#45;scan): Create</text>
<text text-anchor="middle" x="140" y="-2285.3" font-family="Times,serif" font-size="14.00">a broadcast channel</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7906&#45;&gt;ZcashFoundation/zebra#7907 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#7906&#45;&gt;ZcashFoundation/zebra#7907</title>
<path fill="none" stroke="black" d="M255.69,-2316.8C279.95,-2319.5 305.65,-2322.4 330.25,-2325.1"/>
<polygon fill="black" stroke="black" points="330.03,-2328.6 340.35,-2326.2 330.79,-2321.64 330.03,-2328.6"/>
</g>
<!-- ZcashFoundation/zebra#7903 -->
<g id="node47" class="node open">
<title>ZcashFoundation/zebra#7903</title>
<g id="a_node47"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7903" xlink:title="ZcashFoundation/zebra#7903&#10;test: &#160;Scan a&#10;`populated_state()` for&#10;the ZECpages viewing key" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-2488 24.5,-2488 24.5,-2420 255.5,-2420 255.5,-2488"/>
<text text-anchor="middle" x="140" y="-2472.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7903</text>
<text text-anchor="middle" x="140" y="-2457.8" font-family="Times,serif" font-size="14.00">test: &#160;Scan a</text>
<text text-anchor="middle" x="140" y="-2442.8" font-family="Times,serif" font-size="14.00">`populated_state()` for</text>
<text text-anchor="middle" x="140" y="-2427.8" font-family="Times,serif" font-size="14.00">the ZECpages viewing key</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7727 -->
<g id="node48" class="node open">
<title>ZcashFoundation/zebra#7727</title>
<g id="a_node48"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7727" xlink:title="ZcashFoundation/zebra#7727&#10;feature: Blockchain&#10;scanner PoC" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-2480.5 340.5,-2480.5 340.5,-2427.5 571.5,-2427.5 571.5,-2480.5"/>
<text text-anchor="middle" x="456" y="-2465.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7727</text>
<text text-anchor="middle" x="456" y="-2450.3" font-family="Times,serif" font-size="14.00">feature: Blockchain</text>
<text text-anchor="middle" x="456" y="-2435.3" font-family="Times,serif" font-size="14.00">scanner PoC</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7903&#45;&gt;ZcashFoundation/zebra#7727 -->
<g id="edge23" class="edge">
<title>ZcashFoundation/zebra#7903&#45;&gt;ZcashFoundation/zebra#7727</title>
<path fill="none" stroke="black" d="M255.69,-2454C279.95,-2454 305.65,-2454 330.25,-2454"/>
<polygon fill="black" stroke="black" points="330.35,-2457.5 340.35,-2454 330.35,-2450.5 330.35,-2457.5"/>
</g>
<!-- ZcashFoundation/ed25519&#45;zebra#77 -->
<g id="node49" class="node open">
<title>ZcashFoundation/ed25519&#45;zebra#77</title>
<g id="a_node49"><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,-2574 0,-2574 0,-2506 280,-2506 280,-2574"/>
<text text-anchor="middle" x="140" y="-2558.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/ed25519&#45;zebra#77</text>
<text text-anchor="middle" x="140" y="-2543.8" font-family="Times,serif" font-size="14.00">Add instructions to the</text>
<text text-anchor="middle" x="140" y="-2528.8" font-family="Times,serif" font-size="14.00">README for updating this</text>
<text text-anchor="middle" x="140" y="-2513.8" font-family="Times,serif" font-size="14.00">crate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/ed25519&#45;zebra#79 -->
<g id="node50" class="node closed">
<title>ZcashFoundation/ed25519&#45;zebra#79</title>
<g id="a_node50"><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,-2566.5 316,-2566.5 316,-2513.5 596,-2513.5 596,-2566.5"/>
<text text-anchor="middle" x="456" y="-2551.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/ed25519&#45;zebra#79</text>
<text text-anchor="middle" x="456" y="-2536.3" font-family="Times,serif" font-size="14.00">Tag a new &#160;ed25519&#45;zebra</text>
<text text-anchor="middle" x="456" y="-2521.3" 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="edge24" class="edge">
<title>ZcashFoundation/ed25519&#45;zebra#77&#45;&gt;ZcashFoundation/ed25519&#45;zebra#79</title>
<path fill="none" stroke="black" d="M280.1,-2540C288.49,-2540 296.96,-2540 305.4,-2540"/>
<polygon fill="black" stroke="black" points="305.67,-2543.5 315.67,-2540 305.67,-2536.5 305.67,-2543.5"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>