developers/zcash-zf-dag.html

962 lines
70 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="3102pt"
viewBox="0.00 0.00 871.00 3102.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 3098)">
<polygon fill="white" stroke="transparent" points="-4,4 -4,-3098 867,-3098 867,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_0</title>
<polygon fill="none" stroke="blue" points="16.5,0 16.5,-149 263.5,-149 263.5,0 16.5,0"/>
<text text-anchor="middle" x="140" y="-133.8" font-family="Times,serif" font-size="14.00">Epic: NU6</text>
</g>
<!-- ZcashFoundation/zebra#7958 -->
<g id="node1" class="node open">
<title>ZcashFoundation/zebra#7958</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7958" xlink:title="ZcashFoundation/zebra#7958&#10;Add NU6 network upgrade&#10;variant" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-117.5 24.5,-117.5 24.5,-64.5 255.5,-64.5 255.5,-117.5"/>
<text text-anchor="middle" x="140" y="-102.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7958</text>
<text text-anchor="middle" x="140" y="-87.3" font-family="Times,serif" font-size="14.00">Add NU6 network upgrade</text>
<text text-anchor="middle" x="140" y="-72.3" font-family="Times,serif" font-size="14.00">variant</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7959 -->
<g id="node2" class="node open">
<title>ZcashFoundation/zebra#7959</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7959" xlink:title="ZcashFoundation/zebra#7959&#10;Add v6 transactions" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-46 24.5,-46 24.5,-8 255.5,-8 255.5,-46"/>
<text text-anchor="middle" x="140" y="-30.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7959</text>
<text text-anchor="middle" x="140" y="-15.8" font-family="Times,serif" font-size="14.00">Add v6 transactions</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="571.5,-303.5 340.5,-303.5 340.5,-250.5 571.5,-250.5 571.5,-303.5"/>
<text text-anchor="middle" x="456" y="-288.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5297</text>
<text text-anchor="middle" x="456" y="-273.3" font-family="Times,serif" font-size="14.00">Add metrics for chain</text>
<text text-anchor="middle" x="456" y="-258.3" font-family="Times,serif" font-size="14.00">fork work and lengths</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1791 -->
<g id="node4" class="node closed">
<title>ZcashFoundation/zebra#1791</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1791" xlink:title="ZcashFoundation/zebra#1791&#10;Re&#45;enable `sync_large_che&#10;ckpoints_testnet` test" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="571.5,-374.5 340.5,-374.5 340.5,-321.5 571.5,-321.5 571.5,-374.5"/>
<text text-anchor="middle" x="456" y="-359.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#1791</text>
<text text-anchor="middle" x="456" y="-344.3" font-family="Times,serif" font-size="14.00">Re&#45;enable `sync_large_che</text>
<text text-anchor="middle" x="456" y="-329.3" font-family="Times,serif" font-size="14.00">ckpoints_testnet` test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1875 -->
<g id="node5" class="node open">
<title>ZcashFoundation/zebra#1875</title>
<g id="a_node5"><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,-483 24.5,-483 24.5,-415 255.5,-415 255.5,-483"/>
<text text-anchor="middle" x="140" y="-467.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#1875</text>
<text text-anchor="middle" x="140" y="-452.8" font-family="Times,serif" font-size="14.00">Zebra attempts new peer</text>
<text text-anchor="middle" x="140" y="-437.8" font-family="Times,serif" font-size="14.00">connections in a fixed,</text>
<text text-anchor="middle" x="140" y="-422.8" font-family="Times,serif" font-size="14.00">predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869 -->
<g id="node6" class="node open">
<title>ZcashFoundation/zebra#1869</title>
<g id="a_node6"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1869" xlink:title="ZcashFoundation/zebra#1869&#10;Zebra should limit the&#10;number of addresses it&#10;uses from a single Addrs&#10;response, to avoid&#10;address book takeover" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-397 24.5,-397 24.5,-299 255.5,-299 255.5,-397"/>
<text text-anchor="middle" x="140" y="-381.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#1869</text>
<text text-anchor="middle" x="140" y="-366.8" font-family="Times,serif" font-size="14.00">Zebra should limit the</text>
<text text-anchor="middle" x="140" y="-351.8" font-family="Times,serif" font-size="14.00">number of addresses it</text>
<text text-anchor="middle" x="140" y="-336.8" font-family="Times,serif" font-size="14.00">uses from a single Addrs</text>
<text text-anchor="middle" x="140" y="-321.8" font-family="Times,serif" font-size="14.00">response, to avoid</text>
<text text-anchor="middle" x="140" y="-306.8" font-family="Times,serif" font-size="14.00">address book takeover</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="black" d="M255.69,-348C279.95,-348 305.65,-348 330.25,-348"/>
<polygon fill="black" stroke="black" points="330.35,-351.5 340.35,-348 330.35,-344.5 330.35,-351.5"/>
</g>
<!-- ZcashFoundation/zebra#5472 -->
<g id="node7" class="node open">
<title>ZcashFoundation/zebra#5472</title>
<g id="a_node7"><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,-569 24.5,-569 24.5,-501 255.5,-501 255.5,-569"/>
<text text-anchor="middle" x="140" y="-553.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5472</text>
<text text-anchor="middle" x="140" y="-538.8" font-family="Times,serif" font-size="14.00">Support shielded coinbase</text>
<text text-anchor="middle" x="140" y="-523.8" font-family="Times,serif" font-size="14.00">in `getblocktemplate` for</text>
<text text-anchor="middle" x="140" y="-508.8" font-family="Times,serif" font-size="14.00">Sapling addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5929 -->
<g id="node8" class="node open">
<title>ZcashFoundation/zebra#5929</title>
<g id="a_node8"><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,-569 340.5,-569 340.5,-501 571.5,-501 571.5,-569"/>
<text text-anchor="middle" x="456" y="-553.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5929</text>
<text text-anchor="middle" x="456" y="-538.8" font-family="Times,serif" font-size="14.00">Support shielded coinbase</text>
<text text-anchor="middle" x="456" y="-523.8" font-family="Times,serif" font-size="14.00">in `getblocktemplate` for</text>
<text text-anchor="middle" x="456" y="-508.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="edge2" class="edge">
<title>ZcashFoundation/zebra#5472&#45;&gt;ZcashFoundation/zebra#5929</title>
<path fill="none" stroke="black" d="M255.69,-535C279.95,-535 305.65,-535 330.25,-535"/>
<polygon fill="black" stroke="black" points="330.35,-538.5 340.35,-535 330.35,-531.5 330.35,-538.5"/>
</g>
<!-- ZcashFoundation/zebra#7109 -->
<g id="node9" class="node open">
<title>ZcashFoundation/zebra#7109</title>
<g id="a_node9"><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,-225 24.5,-225 24.5,-157 255.5,-157 255.5,-225"/>
<text text-anchor="middle" x="140" y="-209.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7109</text>
<text text-anchor="middle" x="140" y="-194.8" font-family="Times,serif" font-size="14.00">Store cumulative work in</text>
<text text-anchor="middle" x="140" y="-179.8" font-family="Times,serif" font-size="14.00">the finalized state for</text>
<text text-anchor="middle" x="140" y="-164.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="edge3" class="edge">
<title>ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#5297</title>
<path fill="none" stroke="black" d="M255.73,-224.22C275.79,-229.91 296.49,-235.69 316,-241 324.3,-243.26 332.89,-245.57 341.54,-247.86"/>
<polygon fill="black" stroke="black" points="340.76,-251.27 351.32,-250.45 342.55,-244.51 340.76,-251.27"/>
</g>
<!-- ZcashFoundation/zebra#6688 -->
<g id="node10" class="node closed">
<title>ZcashFoundation/zebra#6688</title>
<g id="a_node10"><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,-232.5 340.5,-232.5 340.5,-149.5 571.5,-149.5 571.5,-232.5"/>
<text text-anchor="middle" x="456" y="-217.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6688</text>
<text text-anchor="middle" x="456" y="-202.3" font-family="Times,serif" font-size="14.00">`getnetworksolps` &amp;</text>
<text text-anchor="middle" x="456" y="-187.3" font-family="Times,serif" font-size="14.00">`getnetworkhashps` RPCs</text>
<text text-anchor="middle" x="456" y="-172.3" font-family="Times,serif" font-size="14.00">hang with large</text>
<text text-anchor="middle" x="456" y="-157.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="edge4" class="edge">
<title>ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#6688</title>
<path fill="none" stroke="black" d="M255.69,-191C279.95,-191 305.65,-191 330.25,-191"/>
<polygon fill="black" stroke="black" points="330.35,-194.5 340.35,-191 330.35,-187.5 330.35,-194.5"/>
</g>
<!-- ZcashFoundation/zebra#7110 -->
<g id="node11" class="node open">
<title>ZcashFoundation/zebra#7110</title>
<g id="a_node11"><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,-131 340.5,-131 340.5,-63 571.5,-63 571.5,-131"/>
<text text-anchor="middle" x="456" y="-115.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7110</text>
<text text-anchor="middle" x="456" y="-100.8" font-family="Times,serif" font-size="14.00">Show the full chain work</text>
<text text-anchor="middle" x="456" y="-85.8" font-family="Times,serif" font-size="14.00">in the chain fork</text>
<text text-anchor="middle" x="456" y="-70.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="edge5" class="edge">
<title>ZcashFoundation/zebra#7109&#45;&gt;ZcashFoundation/zebra#7110</title>
<path fill="none" stroke="black" d="M255.75,-160.41C263.98,-157.97 272.13,-155.49 280,-153 296.22,-147.86 299.87,-145.4 316,-140 321.82,-138.05 327.78,-136.09 333.81,-134.12"/>
<polygon fill="black" stroke="black" points="334.89,-137.45 343.33,-131.05 332.74,-130.79 334.89,-137.45"/>
</g>
<!-- ZcashFoundation/zebra#7403 -->
<g id="node12" class="node open">
<title>ZcashFoundation/zebra#7403</title>
<g id="a_node12"><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,-232.5 632,-232.5 632,-149.5 863,-149.5 863,-232.5"/>
<text text-anchor="middle" x="747.5" y="-217.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7403</text>
<text text-anchor="middle" x="747.5" y="-202.3" font-family="Times,serif" font-size="14.00">Make `getnetworksolps` &amp;</text>
<text text-anchor="middle" x="747.5" y="-187.3" font-family="Times,serif" font-size="14.00">`getnetworkhashps` RPCs</text>
<text text-anchor="middle" x="747.5" y="-172.3" font-family="Times,serif" font-size="14.00">more efficient by caching</text>
<text text-anchor="middle" x="747.5" y="-157.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="edge6" class="edge">
<title>ZcashFoundation/zebra#6688&#45;&gt;ZcashFoundation/zebra#7403</title>
<path fill="none" stroke="black" d="M571.83,-191C588.18,-191 605.05,-191 621.57,-191"/>
<polygon fill="black" stroke="black" points="621.81,-194.5 631.81,-191 621.81,-187.5 621.81,-194.5"/>
</g>
<!-- ZcashFoundation/zebra#5604 -->
<g id="node13" class="node open">
<title>ZcashFoundation/zebra#5604</title>
<g id="a_node13"><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,-670.5 24.5,-670.5 24.5,-587.5 255.5,-587.5 255.5,-670.5"/>
<text text-anchor="middle" x="140" y="-655.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5604</text>
<text text-anchor="middle" x="140" y="-640.3" font-family="Times,serif" font-size="14.00">Send the same</text>
<text text-anchor="middle" x="140" y="-625.3" font-family="Times,serif" font-size="14.00">getblocktemplate RPC</text>
<text text-anchor="middle" x="140" y="-610.3" font-family="Times,serif" font-size="14.00">response until the</text>
<text text-anchor="middle" x="140" y="-595.3" font-family="Times,serif" font-size="14.00">template would change</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5911 -->
<g id="node14" class="node open">
<title>ZcashFoundation/zebra#5911</title>
<g id="a_node14"><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,-757 24.5,-757 24.5,-689 255.5,-689 255.5,-757"/>
<text text-anchor="middle" x="140" y="-741.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5911</text>
<text text-anchor="middle" x="140" y="-726.8" font-family="Times,serif" font-size="14.00">Store the serialized</text>
<text text-anchor="middle" x="140" y="-711.8" font-family="Times,serif" font-size="14.00">block size in the</text>
<text text-anchor="middle" x="140" y="-696.8" font-family="Times,serif" font-size="14.00">database</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4841 -->
<g id="node15" class="node closed">
<title>ZcashFoundation/zebra#4841</title>
<g id="a_node15"><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,-893.5 340.5,-893.5 340.5,-840.5 571.5,-840.5 571.5,-893.5"/>
<text text-anchor="middle" x="456" y="-878.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4841</text>
<text text-anchor="middle" x="456" y="-863.3" font-family="Times,serif" font-size="14.00">Improve note commitment</text>
<text text-anchor="middle" x="456" y="-848.3" font-family="Times,serif" font-size="14.00">tree append performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2908 -->
<g id="node16" class="node open">
<title>ZcashFoundation/zebra#2908</title>
<g id="a_node16"><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,-1076 24.5,-1076 24.5,-978 255.5,-978 255.5,-1076"/>
<text text-anchor="middle" x="140" y="-1060.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#2908</text>
<text text-anchor="middle" x="140" y="-1045.8" font-family="Times,serif" font-size="14.00">Improve</text>
<text text-anchor="middle" x="140" y="-1030.8" font-family="Times,serif" font-size="14.00">VerifyBlockError::Commit</text>
<text text-anchor="middle" x="140" y="-1015.8" font-family="Times,serif" font-size="14.00">typing, so we don&#39;t</text>
<text text-anchor="middle" x="140" y="-1000.8" font-family="Times,serif" font-size="14.00">accidentally break syncer</text>
<text text-anchor="middle" x="140" y="-985.8" font-family="Times,serif" font-size="14.00">error handling</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5487 -->
<g id="node17" class="node closed">
<title>ZcashFoundation/zebra#5487</title>
<g id="a_node17"><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,-1061 340.5,-1061 340.5,-993 571.5,-993 571.5,-1061"/>
<text text-anchor="middle" x="456" y="-1045.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5487</text>
<text text-anchor="middle" x="456" y="-1030.8" font-family="Times,serif" font-size="14.00">Return detailed errors</text>
<text text-anchor="middle" x="456" y="-1015.8" font-family="Times,serif" font-size="14.00">from the `submitblock`</text>
<text text-anchor="middle" x="456" y="-1000.8" font-family="Times,serif" font-size="14.00">RPC</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2908&#45;&gt;ZcashFoundation/zebra#5487 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#2908&#45;&gt;ZcashFoundation/zebra#5487</title>
<path fill="none" stroke="black" d="M255.69,-1027C279.95,-1027 305.65,-1027 330.25,-1027"/>
<polygon fill="black" stroke="black" points="330.35,-1030.5 340.35,-1027 330.35,-1023.5 330.35,-1030.5"/>
</g>
<!-- ZcashFoundation/zebra#5709 -->
<g id="node18" class="node open">
<title>ZcashFoundation/zebra#5709</title>
<g id="a_node18"><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,-1162 24.5,-1162 24.5,-1094 255.5,-1094 255.5,-1162"/>
<text text-anchor="middle" x="140" y="-1146.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5709</text>
<text text-anchor="middle" x="140" y="-1131.8" font-family="Times,serif" font-size="14.00">Fix repeated block</text>
<text text-anchor="middle" x="140" y="-1116.8" font-family="Times,serif" font-size="14.00">timeouts during initial</text>
<text text-anchor="middle" x="140" y="-1101.8" font-family="Times,serif" font-size="14.00">sync</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5425 -->
<g id="node19" class="node closed">
<title>ZcashFoundation/zebra#5425</title>
<g id="a_node19"><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,-1162 340.5,-1162 340.5,-1094 571.5,-1094 571.5,-1162"/>
<text text-anchor="middle" x="456" y="-1146.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5425</text>
<text text-anchor="middle" x="456" y="-1131.8" font-family="Times,serif" font-size="14.00">Parallelise note</text>
<text text-anchor="middle" x="456" y="-1116.8" font-family="Times,serif" font-size="14.00">commitment tree point</text>
<text text-anchor="middle" x="456" y="-1101.8" font-family="Times,serif" font-size="14.00">conversions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5709&#45;&gt;ZcashFoundation/zebra#5425 -->
<g id="edge8" class="edge">
<title>ZcashFoundation/zebra#5709&#45;&gt;ZcashFoundation/zebra#5425</title>
<path fill="none" stroke="black" d="M255.69,-1128C279.95,-1128 305.65,-1128 330.25,-1128"/>
<polygon fill="black" stroke="black" points="330.35,-1131.5 340.35,-1128 330.35,-1124.5 330.35,-1131.5"/>
</g>
<!-- ZcashFoundation/zebra#4774 -->
<g id="node20" class="node open">
<title>ZcashFoundation/zebra#4774</title>
<g id="a_node20"><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,-959.5 24.5,-959.5 24.5,-876.5 255.5,-876.5 255.5,-959.5"/>
<text text-anchor="middle" x="140" y="-944.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4774</text>
<text text-anchor="middle" x="140" y="-929.3" font-family="Times,serif" font-size="14.00">Add an NU5 block test</text>
<text text-anchor="middle" x="140" y="-914.3" font-family="Times,serif" font-size="14.00">vector that contains many</text>
<text text-anchor="middle" x="140" y="-899.3" font-family="Times,serif" font-size="14.00">shielded Orchard</text>
<text text-anchor="middle" x="140" y="-884.3" font-family="Times,serif" font-size="14.00">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="black" d="M255.69,-899.37C279.95,-895.43 305.65,-891.26 330.25,-887.26"/>
<polygon fill="black" stroke="black" points="331.04,-890.68 340.35,-885.62 329.92,-883.77 331.04,-890.68"/>
</g>
<!-- ZcashFoundation/zebra#4775 -->
<g id="node21" class="node open">
<title>ZcashFoundation/zebra#4775</title>
<g id="a_node21"><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,-858.5 24.5,-858.5 24.5,-775.5 255.5,-775.5 255.5,-858.5"/>
<text text-anchor="middle" x="140" y="-843.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4775</text>
<text text-anchor="middle" x="140" y="-828.3" font-family="Times,serif" font-size="14.00">Add an NU5 block test</text>
<text text-anchor="middle" x="140" y="-813.3" font-family="Times,serif" font-size="14.00">vector that contains many</text>
<text text-anchor="middle" x="140" y="-798.3" font-family="Times,serif" font-size="14.00">shielded Sapling</text>
<text text-anchor="middle" x="140" y="-783.3" font-family="Times,serif" font-size="14.00">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="black" d="M255.69,-835.26C279.95,-839.13 305.65,-843.22 330.25,-847.14"/>
<polygon fill="black" stroke="black" points="329.93,-850.63 340.35,-848.74 331.02,-843.72 329.93,-850.63"/>
</g>
<!-- ZcashFoundation/zebra#4545 -->
<g id="node22" class="node open">
<title>ZcashFoundation/zebra#4545</title>
<g id="a_node22"><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,-1263.5 340.5,-1263.5 340.5,-1180.5 571.5,-1180.5 571.5,-1263.5"/>
<text text-anchor="middle" x="456" y="-1248.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4545</text>
<text text-anchor="middle" x="456" y="-1233.3" font-family="Times,serif" font-size="14.00">Start disconnecting from</text>
<text text-anchor="middle" x="456" y="-1218.3" font-family="Times,serif" font-size="14.00">outdated peers a few days</text>
<text text-anchor="middle" x="456" y="-1203.3" font-family="Times,serif" font-size="14.00">before network upgrade</text>
<text text-anchor="middle" x="456" y="-1188.3" font-family="Times,serif" font-size="14.00">activation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4226 -->
<g id="node23" class="node closed">
<title>ZcashFoundation/zebra#4226</title>
<g id="a_node23"><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,-1256 632,-1256 632,-1188 863,-1188 863,-1256"/>
<text text-anchor="middle" x="747.5" y="-1240.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4226</text>
<text text-anchor="middle" x="747.5" y="-1225.8" font-family="Times,serif" font-size="14.00">Prefer faster peers, but</text>
<text text-anchor="middle" x="747.5" y="-1210.8" font-family="Times,serif" font-size="14.00">if all peers are slow,</text>
<text text-anchor="middle" x="747.5" y="-1195.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="edge11" class="edge">
<title>ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226</title>
<path fill="none" stroke="black" d="M571.83,-1222C588.18,-1222 605.05,-1222 621.57,-1222"/>
<polygon fill="black" stroke="black" points="621.81,-1225.5 631.81,-1222 621.81,-1218.5 621.81,-1225.5"/>
</g>
<!-- ZcashFoundation/zebra#7617 -->
<g id="node24" class="node open">
<title>ZcashFoundation/zebra#7617</title>
<g id="a_node24"><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,-1334.5 24.5,-1334.5 24.5,-1330.5 20.5,-1330.5 20.5,-1326.5 24.5,-1326.5 24.5,-1289.5 20.5,-1289.5 20.5,-1285.5 24.5,-1285.5 24.5,-1281.5 255.5,-1281.5 255.5,-1334.5"/>
<polyline fill="none" stroke="black" stroke-width="2" points="24.5,-1330.5 28.5,-1330.5 28.5,-1326.5 24.5,-1326.5 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="24.5,-1289.5 28.5,-1289.5 28.5,-1285.5 24.5,-1285.5 "/>
<text text-anchor="middle" x="140" y="-1319.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7617</text>
<text text-anchor="middle" x="140" y="-1304.3" font-family="Times,serif" font-size="14.00">ref(docker): use cache</text>
<text text-anchor="middle" x="140" y="-1289.3" font-family="Times,serif" font-size="14.00">mounts for build cache</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#6894 -->
<g id="node25" class="node open">
<title>ZcashFoundation/zebra#6894</title>
<g id="a_node25"><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,-1421 24.5,-1421 24.5,-1353 255.5,-1353 255.5,-1421"/>
<text text-anchor="middle" x="140" y="-1405.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6894</text>
<text text-anchor="middle" x="140" y="-1390.8" font-family="Times,serif" font-size="14.00">Use cached state for</text>
<text text-anchor="middle" x="140" y="-1375.8" font-family="Times,serif" font-size="14.00">continuous deployment</text>
<text text-anchor="middle" x="140" y="-1360.8" font-family="Times,serif" font-size="14.00">instances</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7738 -->
<g id="node26" class="node open">
<title>ZcashFoundation/zebra#7738</title>
<g id="a_node26"><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,-1500 340.5,-1500 340.5,-1432 571.5,-1432 571.5,-1500"/>
<text text-anchor="middle" x="456" y="-1484.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7738</text>
<text text-anchor="middle" x="456" y="-1469.8" font-family="Times,serif" font-size="14.00">docs: Add ticket</text>
<text text-anchor="middle" x="456" y="-1454.8" font-family="Times,serif" font-size="14.00">templates for RPC methods</text>
<text text-anchor="middle" x="456" y="-1439.8" font-family="Times,serif" font-size="14.00">and state format upgrades</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7833 -->
<g id="node27" class="node open">
<title>ZcashFoundation/zebra#7833</title>
<g id="a_node27"><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,-1492.5 24.5,-1492.5 24.5,-1439.5 255.5,-1439.5 255.5,-1492.5"/>
<text text-anchor="middle" x="140" y="-1477.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7833</text>
<text text-anchor="middle" x="140" y="-1462.3" font-family="Times,serif" font-size="14.00">Document how to design</text>
<text text-anchor="middle" x="140" y="-1447.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="edge12" class="edge">
<title>ZcashFoundation/zebra#7833&#45;&gt;ZcashFoundation/zebra#7738</title>
<path fill="none" stroke="black" d="M255.69,-1466C279.95,-1466 305.65,-1466 330.25,-1466"/>
<polygon fill="black" stroke="black" points="330.35,-1469.5 340.35,-1466 330.35,-1462.5 330.35,-1469.5"/>
</g>
<!-- ZcashFoundation/zebra#7383 -->
<g id="node28" class="node open">
<title>ZcashFoundation/zebra#7383</title>
<g id="a_node28"><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,-1609 24.5,-1609 24.5,-1511 255.5,-1511 255.5,-1609"/>
<text text-anchor="middle" x="140" y="-1593.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7383</text>
<text text-anchor="middle" x="140" y="-1578.8" font-family="Times,serif" font-size="14.00">(De)Serialize</text>
<text text-anchor="middle" x="140" y="-1563.8" font-family="Times,serif" font-size="14.00">`NoteCommitmentTree`s</text>
<text text-anchor="middle" x="140" y="-1548.8" font-family="Times,serif" font-size="14.00">using supported</text>
<text text-anchor="middle" x="140" y="-1533.8" font-family="Times,serif" font-size="14.00">serialization format</text>
<text text-anchor="middle" x="140" y="-1518.8" font-family="Times,serif" font-size="14.00">instead of `bincode`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7416 -->
<g id="node29" class="node open">
<title>ZcashFoundation/zebra#7416</title>
<g id="a_node29"><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,-1695 24.5,-1695 24.5,-1627 255.5,-1627 255.5,-1695"/>
<text text-anchor="middle" x="140" y="-1679.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7416</text>
<text text-anchor="middle" x="140" y="-1664.8" font-family="Times,serif" font-size="14.00">diagnostic: Log column</text>
<text text-anchor="middle" x="140" y="-1649.8" font-family="Times,serif" font-size="14.00">family and database size</text>
<text text-anchor="middle" x="140" y="-1634.8" font-family="Times,serif" font-size="14.00">on startup and shutdown</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5718 -->
<g id="node30" class="node open">
<title>ZcashFoundation/zebra#5718</title>
<g id="a_node30"><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,-1687.5 340.5,-1687.5 340.5,-1634.5 571.5,-1634.5 571.5,-1687.5"/>
<text text-anchor="middle" x="456" y="-1672.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#5718</text>
<text text-anchor="middle" x="456" y="-1657.3" font-family="Times,serif" font-size="14.00">Reduce Zebra disk usage</text>
<text text-anchor="middle" x="456" y="-1642.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="edge13" class="edge">
<title>ZcashFoundation/zebra#7416&#45;&gt;ZcashFoundation/zebra#5718</title>
<path fill="none" stroke="black" d="M255.69,-1661C279.95,-1661 305.65,-1661 330.25,-1661"/>
<polygon fill="black" stroke="black" points="330.35,-1664.5 340.35,-1661 330.35,-1657.5 330.35,-1664.5"/>
</g>
<!-- ZcashFoundation/zebra#6642 -->
<g id="node31" class="node open">
<title>ZcashFoundation/zebra#6642</title>
<g id="a_node31"><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,-1796.5 24.5,-1796.5 24.5,-1713.5 255.5,-1713.5 255.5,-1796.5"/>
<text text-anchor="middle" x="140" y="-1781.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#6642</text>
<text text-anchor="middle" x="140" y="-1766.3" font-family="Times,serif" font-size="14.00">Tracking: Update</text>
<text text-anchor="middle" x="140" y="-1751.3" font-family="Times,serif" font-size="14.00">`lightwalletd` RPCs for</text>
<text text-anchor="middle" x="140" y="-1736.3" font-family="Times,serif" font-size="14.00">&quot;spend before sync&quot;</text>
<text text-anchor="middle" x="140" y="-1721.3" font-family="Times,serif" font-size="14.00">algorithm</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7558 -->
<g id="node32" class="node open">
<title>ZcashFoundation/zebra#7558</title>
<g id="a_node32"><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,-1867.5 340.5,-1867.5 340.5,-1814.5 571.5,-1814.5 571.5,-1867.5"/>
<text text-anchor="middle" x="456" y="-1852.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7558</text>
<text text-anchor="middle" x="456" y="-1837.3" font-family="Times,serif" font-size="14.00">dev docs: Document how to</text>
<text text-anchor="middle" x="456" y="-1822.3" font-family="Times,serif" font-size="14.00">fix cached state issues</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7785 -->
<g id="node33" class="node open">
<title>ZcashFoundation/zebra#7785</title>
<g id="a_node33"><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,-1954 24.5,-1954 24.5,-1886 255.5,-1886 255.5,-1954"/>
<text text-anchor="middle" x="140" y="-1938.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7785</text>
<text text-anchor="middle" x="140" y="-1923.8" font-family="Times,serif" font-size="14.00">change: Support hiding</text>
<text text-anchor="middle" x="140" y="-1908.8" font-family="Times,serif" font-size="14.00">specific progress bars in</text>
<text text-anchor="middle" x="140" y="-1893.8" font-family="Times,serif" font-size="14.00">summary mode</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7648 -->
<g id="node34" class="node open">
<title>ZcashFoundation/zebra#7648</title>
<g id="a_node34"><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,-1954 340.5,-1954 340.5,-1886 571.5,-1886 571.5,-1954"/>
<text text-anchor="middle" x="456" y="-1938.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7648</text>
<text text-anchor="middle" x="456" y="-1923.8" font-family="Times,serif" font-size="14.00">Allow logging to terminal</text>
<text text-anchor="middle" x="456" y="-1908.8" font-family="Times,serif" font-size="14.00">when progress bars are</text>
<text text-anchor="middle" x="456" y="-1893.8" font-family="Times,serif" font-size="14.00">enabled</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7785&#45;&gt;ZcashFoundation/zebra#7648 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#7785&#45;&gt;ZcashFoundation/zebra#7648</title>
<path fill="none" stroke="black" d="M255.69,-1920C279.95,-1920 305.65,-1920 330.25,-1920"/>
<polygon fill="black" stroke="black" points="330.35,-1923.5 340.35,-1920 330.35,-1916.5 330.35,-1923.5"/>
</g>
<!-- ZcashFoundation/zebra#7533 -->
<g id="node35" class="node open">
<title>ZcashFoundation/zebra#7533</title>
<g id="a_node35"><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,-1867.5 24.5,-1867.5 24.5,-1814.5 255.5,-1814.5 255.5,-1867.5"/>
<text text-anchor="middle" x="140" y="-1852.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7533</text>
<text text-anchor="middle" x="140" y="-1837.3" font-family="Times,serif" font-size="14.00">Document how to rebuild</text>
<text text-anchor="middle" x="140" y="-1822.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="edge15" class="edge">
<title>ZcashFoundation/zebra#7533&#45;&gt;ZcashFoundation/zebra#7558</title>
<path fill="none" stroke="black" d="M255.69,-1841C279.95,-1841 305.65,-1841 330.25,-1841"/>
<polygon fill="black" stroke="black" points="330.35,-1844.5 340.35,-1841 330.35,-1837.5 330.35,-1844.5"/>
</g>
<!-- ZcashFoundation/zebra#7119 -->
<g id="node36" class="node open">
<title>ZcashFoundation/zebra#7119</title>
<g id="a_node36"><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,-2025.5 24.5,-2025.5 24.5,-1972.5 255.5,-1972.5 255.5,-2025.5"/>
<text text-anchor="middle" x="140" y="-2010.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7119</text>
<text text-anchor="middle" x="140" y="-1995.3" font-family="Times,serif" font-size="14.00">Tracking: Add regtest</text>
<text text-anchor="middle" x="140" y="-1980.3" font-family="Times,serif" font-size="14.00">network</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7534 -->
<g id="node37" class="node open">
<title>ZcashFoundation/zebra#7534</title>
<g id="a_node37"><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,-2112 24.5,-2112 24.5,-2044 255.5,-2044 255.5,-2112"/>
<text text-anchor="middle" x="140" y="-2096.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7534</text>
<text text-anchor="middle" x="140" y="-2081.8" font-family="Times,serif" font-size="14.00">Make it possible to run</text>
<text text-anchor="middle" x="140" y="-2066.8" font-family="Times,serif" font-size="14.00">CI tests locally for</text>
<text text-anchor="middle" x="140" y="-2051.8" font-family="Times,serif" font-size="14.00">developers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4464 -->
<g id="node38" class="node open">
<title>ZcashFoundation/zebra#4464</title>
<g id="a_node38"><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,-2119.5 340.5,-2119.5 340.5,-2036.5 571.5,-2036.5 571.5,-2119.5"/>
<text text-anchor="middle" x="456" y="-2104.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#4464</text>
<text text-anchor="middle" x="456" y="-2089.3" font-family="Times,serif" font-size="14.00">ci: create documentation</text>
<text text-anchor="middle" x="456" y="-2074.3" font-family="Times,serif" font-size="14.00">on how to run tests</text>
<text text-anchor="middle" x="456" y="-2059.3" font-family="Times,serif" font-size="14.00">locally for development</text>
<text text-anchor="middle" x="456" y="-2044.3" font-family="Times,serif" font-size="14.00">purposes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7534&#45;&gt;ZcashFoundation/zebra#4464 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#7534&#45;&gt;ZcashFoundation/zebra#4464</title>
<path fill="none" stroke="black" d="M255.69,-2078C279.95,-2078 305.65,-2078 330.25,-2078"/>
<polygon fill="black" stroke="black" points="330.35,-2081.5 340.35,-2078 330.35,-2074.5 330.35,-2081.5"/>
</g>
<!-- ZcashFoundation/zebra#7845 -->
<g id="node39" class="node open">
<title>ZcashFoundation/zebra#7845</title>
<g id="a_node39"><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,-2198 24.5,-2198 24.5,-2130 255.5,-2130 255.5,-2198"/>
<text text-anchor="middle" x="140" y="-2182.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7845</text>
<text text-anchor="middle" x="140" y="-2167.8" font-family="Times,serif" font-size="14.00">Add parameters to</text>
<text text-anchor="middle" x="140" y="-2152.8" font-family="Times,serif" font-size="14.00">`Network::Testnet`</text>
<text text-anchor="middle" x="140" y="-2137.8" font-family="Times,serif" font-size="14.00">variant</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7839 -->
<g id="node40" class="node open">
<title>ZcashFoundation/zebra#7839</title>
<g id="a_node40"><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,-2190.5 340.5,-2190.5 340.5,-2137.5 571.5,-2137.5 571.5,-2190.5"/>
<text text-anchor="middle" x="456" y="-2175.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7839</text>
<text text-anchor="middle" x="456" y="-2160.3" font-family="Times,serif" font-size="14.00">Add a `Regtest` constant</text>
<text text-anchor="middle" x="456" y="-2145.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="edge17" class="edge">
<title>ZcashFoundation/zebra#7845&#45;&gt;ZcashFoundation/zebra#7839</title>
<path fill="none" stroke="black" d="M255.69,-2164C279.95,-2164 305.65,-2164 330.25,-2164"/>
<polygon fill="black" stroke="black" points="330.35,-2167.5 340.35,-2164 330.35,-2160.5 330.35,-2167.5"/>
</g>
<!-- ZcashFoundation/zebra#7847 -->
<g id="node41" class="node open">
<title>ZcashFoundation/zebra#7847</title>
<g id="a_node41"><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,-2314 24.5,-2314 24.5,-2216 255.5,-2216 255.5,-2314"/>
<text text-anchor="middle" x="140" y="-2298.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7847</text>
<text text-anchor="middle" x="140" y="-2283.8" font-family="Times,serif" font-size="14.00">Reconnect to peers after</text>
<text text-anchor="middle" x="140" y="-2268.8" font-family="Times,serif" font-size="14.00">arbitrarily long</text>
<text text-anchor="middle" x="140" y="-2253.8" font-family="Times,serif" font-size="14.00">disconnections with</text>
<text text-anchor="middle" x="140" y="-2238.8" font-family="Times,serif" font-size="14.00">randomized exponential</text>
<text text-anchor="middle" x="140" y="-2223.8" font-family="Times,serif" font-size="14.00">backoff</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3117 -->
<g id="node42" class="node open">
<title>ZcashFoundation/zebra#3117</title>
<g id="a_node42"><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,-2385.5 24.5,-2385.5 24.5,-2332.5 255.5,-2332.5 255.5,-2385.5"/>
<text text-anchor="middle" x="140" y="-2370.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#3117</text>
<text text-anchor="middle" x="140" y="-2355.3" font-family="Times,serif" font-size="14.00">Stop using private IP</text>
<text text-anchor="middle" x="140" y="-2340.3" font-family="Times,serif" font-size="14.00">addresses by default</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id="node43" class="node open">
<title>ZcashFoundation/zebra#1890</title>
<g id="a_node43"><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,-2400.5 340.5,-2400.5 340.5,-2317.5 571.5,-2317.5 571.5,-2400.5"/>
<text text-anchor="middle" x="456" y="-2385.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#1890</text>
<text text-anchor="middle" x="456" y="-2370.3" font-family="Times,serif" font-size="14.00">Zebra should support</text>
<text text-anchor="middle" x="456" y="-2355.3" font-family="Times,serif" font-size="14.00">separate local bind and</text>
<text text-anchor="middle" x="456" y="-2340.3" font-family="Times,serif" font-size="14.00">external advertise</text>
<text text-anchor="middle" x="456" y="-2325.3" font-family="Times,serif" font-size="14.00">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3117&#45;&gt;ZcashFoundation/zebra#1890 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#3117&#45;&gt;ZcashFoundation/zebra#1890</title>
<path fill="none" stroke="black" d="M255.69,-2359C279.95,-2359 305.65,-2359 330.25,-2359"/>
<polygon fill="black" stroke="black" points="330.35,-2362.5 340.35,-2359 330.35,-2355.5 330.35,-2362.5"/>
</g>
<!-- ZcashFoundation/zebra#7822 -->
<g id="node44" class="node open">
<title>ZcashFoundation/zebra#7822</title>
<g id="a_node44"><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,-1263.5 24.5,-1263.5 24.5,-1180.5 255.5,-1180.5 255.5,-1263.5"/>
<text text-anchor="middle" x="140" y="-1248.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7822</text>
<text text-anchor="middle" x="140" y="-1233.3" font-family="Times,serif" font-size="14.00">security: Limit ability</text>
<text text-anchor="middle" x="140" y="-1218.3" font-family="Times,serif" font-size="14.00">of synthetic nodes to</text>
<text text-anchor="middle" x="140" y="-1203.3" font-family="Times,serif" font-size="14.00">take up connection slots.</text>
<text text-anchor="middle" x="140" y="-1188.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="edge19" class="edge">
<title>ZcashFoundation/zebra#7822&#45;&gt;ZcashFoundation/zebra#4545</title>
<path fill="none" stroke="black" d="M255.69,-1222C279.95,-1222 305.65,-1222 330.25,-1222"/>
<polygon fill="black" stroke="black" points="330.35,-1225.5 340.35,-1222 330.35,-1218.5 330.35,-1225.5"/>
</g>
<!-- ZcashFoundation/zebra#7680 -->
<g id="node45" class="node open">
<title>ZcashFoundation/zebra#7680</title>
<g id="a_node45"><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,-2494.5 24.5,-2494.5 24.5,-2411.5 255.5,-2411.5 255.5,-2494.5"/>
<text text-anchor="middle" x="140" y="-2479.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7680</text>
<text text-anchor="middle" x="140" y="-2464.3" font-family="Times,serif" font-size="14.00">Automatically open an</text>
<text text-anchor="middle" x="140" y="-2449.3" font-family="Times,serif" font-size="14.00">issue when main branch</text>
<text text-anchor="middle" x="140" y="-2434.3" font-family="Times,serif" font-size="14.00">release&#45;related merges</text>
<text text-anchor="middle" x="140" y="-2419.3" font-family="Times,serif" font-size="14.00">fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7891 -->
<g id="node46" class="node open">
<title>ZcashFoundation/zebra#7891</title>
<g id="a_node46"><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,-2487 340.5,-2487 340.5,-2419 571.5,-2419 571.5,-2487"/>
<text text-anchor="middle" x="456" y="-2471.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7891</text>
<text text-anchor="middle" x="456" y="-2456.8" font-family="Times,serif" font-size="14.00">change(docker): Publish</text>
<text text-anchor="middle" x="456" y="-2441.8" font-family="Times,serif" font-size="14.00">fewer Zebra docker tags,</text>
<text text-anchor="middle" x="456" y="-2426.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="edge20" class="edge">
<title>ZcashFoundation/zebra#7680&#45;&gt;ZcashFoundation/zebra#7891</title>
<path fill="none" stroke="black" d="M255.69,-2453C279.95,-2453 305.65,-2453 330.25,-2453"/>
<polygon fill="black" stroke="black" points="330.35,-2456.5 340.35,-2453 330.35,-2449.5 330.35,-2456.5"/>
</g>
<!-- ZcashFoundation/zebra#7892 -->
<g id="node47" class="node open">
<title>ZcashFoundation/zebra#7892</title>
<g id="a_node47"><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,-2487 632,-2487 632,-2419 863,-2419 863,-2487"/>
<text text-anchor="middle" x="747.5" y="-2471.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7892</text>
<text text-anchor="middle" x="747.5" y="-2456.8" font-family="Times,serif" font-size="14.00">change(release): Enable</text>
<text text-anchor="middle" x="747.5" y="-2441.8" font-family="Times,serif" font-size="14.00">all user features in the</text>
<text text-anchor="middle" x="747.5" y="-2426.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="edge21" class="edge">
<title>ZcashFoundation/zebra#7891&#45;&gt;ZcashFoundation/zebra#7892</title>
<path fill="none" stroke="black" d="M571.83,-2453C588.18,-2453 605.05,-2453 621.57,-2453"/>
<polygon fill="black" stroke="black" points="621.81,-2456.5 631.81,-2453 621.81,-2449.5 621.81,-2456.5"/>
</g>
<!-- ZcashFoundation/zebra#7905 -->
<g id="node48" class="node open">
<title>ZcashFoundation/zebra#7905</title>
<g id="a_node48"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7905" xlink:title="ZcashFoundation/zebra#7905&#10;feat(zebra&#45;scan): Create&#10;a scanner task for new&#10;blocks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-2663 340.5,-2663 340.5,-2595 571.5,-2595 571.5,-2663"/>
<text text-anchor="middle" x="456" y="-2647.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7905</text>
<text text-anchor="middle" x="456" y="-2632.8" font-family="Times,serif" font-size="14.00">feat(zebra&#45;scan): Create</text>
<text text-anchor="middle" x="456" y="-2617.8" font-family="Times,serif" font-size="14.00">a scanner task for new</text>
<text text-anchor="middle" x="456" y="-2602.8" font-family="Times,serif" font-size="14.00">blocks</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7907 -->
<g id="node49" class="node open">
<title>ZcashFoundation/zebra#7907</title>
<g id="a_node49"><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 results channel" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="863,-2695 632,-2695 632,-2627 863,-2627 863,-2695"/>
<text text-anchor="middle" x="747.5" y="-2679.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7907</text>
<text text-anchor="middle" x="747.5" y="-2664.8" font-family="Times,serif" font-size="14.00">feat(zebra&#45;scan): Make</text>
<text text-anchor="middle" x="747.5" y="-2649.8" font-family="Times,serif" font-size="14.00">the scanner send data to</text>
<text text-anchor="middle" x="747.5" y="-2634.8" font-family="Times,serif" font-size="14.00">the results channel</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7905&#45;&gt;ZcashFoundation/zebra#7907 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#7905&#45;&gt;ZcashFoundation/zebra#7907</title>
<path fill="none" stroke="black" d="M571.83,-2641.7C588.18,-2643.5 605.05,-2645.4 621.57,-2647.2"/>
<polygon fill="black" stroke="black" points="621.49,-2650.71 631.81,-2648.3 622.24,-2643.75 621.49,-2650.71"/>
</g>
<!-- ZcashFoundation/zebra#7906 -->
<g id="node50" class="node open">
<title>ZcashFoundation/zebra#7906</title>
<g id="a_node50"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7906" xlink:title="ZcashFoundation/zebra#7906&#10;feat(zebra&#45;scan): Create&#10;a scanner results channel" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="571.5,-2734.5 340.5,-2734.5 340.5,-2681.5 571.5,-2681.5 571.5,-2734.5"/>
<text text-anchor="middle" x="456" y="-2719.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7906</text>
<text text-anchor="middle" x="456" y="-2704.3" font-family="Times,serif" font-size="14.00">feat(zebra&#45;scan): Create</text>
<text text-anchor="middle" x="456" y="-2689.3" font-family="Times,serif" font-size="14.00">a scanner results channel</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7906&#45;&gt;ZcashFoundation/zebra#7907 -->
<g id="edge23" class="edge">
<title>ZcashFoundation/zebra#7906&#45;&gt;ZcashFoundation/zebra#7907</title>
<path fill="none" stroke="black" d="M571.83,-2689.4C588.18,-2686.7 605.05,-2684 621.57,-2681.3"/>
<polygon fill="black" stroke="black" points="622.52,-2684.69 631.81,-2679.6 621.37,-2677.79 622.52,-2684.69"/>
</g>
<!-- ZcashFoundation/zebra#7927 -->
<g id="node51" class="node open">
<title>ZcashFoundation/zebra#7927</title>
<g id="a_node51"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7927" xlink:title="ZcashFoundation/zebra#7927&#10;feat(zebra&#45;state): Send a&#10;reference to latest non&#45;&#10;finalized state in&#10;TipAction::Reset" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-2835.5 340.5,-2835.5 340.5,-2752.5 571.5,-2752.5 571.5,-2835.5"/>
<text text-anchor="middle" x="456" y="-2820.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7927</text>
<text text-anchor="middle" x="456" y="-2805.3" font-family="Times,serif" font-size="14.00">feat(zebra&#45;state): Send a</text>
<text text-anchor="middle" x="456" y="-2790.3" font-family="Times,serif" font-size="14.00">reference to latest non&#45;</text>
<text text-anchor="middle" x="456" y="-2775.3" font-family="Times,serif" font-size="14.00">finalized state in</text>
<text text-anchor="middle" x="456" y="-2760.3" font-family="Times,serif" font-size="14.00">TipAction::Reset</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7935 -->
<g id="node52" class="node closed">
<title>ZcashFoundation/zebra#7935</title>
<g id="a_node52"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/7935" xlink:title="ZcashFoundation/zebra#7935&#10;feat(zebra&#45;state): Adds a&#10;method to ChainTipChange&#10;for getting unseen blocks&#10;when the best chain&#10;changes" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="863,-2843 632,-2843 632,-2839 628,-2839 628,-2835 632,-2835 632,-2753 628,-2753 628,-2749 632,-2749 632,-2745 863,-2745 863,-2843"/>
<polyline fill="none" stroke="black" points="632,-2839 636,-2839 636,-2835 632,-2835 "/>
<polyline fill="none" stroke="black" points="632,-2753 636,-2753 636,-2749 632,-2749 "/>
<text text-anchor="middle" x="747.5" y="-2827.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7935</text>
<text text-anchor="middle" x="747.5" y="-2812.8" font-family="Times,serif" font-size="14.00">feat(zebra&#45;state): Adds a</text>
<text text-anchor="middle" x="747.5" y="-2797.8" font-family="Times,serif" font-size="14.00">method to ChainTipChange</text>
<text text-anchor="middle" x="747.5" y="-2782.8" font-family="Times,serif" font-size="14.00">for getting unseen blocks</text>
<text text-anchor="middle" x="747.5" y="-2767.8" font-family="Times,serif" font-size="14.00">when the best chain</text>
<text text-anchor="middle" x="747.5" y="-2752.8" font-family="Times,serif" font-size="14.00">changes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7927&#45;&gt;ZcashFoundation/zebra#7935 -->
<g id="edge24" class="edge">
<title>ZcashFoundation/zebra#7927&#45;&gt;ZcashFoundation/zebra#7935</title>
<path fill="none" stroke="black" d="M571.83,-2794C588.18,-2794 605.05,-2794 621.57,-2794"/>
<polygon fill="black" stroke="black" points="621.81,-2797.5 631.81,-2794 621.81,-2790.5 621.81,-2797.5"/>
</g>
<!-- ZcashFoundation/zebra#7928 -->
<g id="node53" class="node open">
<title>ZcashFoundation/zebra#7928</title>
<g id="a_node53"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7928" xlink:title="ZcashFoundation/zebra#7928&#10;feat(zebra&#45;scan): Make&#10;the key storage database&#10;persistent" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-2922 340.5,-2922 340.5,-2854 571.5,-2854 571.5,-2922"/>
<text text-anchor="middle" x="456" y="-2906.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7928</text>
<text text-anchor="middle" x="456" y="-2891.8" font-family="Times,serif" font-size="14.00">feat(zebra&#45;scan): Make</text>
<text text-anchor="middle" x="456" y="-2876.8" font-family="Times,serif" font-size="14.00">the key storage database</text>
<text text-anchor="middle" x="456" y="-2861.8" font-family="Times,serif" font-size="14.00">persistent</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7926 -->
<g id="node54" class="node open">
<title>ZcashFoundation/zebra#7926</title>
<g id="a_node54"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7926" xlink:title="ZcashFoundation/zebra#7926&#10;feat(zebra&#45;db): Split low&#10;level database code&#10;inside `zebra&#45;state`" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-2922 24.5,-2922 24.5,-2854 255.5,-2854 255.5,-2922"/>
<text text-anchor="middle" x="140" y="-2906.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7926</text>
<text text-anchor="middle" x="140" y="-2891.8" font-family="Times,serif" font-size="14.00">feat(zebra&#45;db): Split low</text>
<text text-anchor="middle" x="140" y="-2876.8" font-family="Times,serif" font-size="14.00">level database code</text>
<text text-anchor="middle" x="140" y="-2861.8" font-family="Times,serif" font-size="14.00">inside `zebra&#45;state`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7926&#45;&gt;ZcashFoundation/zebra#7928 -->
<g id="edge25" class="edge">
<title>ZcashFoundation/zebra#7926&#45;&gt;ZcashFoundation/zebra#7928</title>
<path fill="none" stroke="black" d="M255.69,-2888C279.95,-2888 305.65,-2888 330.25,-2888"/>
<polygon fill="black" stroke="black" points="330.35,-2891.5 340.35,-2888 330.35,-2884.5 330.35,-2891.5"/>
</g>
<!-- ZcashFoundation/zebra#7934 -->
<g id="node55" class="node open">
<title>ZcashFoundation/zebra#7934</title>
<g id="a_node55"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7934" xlink:title="ZcashFoundation/zebra#7934&#10;change(zebra&#45;state): When&#10;the best chain changes,&#10;scan the new blocks in&#10;the best chain fork" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-2835.5 24.5,-2835.5 24.5,-2752.5 255.5,-2752.5 255.5,-2835.5"/>
<text text-anchor="middle" x="140" y="-2820.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7934</text>
<text text-anchor="middle" x="140" y="-2805.3" font-family="Times,serif" font-size="14.00">change(zebra&#45;state): When</text>
<text text-anchor="middle" x="140" y="-2790.3" font-family="Times,serif" font-size="14.00">the best chain changes,</text>
<text text-anchor="middle" x="140" y="-2775.3" font-family="Times,serif" font-size="14.00">scan the new blocks in</text>
<text text-anchor="middle" x="140" y="-2760.3" font-family="Times,serif" font-size="14.00">the best chain fork</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7934&#45;&gt;ZcashFoundation/zebra#7927 -->
<g id="edge26" class="edge">
<title>ZcashFoundation/zebra#7934&#45;&gt;ZcashFoundation/zebra#7927</title>
<path fill="none" stroke="black" d="M255.69,-2794C279.95,-2794 305.65,-2794 330.25,-2794"/>
<polygon fill="black" stroke="black" points="330.35,-2797.5 340.35,-2794 330.35,-2790.5 330.35,-2797.5"/>
</g>
<!-- ZcashFoundation/zebra#7946 -->
<g id="node56" class="node open">
<title>ZcashFoundation/zebra#7946</title>
<g id="a_node56"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7946" xlink:title="ZcashFoundation/zebra#7946&#10;feat(scanner): Read and&#10;store keys from config at&#10;zebra startup" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-3008 24.5,-3008 24.5,-2940 255.5,-2940 255.5,-3008"/>
<text text-anchor="middle" x="140" y="-2992.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7946</text>
<text text-anchor="middle" x="140" y="-2977.8" font-family="Times,serif" font-size="14.00">feat(scanner): Read and</text>
<text text-anchor="middle" x="140" y="-2962.8" font-family="Times,serif" font-size="14.00">store keys from config at</text>
<text text-anchor="middle" x="140" y="-2947.8" font-family="Times,serif" font-size="14.00">zebra startup</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7947 -->
<g id="node57" class="node open">
<title>ZcashFoundation/zebra#7947</title>
<g id="a_node57"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7947" xlink:title="ZcashFoundation/zebra#7947&#10;Create a `scan_blocks`&#10;function to use across&#10;scanning tasks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-2581 24.5,-2581 24.5,-2513 255.5,-2513 255.5,-2581"/>
<text text-anchor="middle" x="140" y="-2565.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7947</text>
<text text-anchor="middle" x="140" y="-2550.8" font-family="Times,serif" font-size="14.00">Create a `scan_blocks`</text>
<text text-anchor="middle" x="140" y="-2535.8" font-family="Times,serif" font-size="14.00">function to use across</text>
<text text-anchor="middle" x="140" y="-2520.8" font-family="Times,serif" font-size="14.00">scanning tasks</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7947&#45;&gt;ZcashFoundation/zebra#7905 -->
<g id="edge27" class="edge">
<title>ZcashFoundation/zebra#7947&#45;&gt;ZcashFoundation/zebra#7905</title>
<path fill="none" stroke="black" d="M255.69,-2577C280.05,-2583.3 305.88,-2590.1 330.58,-2596.5"/>
<polygon fill="black" stroke="black" points="329.79,-2599.91 340.35,-2599.1 331.59,-2593.15 329.79,-2599.91"/>
</g>
<!-- ZcashFoundation/zebra#7953 -->
<g id="node58" class="node open">
<title>ZcashFoundation/zebra#7953</title>
<g id="a_node58"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7953" xlink:title="ZcashFoundation/zebra#7953&#10;Scan previously verified&#10;blocks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="571.5,-2573.5 340.5,-2573.5 340.5,-2520.5 571.5,-2520.5 571.5,-2573.5"/>
<text text-anchor="middle" x="456" y="-2558.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7953</text>
<text text-anchor="middle" x="456" y="-2543.3" font-family="Times,serif" font-size="14.00">Scan previously verified</text>
<text text-anchor="middle" x="456" y="-2528.3" font-family="Times,serif" font-size="14.00">blocks</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7947&#45;&gt;ZcashFoundation/zebra#7953 -->
<g id="edge28" class="edge">
<title>ZcashFoundation/zebra#7947&#45;&gt;ZcashFoundation/zebra#7953</title>
<path fill="none" stroke="black" d="M255.69,-2547C279.95,-2547 305.65,-2547 330.25,-2547"/>
<polygon fill="black" stroke="black" points="330.35,-2550.5 340.35,-2547 330.35,-2543.5 330.35,-2550.5"/>
</g>
<!-- ZcashFoundation/zebra#7908 -->
<g id="node59" class="node open">
<title>ZcashFoundation/zebra#7908</title>
<g id="a_node59"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/7908" xlink:title="ZcashFoundation/zebra#7908&#10;feat(zebra&#45;scan): Connect&#10;scanner with zebrad for&#10;block processing" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="255.5,-2667 24.5,-2667 24.5,-2599 255.5,-2599 255.5,-2667"/>
<text text-anchor="middle" x="140" y="-2651.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/zebra#7908</text>
<text text-anchor="middle" x="140" y="-2636.8" font-family="Times,serif" font-size="14.00">feat(zebra&#45;scan): Connect</text>
<text text-anchor="middle" x="140" y="-2621.8" font-family="Times,serif" font-size="14.00">scanner with zebrad for</text>
<text text-anchor="middle" x="140" y="-2606.8" font-family="Times,serif" font-size="14.00">block processing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#7908&#45;&gt;ZcashFoundation/zebra#7905 -->
<g id="edge29" class="edge">
<title>ZcashFoundation/zebra#7908&#45;&gt;ZcashFoundation/zebra#7905</title>
<path fill="none" stroke="black" d="M255.69,-2631.5C279.95,-2631.2 305.65,-2630.9 330.25,-2630.6"/>
<polygon fill="black" stroke="black" points="330.39,-2634.1 340.35,-2630.5 330.32,-2627.1 330.39,-2634.1"/>
</g>
<!-- ZcashFoundation/ed25519&#45;zebra#77 -->
<g id="node60" class="node open">
<title>ZcashFoundation/ed25519&#45;zebra#77</title>
<g id="a_node60"><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,-3094 0,-3094 0,-3026 280,-3026 280,-3094"/>
<text text-anchor="middle" x="140" y="-3078.8" font-family="Times,serif" font-size="14.00">ZcashFoundation/ed25519&#45;zebra#77</text>
<text text-anchor="middle" x="140" y="-3063.8" font-family="Times,serif" font-size="14.00">Add instructions to the</text>
<text text-anchor="middle" x="140" y="-3048.8" font-family="Times,serif" font-size="14.00">README for updating this</text>
<text text-anchor="middle" x="140" y="-3033.8" font-family="Times,serif" font-size="14.00">crate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/ed25519&#45;zebra#79 -->
<g id="node61" class="node closed">
<title>ZcashFoundation/ed25519&#45;zebra#79</title>
<g id="a_node61"><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,-3086.5 316,-3086.5 316,-3033.5 596,-3033.5 596,-3086.5"/>
<text text-anchor="middle" x="456" y="-3071.3" font-family="Times,serif" font-size="14.00">ZcashFoundation/ed25519&#45;zebra#79</text>
<text text-anchor="middle" x="456" y="-3056.3" font-family="Times,serif" font-size="14.00">Tag a new &#160;ed25519&#45;zebra</text>
<text text-anchor="middle" x="456" y="-3041.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="edge30" class="edge">
<title>ZcashFoundation/ed25519&#45;zebra#77&#45;&gt;ZcashFoundation/ed25519&#45;zebra#79</title>
<path fill="none" stroke="black" d="M280.1,-3060C288.49,-3060 296.96,-3060 305.4,-3060"/>
<polygon fill="black" stroke="black" points="305.67,-3063.5 315.67,-3060 305.67,-3056.5 305.67,-3063.5"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>