developers/zcash-zf-dag.html

494 lines
37 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html>
<head>
<title>Zcash zf DAG</title>
<!-- Pan/zoom SVGs -->
<script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
<link rel="stylesheet" href="zcash-dag.css">
<style>
@media (prefers-color-scheme: dark) {
body {
/* Material dark theme surface colour */
background-color: #121212;
}
}
</style>
</head>
<body>
<div id="dag"><svg width="776pt" height="1930pt"
viewBox="0.00 0.00 776.00 1930.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 1926)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1926 772,-1926 772,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="#000000" stroke-width="2" points="232,-53 0,-53 0,0 232,0 232,-53"/>
<text text-anchor="middle" x="116" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5297</text>
<text text-anchor="middle" x="116" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add metrics for chain</text>
<text text-anchor="middle" x="116" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">fork work and lengths</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5316 -->
<g id="node2" class="node open">
<title>ZcashFoundation/zebra#5316</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5316" xlink:title="ZcashFoundation/zebra#5316&#10;Only run the&#10;`lightwalletd` full sync&#10;on the `main` branch" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-139.5 0,-139.5 0,-71.5 232,-71.5 232,-139.5"/>
<text text-anchor="middle" x="116" y="-124.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5316</text>
<text text-anchor="middle" x="116" y="-109.3" font-family="Times,serif" font-size="14.00" fill="#000000">Only run the</text>
<text text-anchor="middle" x="116" y="-94.3" font-family="Times,serif" font-size="14.00" fill="#000000">`lightwalletd` full sync</text>
<text text-anchor="middle" x="116" y="-79.3" font-family="Times,serif" font-size="14.00" fill="#000000">on the `main` branch</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5015 -->
<g id="node3" class="node open">
<title>ZcashFoundation/zebra#5015</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5015" xlink:title="ZcashFoundation/zebra#5015&#10;Get transactions from the&#10;non&#45;finalized state in&#10;the send transactions&#10;test" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-241 0,-241 0,-158 232,-158 232,-241"/>
<text text-anchor="middle" x="116" y="-225.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5015</text>
<text text-anchor="middle" x="116" y="-210.8" font-family="Times,serif" font-size="14.00" fill="#000000">Get transactions from the</text>
<text text-anchor="middle" x="116" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">non&#45;finalized state in</text>
<text text-anchor="middle" x="116" y="-180.8" font-family="Times,serif" font-size="14.00" fill="#000000">the send transactions</text>
<text text-anchor="middle" x="116" y="-165.8" font-family="Times,serif" font-size="14.00" fill="#000000">test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2375 -->
<g id="node4" class="node open">
<title>ZcashFoundation/zebra#2375</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2375" xlink:title="ZcashFoundation/zebra#2375&#10;Allow different `zebra&#45;&#10;network` apps to use&#10;different user agents" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-327.5 0,-327.5 0,-259.5 232,-259.5 232,-327.5"/>
<text text-anchor="middle" x="116" y="-312.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2375</text>
<text text-anchor="middle" x="116" y="-297.3" font-family="Times,serif" font-size="14.00" fill="#000000">Allow different `zebra&#45;</text>
<text text-anchor="middle" x="116" y="-282.3" font-family="Times,serif" font-size="14.00" fill="#000000">network` apps to use</text>
<text text-anchor="middle" x="116" y="-267.3" font-family="Times,serif" font-size="14.00" fill="#000000">different user agents</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#794 -->
<g id="node5" class="node closed">
<title>ZcashFoundation/zebra#794</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/794" xlink:title="ZcashFoundation/zebra#794&#10;Make sure custom user&#10;agents conform to BIP&#45;14" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="495.5,-320 272.5,-320 272.5,-267 495.5,-267 495.5,-320"/>
<text text-anchor="middle" x="384" y="-304.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#794</text>
<text text-anchor="middle" x="384" y="-289.8" font-family="Times,serif" font-size="14.00" fill="#000000">Make sure custom user</text>
<text text-anchor="middle" x="384" y="-274.8" font-family="Times,serif" font-size="14.00" fill="#000000">agents conform to BIP&#45;14</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794</title>
<path fill="none" stroke="#000000" d="M232.38,-293.5C242.23,-293.5 252.22,-293.5 262.11,-293.5"/>
<polygon fill="#000000" stroke="#000000" points="262.39,-297.0001 272.39,-293.5 262.39,-290.0001 262.39,-297.0001"/>
</g>
<!-- ZcashFoundation/zebra#2631 -->
<g id="node6" class="node open">
<title>ZcashFoundation/zebra#2631</title>
<g id="a_node6"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2631" xlink:title="ZcashFoundation/zebra#2631&#10;Send committed spent&#10;OutPoints &amp; nullifiers to&#10;the mempool for rejection" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-485.5 0,-485.5 0,-417.5 232,-417.5 232,-485.5"/>
<text text-anchor="middle" x="116" y="-470.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2631</text>
<text text-anchor="middle" x="116" y="-455.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send committed spent</text>
<text text-anchor="middle" x="116" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">OutPoints &amp; nullifiers to</text>
<text text-anchor="middle" x="116" y="-425.3" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool for rejection</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5235 -->
<g id="node7" class="node open">
<title>ZcashFoundation/zebra#5235</title>
<g id="a_node7"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5235" xlink:title="ZcashFoundation/zebra#5235&#10;Add support for&#10;`getblocktemplate` RPC&#10;call" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-564.5 268,-564.5 268,-496.5 500,-496.5 500,-564.5"/>
<text text-anchor="middle" x="384" y="-549.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5235</text>
<text text-anchor="middle" x="384" y="-534.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="384" y="-519.3" font-family="Times,serif" font-size="14.00" fill="#000000">`getblocktemplate` RPC</text>
<text text-anchor="middle" x="384" y="-504.3" font-family="Times,serif" font-size="14.00" fill="#000000">call</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5235 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5235</title>
<path fill="none" stroke="#000000" d="M231.6,-485.58C240.55,-488.21 249.61,-490.88 258.61,-493.54"/>
<polygon fill="#000000" stroke="#000000" points="257.7786,-496.9437 268.36,-496.41 259.7553,-490.2286 257.7786,-496.9437"/>
</g>
<!-- ZcashFoundation/zebra#5236 -->
<g id="node8" class="node open">
<title>ZcashFoundation/zebra#5236</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5236" xlink:title="ZcashFoundation/zebra#5236&#10;Add support for&#10;`submitblock` RPC call" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-478 268,-478 268,-425 500,-425 500,-478"/>
<text text-anchor="middle" x="384" y="-462.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5236</text>
<text text-anchor="middle" x="384" y="-447.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for</text>
<text text-anchor="middle" x="384" y="-432.8" font-family="Times,serif" font-size="14.00" fill="#000000">`submitblock` RPC call</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5236 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/zebra#2631&#45;&gt;ZcashFoundation/zebra#5236</title>
<path fill="none" stroke="#000000" d="M232.38,-451.5C240.71,-451.5 249.14,-451.5 257.53,-451.5"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-455.0001 267.74,-451.5 257.74,-448.0001 257.74,-455.0001"/>
</g>
<!-- ZcashFoundation/zebra#5336 -->
<g id="node9" class="node open">
<title>ZcashFoundation/zebra#5336</title>
<g id="a_node9"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5336" xlink:title="ZcashFoundation/zebra#5336&#10;Relay mempool&#10;transactions based on the&#10;ZIP&#45;317 fee rules" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-485.5 536,-485.5 536,-417.5 768,-417.5 768,-485.5"/>
<text text-anchor="middle" x="652" y="-470.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5336</text>
<text text-anchor="middle" x="652" y="-455.3" font-family="Times,serif" font-size="14.00" fill="#000000">Relay mempool</text>
<text text-anchor="middle" x="652" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions based on the</text>
<text text-anchor="middle" x="652" y="-425.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;317 fee rules</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5235&#45;&gt;ZcashFoundation/zebra#5336 -->
<g id="edge4" class="edge">
<title>ZcashFoundation/zebra#5235&#45;&gt;ZcashFoundation/zebra#5336</title>
<path fill="none" stroke="#000000" d="M499.6,-496.42C508.55,-493.79 517.61,-491.12 526.61,-488.46"/>
<polygon fill="#000000" stroke="#000000" points="527.7553,-491.7714 536.36,-485.59 525.7786,-485.0563 527.7553,-491.7714"/>
</g>
<!-- ZcashFoundation/zebra#3247 -->
<g id="node10" class="node open">
<title>ZcashFoundation/zebra#3247</title>
<g id="a_node10"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3247" xlink:title="ZcashFoundation/zebra#3247&#10;Tracking: Questions for&#10;Network Audit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-643 0,-643 0,-590 232,-590 232,-643"/>
<text text-anchor="middle" x="116" y="-627.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3247</text>
<text text-anchor="middle" x="116" y="-612.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: Questions for</text>
<text text-anchor="middle" x="116" y="-597.8" font-family="Times,serif" font-size="14.00" fill="#000000">Network Audit</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3383 -->
<g id="node11" class="node open">
<title>ZcashFoundation/zebra#3383</title>
<g id="a_node11"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3383" xlink:title="ZcashFoundation/zebra#3383&#10;Document `zebrad&#10;download` command" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-714 0,-714 0,-661 232,-661 232,-714"/>
<text text-anchor="middle" x="116" y="-698.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3383</text>
<text text-anchor="middle" x="116" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000">Document `zebrad</text>
<text text-anchor="middle" x="116" y="-668.8" font-family="Times,serif" font-size="14.00" fill="#000000">download` command</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5335 -->
<g id="node12" class="node open">
<title>ZcashFoundation/zebra#5335</title>
<g id="a_node12"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5335" xlink:title="ZcashFoundation/zebra#5335&#10;Evict transactions from&#10;the mempool based on the&#10;ZIP&#45;317 fee rules" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="500,-406.5 268,-406.5 268,-338.5 500,-338.5 500,-406.5"/>
<text text-anchor="middle" x="384" y="-391.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5335</text>
<text text-anchor="middle" x="384" y="-376.3" font-family="Times,serif" font-size="14.00" fill="#000000">Evict transactions from</text>
<text text-anchor="middle" x="384" y="-361.3" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool based on the</text>
<text text-anchor="middle" x="384" y="-346.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;317 fee rules</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5335&#45;&gt;ZcashFoundation/zebra#5336 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#5335&#45;&gt;ZcashFoundation/zebra#5336</title>
<path fill="none" stroke="#000000" d="M499.6,-406.58C508.55,-409.21 517.61,-411.88 526.61,-414.54"/>
<polygon fill="#000000" stroke="#000000" points="525.7786,-417.9437 536.36,-417.41 527.7553,-411.2286 525.7786,-417.9437"/>
</g>
<!-- ZcashFoundation/zebra#1615 -->
<g id="node13" class="node open">
<title>ZcashFoundation/zebra#1615</title>
<g id="a_node13"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1615" xlink:title="ZcashFoundation/zebra#1615&#10;Zebra release candidate&#10;binaries should be linked&#10;from ZFND website" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-800.5 0,-800.5 0,-732.5 232,-732.5 232,-800.5"/>
<text text-anchor="middle" x="116" y="-785.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1615</text>
<text text-anchor="middle" x="116" y="-770.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra release candidate</text>
<text text-anchor="middle" x="116" y="-755.3" font-family="Times,serif" font-size="14.00" fill="#000000">binaries should be linked</text>
<text text-anchor="middle" x="116" y="-740.3" font-family="Times,serif" font-size="14.00" fill="#000000">from ZFND website</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4967 -->
<g id="node14" class="node open">
<title>ZcashFoundation/zebra#4967</title>
<g id="a_node14"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4967" xlink:title="ZcashFoundation/zebra#4967&#10;feat(rpc): add&#10;getblockhash rpc method" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-872 0,-872 0,-868 -4,-868 -4,-864 0,-864 0,-827 -4,-827 -4,-823 0,-823 0,-819 232,-819 232,-872"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-868 4,-868 4,-864 0,-864 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-827 4,-827 4,-823 0,-823 "/>
<text text-anchor="middle" x="116" y="-856.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4967</text>
<text text-anchor="middle" x="116" y="-841.8" font-family="Times,serif" font-size="14.00" fill="#000000">feat(rpc): add</text>
<text text-anchor="middle" x="116" y="-826.8" font-family="Times,serif" font-size="14.00" fill="#000000">getblockhash rpc method</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5357 -->
<g id="node15" class="node open">
<title>ZcashFoundation/zebra#5357</title>
<g id="a_node15"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/5357" xlink:title="ZcashFoundation/zebra#5357&#10;feat(rpc): introduce&#10;`getblocktemplate&#45;rpcs`&#10;feature" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-958.5 0,-958.5 0,-954.5 -4,-954.5 -4,-950.5 0,-950.5 0,-898.5 -4,-898.5 -4,-894.5 0,-894.5 0,-890.5 232,-890.5 232,-958.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-954.5 4,-954.5 4,-950.5 0,-950.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-898.5 4,-898.5 4,-894.5 0,-894.5 "/>
<text text-anchor="middle" x="116" y="-943.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5357</text>
<text text-anchor="middle" x="116" y="-928.3" font-family="Times,serif" font-size="14.00" fill="#000000">feat(rpc): introduce</text>
<text text-anchor="middle" x="116" y="-913.3" font-family="Times,serif" font-size="14.00" fill="#000000">`getblocktemplate&#45;rpcs`</text>
<text text-anchor="middle" x="116" y="-898.3" font-family="Times,serif" font-size="14.00" fill="#000000">feature</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4412 -->
<g id="node16" class="node open">
<title>ZcashFoundation/zebra#4412</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4412" xlink:title="ZcashFoundation/zebra#4412&#10;Automate pinning CI&#10;dependencies to specific&#10;commit hashes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1044.5 0,-1044.5 0,-976.5 232,-976.5 232,-1044.5"/>
<text text-anchor="middle" x="116" y="-1029.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4412</text>
<text text-anchor="middle" x="116" y="-1014.3" font-family="Times,serif" font-size="14.00" fill="#000000">Automate pinning CI</text>
<text text-anchor="middle" x="116" y="-999.3" font-family="Times,serif" font-size="14.00" fill="#000000">dependencies to specific</text>
<text text-anchor="middle" x="116" y="-984.3" font-family="Times,serif" font-size="14.00" fill="#000000">commit hashes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4672 -->
<g id="node17" class="node open">
<title>ZcashFoundation/zebra#4672</title>
<g id="a_node17"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4672" xlink:title="ZcashFoundation/zebra#4672&#10;Add support for Orchard&#10;proof batch verification" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1116 0,-1116 0,-1063 232,-1063 232,-1116"/>
<text text-anchor="middle" x="116" y="-1100.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4672</text>
<text text-anchor="middle" x="116" y="-1085.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for Orchard</text>
<text text-anchor="middle" x="116" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000">proof batch verification</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5214 -->
<g id="node18" class="node open">
<title>ZcashFoundation/zebra#5214</title>
<g id="a_node18"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5214" xlink:title="ZcashFoundation/zebra#5214&#10;Task: Make a list of&#10;Zebra dependencies" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1187 0,-1187 0,-1134 232,-1134 232,-1187"/>
<text text-anchor="middle" x="116" y="-1171.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5214</text>
<text text-anchor="middle" x="116" y="-1156.8" font-family="Times,serif" font-size="14.00" fill="#000000">Task: Make a list of</text>
<text text-anchor="middle" x="116" y="-1141.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra dependencies</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5376 -->
<g id="node19" class="node open">
<title>ZcashFoundation/zebra#5376</title>
<g id="a_node19"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5376" xlink:title="ZcashFoundation/zebra#5376&#10;Do contextual validation&#10;on mempool transactions&#10;using the state best tip" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-571.5 0,-571.5 0,-503.5 232,-503.5 232,-571.5"/>
<text text-anchor="middle" x="116" y="-556.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5376</text>
<text text-anchor="middle" x="116" y="-541.3" font-family="Times,serif" font-size="14.00" fill="#000000">Do contextual validation</text>
<text text-anchor="middle" x="116" y="-526.3" font-family="Times,serif" font-size="14.00" fill="#000000">on mempool transactions</text>
<text text-anchor="middle" x="116" y="-511.3" font-family="Times,serif" font-size="14.00" fill="#000000">using the state best tip</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5376&#45;&gt;ZcashFoundation/zebra#5235 -->
<g id="edge6" class="edge">
<title>ZcashFoundation/zebra#5376&#45;&gt;ZcashFoundation/zebra#5235</title>
<path fill="none" stroke="#000000" d="M232.38,-534.46C240.71,-534.24 249.14,-534.02 257.53,-533.8"/>
<polygon fill="#000000" stroke="#000000" points="257.8324,-537.2935 267.74,-533.54 257.6541,-530.2958 257.8324,-537.2935"/>
</g>
<!-- ZcashFoundation/zebra#5370 -->
<g id="node20" class="node open">
<title>ZcashFoundation/zebra#5370</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/5370" xlink:title="ZcashFoundation/zebra#5370&#10;ci(ssh): avoid ssh&#10;timeouts from the server" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1258 0,-1258 0,-1254 -4,-1254 -4,-1250 0,-1250 0,-1213 -4,-1213 -4,-1209 0,-1209 0,-1205 232,-1205 232,-1258"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-1254 4,-1254 4,-1250 0,-1250 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-1213 4,-1213 4,-1209 0,-1209 "/>
<text text-anchor="middle" x="116" y="-1242.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5370</text>
<text text-anchor="middle" x="116" y="-1227.8" font-family="Times,serif" font-size="14.00" fill="#000000">ci(ssh): avoid ssh</text>
<text text-anchor="middle" x="116" y="-1212.8" font-family="Times,serif" font-size="14.00" fill="#000000">timeouts from the server</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5371 -->
<g id="node21" class="node open">
<title>ZcashFoundation/zebra#5371</title>
<g id="a_node21"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/5371" xlink:title="ZcashFoundation/zebra#5371&#10;ci(disk): use an official&#10;GCP image on CI VMs for&#10;disk auto&#45;resizing, make&#10;CI &amp; CD disks 300GB" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-1273 268,-1273 268,-1269 264,-1269 264,-1265 268,-1265 268,-1198 264,-1198 264,-1194 268,-1194 268,-1190 500,-1190 500,-1273"/>
<polyline fill="none" stroke="#000000" points="268,-1269 272,-1269 272,-1265 268,-1265 "/>
<polyline fill="none" stroke="#000000" points="268,-1198 272,-1198 272,-1194 268,-1194 "/>
<text text-anchor="middle" x="384" y="-1257.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5371</text>
<text text-anchor="middle" x="384" y="-1242.8" font-family="Times,serif" font-size="14.00" fill="#000000">ci(disk): use an official</text>
<text text-anchor="middle" x="384" y="-1227.8" font-family="Times,serif" font-size="14.00" fill="#000000">GCP image on CI VMs for</text>
<text text-anchor="middle" x="384" y="-1212.8" font-family="Times,serif" font-size="14.00" fill="#000000">disk auto&#45;resizing, make</text>
<text text-anchor="middle" x="384" y="-1197.8" font-family="Times,serif" font-size="14.00" fill="#000000">CI &amp; CD disks 300GB</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5370&#45;&gt;ZcashFoundation/zebra#5371 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#5370&#45;&gt;ZcashFoundation/zebra#5371</title>
<path fill="none" stroke="#000000" d="M232.38,-1231.5C240.71,-1231.5 249.14,-1231.5 257.53,-1231.5"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-1235.0001 267.74,-1231.5 257.74,-1228.0001 257.74,-1235.0001"/>
</g>
<!-- ZcashFoundation/zebra#4841 -->
<g id="node22" class="node closed">
<title>ZcashFoundation/zebra#4841</title>
<g id="a_node22"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4841" xlink:title="ZcashFoundation/zebra#4841&#10;Improve note commitment&#10;tree append performance" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="500,-1394 268,-1394 268,-1341 500,-1341 500,-1394"/>
<text text-anchor="middle" x="384" y="-1378.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4841</text>
<text text-anchor="middle" x="384" y="-1363.8" font-family="Times,serif" font-size="14.00" fill="#000000">Improve note commitment</text>
<text text-anchor="middle" x="384" y="-1348.8" font-family="Times,serif" font-size="14.00" fill="#000000">tree append performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4612 -->
<g id="node23" class="node closed">
<title>ZcashFoundation/zebra#4612</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4612" xlink:title="ZcashFoundation/zebra#4612&#10;ci: Wait for lightwalletd&#10;image rebuild if it has&#10;changed" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="500,-1546.5 268,-1546.5 268,-1478.5 500,-1478.5 500,-1546.5"/>
<text text-anchor="middle" x="384" y="-1531.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4612</text>
<text text-anchor="middle" x="384" y="-1516.3" font-family="Times,serif" font-size="14.00" fill="#000000">ci: Wait for lightwalletd</text>
<text text-anchor="middle" x="384" y="-1501.3" font-family="Times,serif" font-size="14.00" fill="#000000">image rebuild if it has</text>
<text text-anchor="middle" x="384" y="-1486.3" font-family="Times,serif" font-size="14.00" fill="#000000">changed</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5189 -->
<g id="node24" class="node closed">
<title>ZcashFoundation/zebra#5189</title>
<g id="a_node24"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5189" xlink:title="ZcashFoundation/zebra#5189&#10;Run some docker tests on&#10;smaller instances" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="500,-1625 268,-1625 268,-1572 500,-1572 500,-1625"/>
<text text-anchor="middle" x="384" y="-1609.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5189</text>
<text text-anchor="middle" x="384" y="-1594.8" font-family="Times,serif" font-size="14.00" fill="#000000">Run some docker tests on</text>
<text text-anchor="middle" x="384" y="-1579.8" font-family="Times,serif" font-size="14.00" fill="#000000">smaller instances</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4794 -->
<g id="node25" class="node open">
<title>ZcashFoundation/zebra#4794</title>
<g id="a_node25"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4794" xlink:title="ZcashFoundation/zebra#4794&#10;Revert note commitment&#10;and history trees when&#10;forking non&#45;finalized&#10;chains" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1734 0,-1734 0,-1651 232,-1651 232,-1734"/>
<text text-anchor="middle" x="116" y="-1718.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4794</text>
<text text-anchor="middle" x="116" y="-1703.8" font-family="Times,serif" font-size="14.00" fill="#000000">Revert note commitment</text>
<text text-anchor="middle" x="116" y="-1688.8" font-family="Times,serif" font-size="14.00" fill="#000000">and history trees when</text>
<text text-anchor="middle" x="116" y="-1673.8" font-family="Times,serif" font-size="14.00" fill="#000000">forking non&#45;finalized</text>
<text text-anchor="middle" x="116" y="-1658.8" font-family="Times,serif" font-size="14.00" fill="#000000">chains</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4774 -->
<g id="node26" class="node open">
<title>ZcashFoundation/zebra#4774</title>
<g id="a_node26"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4774" xlink:title="ZcashFoundation/zebra#4774&#10;Add an NU5 block test&#10;vector that contains many&#10;shielded Orchard&#10;transactions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1460 0,-1460 0,-1377 232,-1377 232,-1460"/>
<text text-anchor="middle" x="116" y="-1444.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4774</text>
<text text-anchor="middle" x="116" y="-1429.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="116" y="-1414.8" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="116" y="-1399.8" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Orchard</text>
<text text-anchor="middle" x="116" y="-1384.8" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge8" class="edge">
<title>ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M232.38,-1396.4C240.81,-1394.7 249.33,-1393.1 257.81,-1391.5"/>
<polygon fill="#000000" stroke="#000000" points="258.576,-1394.917 267.74,-1389.6 257.2604,-1388.0417 258.576,-1394.917"/>
</g>
<!-- ZcashFoundation/zebra#4775 -->
<g id="node27" class="node open">
<title>ZcashFoundation/zebra#4775</title>
<g id="a_node27"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4775" xlink:title="ZcashFoundation/zebra#4775&#10;Add an NU5 block test&#10;vector that contains many&#10;shielded Sapling&#10;transactions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1359 0,-1359 0,-1276 232,-1276 232,-1359"/>
<text text-anchor="middle" x="116" y="-1343.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4775</text>
<text text-anchor="middle" x="116" y="-1328.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="116" y="-1313.8" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="116" y="-1298.8" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Sapling</text>
<text text-anchor="middle" x="116" y="-1283.8" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M232.38,-1339.2C240.81,-1340.8 249.33,-1342.4 257.81,-1344"/>
<polygon fill="#000000" stroke="#000000" points="257.2761,-1347.4602 267.74,-1345.8 258.5246,-1340.5724 257.2761,-1347.4602"/>
</g>
<!-- ZcashFoundation/zebra#4882 -->
<g id="node28" class="node open">
<title>ZcashFoundation/zebra#4882</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4882" xlink:title="ZcashFoundation/zebra#4882&#10;Add zcash&#45;lightwalletd /&#10;Build images to required&#10;jobs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1546.5 0,-1546.5 0,-1478.5 232,-1478.5 232,-1546.5"/>
<text text-anchor="middle" x="116" y="-1531.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4882</text>
<text text-anchor="middle" x="116" y="-1516.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add zcash&#45;lightwalletd /</text>
<text text-anchor="middle" x="116" y="-1501.3" font-family="Times,serif" font-size="14.00" fill="#000000">Build images to required</text>
<text text-anchor="middle" x="116" y="-1486.3" font-family="Times,serif" font-size="14.00" fill="#000000">jobs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4882&#45;&gt;ZcashFoundation/zebra#4612 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#4882&#45;&gt;ZcashFoundation/zebra#4612</title>
<path fill="none" stroke="#000000" d="M232.38,-1512.5C240.71,-1512.5 249.14,-1512.5 257.53,-1512.5"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-1516.0001 267.74,-1512.5 257.74,-1509.0001 257.74,-1516.0001"/>
</g>
<!-- ZcashFoundation/zebra#5199 -->
<g id="node29" class="node open">
<title>ZcashFoundation/zebra#5199</title>
<g id="a_node29"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5199" xlink:title="ZcashFoundation/zebra#5199&#10;Consider using `nextest`&#10;to run tests faster and&#10;reduce Google Cloud costs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1632.5 0,-1632.5 0,-1564.5 232,-1564.5 232,-1632.5"/>
<text text-anchor="middle" x="116" y="-1617.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5199</text>
<text text-anchor="middle" x="116" y="-1602.3" font-family="Times,serif" font-size="14.00" fill="#000000">Consider using `nextest`</text>
<text text-anchor="middle" x="116" y="-1587.3" font-family="Times,serif" font-size="14.00" fill="#000000">to run tests faster and</text>
<text text-anchor="middle" x="116" y="-1572.3" font-family="Times,serif" font-size="14.00" fill="#000000">reduce Google Cloud costs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5199&#45;&gt;ZcashFoundation/zebra#5189 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#5199&#45;&gt;ZcashFoundation/zebra#5189</title>
<path fill="none" stroke="#000000" d="M232.38,-1598.5C240.71,-1598.5 249.14,-1598.5 257.53,-1598.5"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-1602.0001 267.74,-1598.5 257.74,-1595.0001 257.74,-1602.0001"/>
</g>
<!-- ZcashFoundation/zebra#4554 -->
<g id="node30" class="node open">
<title>ZcashFoundation/zebra#4554</title>
<g id="a_node30"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4554" xlink:title="ZcashFoundation/zebra#4554&#10;benchmarks: surface&#10;zebrad mainnet sync time&#10;in CI" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1820.5 0,-1820.5 0,-1752.5 232,-1752.5 232,-1820.5"/>
<text text-anchor="middle" x="116" y="-1805.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4554</text>
<text text-anchor="middle" x="116" y="-1790.3" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks: surface</text>
<text text-anchor="middle" x="116" y="-1775.3" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad mainnet sync time</text>
<text text-anchor="middle" x="116" y="-1760.3" font-family="Times,serif" font-size="14.00" fill="#000000">in CI</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4545 -->
<g id="node31" class="node open">
<title>ZcashFoundation/zebra#4545</title>
<g id="a_node31"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4545" xlink:title="ZcashFoundation/zebra#4545&#10;Start disconnecting from&#10;outdated peers before&#10;network upgrade&#10;activation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1922 0,-1922 0,-1839 232,-1839 232,-1922"/>
<text text-anchor="middle" x="116" y="-1906.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4545</text>
<text text-anchor="middle" x="116" y="-1891.8" font-family="Times,serif" font-size="14.00" fill="#000000">Start disconnecting from</text>
<text text-anchor="middle" x="116" y="-1876.8" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers before</text>
<text text-anchor="middle" x="116" y="-1861.8" font-family="Times,serif" font-size="14.00" fill="#000000">network upgrade</text>
<text text-anchor="middle" x="116" y="-1846.8" font-family="Times,serif" font-size="14.00" fill="#000000">activation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4226 -->
<g id="node32" class="node closed">
<title>ZcashFoundation/zebra#4226</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4226" xlink:title="ZcashFoundation/zebra#4226&#10;Prefer faster peers, but&#10;if all peers are slow,&#10;still connect to them" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="500,-1914.5 268,-1914.5 268,-1846.5 500,-1846.5 500,-1914.5"/>
<text text-anchor="middle" x="384" y="-1899.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4226</text>
<text text-anchor="middle" x="384" y="-1884.3" font-family="Times,serif" font-size="14.00" fill="#000000">Prefer faster peers, but</text>
<text text-anchor="middle" x="384" y="-1869.3" font-family="Times,serif" font-size="14.00" fill="#000000">if all peers are slow,</text>
<text text-anchor="middle" x="384" y="-1854.3" font-family="Times,serif" font-size="14.00" fill="#000000">still connect to them</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226</title>
<path fill="none" stroke="#000000" d="M232.38,-1880.5C240.71,-1880.5 249.14,-1880.5 257.53,-1880.5"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-1884.0001 267.74,-1880.5 257.74,-1877.0001 257.74,-1884.0001"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>