developers/zcash-zf-dag.html

792 lines
60 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="1084pt" height="3124pt"
viewBox="0.00 0.00 1084.00 3123.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3119.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-3119.5 1080,-3119.5 1080,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_0</title>
<polygon fill="none" stroke="#0000ff" points="280,-292 280,-1462 816,-1462 816,-292 280,-292"/>
<text text-anchor="middle" x="548" y="-1446.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra Release Candidates</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_1</title>
<polygon fill="none" stroke="#0000ff" points="260,-1470 260,-1663 548,-1663 548,-1470 260,-1470"/>
<text text-anchor="middle" x="404" y="-1647.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra as a lightwalletd backend</text>
</g>
<!-- ZcashFoundation/zebra#1615 -->
<g id="node1" class="node open">
<title>ZcashFoundation/zebra#1615</title>
<g id="a_node1"><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" points="520,-1431 288,-1431 288,-1363 520,-1363 520,-1431"/>
<text text-anchor="middle" x="404" y="-1415.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1615</text>
<text text-anchor="middle" x="404" y="-1400.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra release candidate</text>
<text text-anchor="middle" x="404" y="-1385.8" font-family="Times,serif" font-size="14.00" fill="#000000">binaries should be linked</text>
<text text-anchor="middle" x="404" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000">from ZFND website</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3050 -->
<g id="node2" class="node open">
<title>ZcashFoundation/zebra#3050</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3050" xlink:title="ZcashFoundation/zebra#3050&#10;Tag Zebra 1.0.0&#45;rc.0&#10;stable release candidate" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="808,-1157.5 576,-1157.5 576,-1104.5 808,-1104.5 808,-1157.5"/>
<text text-anchor="middle" x="692" y="-1142.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3050</text>
<text text-anchor="middle" x="692" y="-1127.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tag Zebra 1.0.0&#45;rc.0</text>
<text text-anchor="middle" x="692" y="-1112.3" font-family="Times,serif" font-size="14.00" fill="#000000">stable release candidate</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4967 -->
<g id="node18" class="node open">
<title>ZcashFoundation/zebra#4967</title>
<g id="a_node18"><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" points="1076,-1192.5 844,-1192.5 844,-1188.5 840,-1188.5 840,-1184.5 844,-1184.5 844,-1147.5 840,-1147.5 840,-1143.5 844,-1143.5 844,-1139.5 1076,-1139.5 1076,-1192.5"/>
<polyline fill="none" stroke="#000000" points="844,-1188.5 848,-1188.5 848,-1184.5 844,-1184.5 "/>
<polyline fill="none" stroke="#000000" points="844,-1147.5 848,-1147.5 848,-1143.5 844,-1143.5 "/>
<text text-anchor="middle" x="960" y="-1177.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4967</text>
<text text-anchor="middle" x="960" y="-1162.3" font-family="Times,serif" font-size="14.00" fill="#000000">feat(rpc): add</text>
<text text-anchor="middle" x="960" y="-1147.3" font-family="Times,serif" font-size="14.00" fill="#000000">getblockhash rpc method</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4967 -->
<g id="edge6" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4967</title>
<path fill="none" stroke="#000000" d="M808.38,-1146.2C816.81,-1147.3 825.33,-1148.4 833.81,-1149.5"/>
<polygon fill="#000000" stroke="#000000" points="833.3702,-1152.9722 843.74,-1150.8 834.279,-1146.0314 833.3702,-1152.9722"/>
</g>
<!-- ZcashFoundation/zebra#4992 -->
<g id="node19" class="node open">
<title>ZcashFoundation/zebra#4992</title>
<g id="a_node19"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4992" xlink:title="ZcashFoundation/zebra#4992&#10;Run cached state CI on&#10;testnet" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1076,-1121.5 844,-1121.5 844,-1068.5 1076,-1068.5 1076,-1121.5"/>
<text text-anchor="middle" x="960" y="-1106.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4992</text>
<text text-anchor="middle" x="960" y="-1091.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run cached state CI on</text>
<text text-anchor="middle" x="960" y="-1076.3" font-family="Times,serif" font-size="14.00" fill="#000000">testnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4992 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#3050&#45;&gt;ZcashFoundation/zebra#4992</title>
<path fill="none" stroke="#000000" d="M808.38,-1115.4C816.81,-1114.2 825.33,-1113.1 833.81,-1112"/>
<polygon fill="#000000" stroke="#000000" points="834.3266,-1115.4619 843.74,-1110.6 833.3493,-1108.5304 834.3266,-1115.4619"/>
</g>
<!-- ZcashFoundation/zebra#4932 -->
<g id="node3" class="node open">
<title>ZcashFoundation/zebra#4932</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4932" xlink:title="ZcashFoundation/zebra#4932&#10;Reduce the frequency of&#10;Zebra performance logs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-1344.5 288,-1344.5 288,-1291.5 520,-1291.5 520,-1344.5"/>
<text text-anchor="middle" x="404" y="-1329.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4932</text>
<text text-anchor="middle" x="404" y="-1314.3" font-family="Times,serif" font-size="14.00" fill="#000000">Reduce the frequency of</text>
<text text-anchor="middle" x="404" y="-1299.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra performance logs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4932&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#4932&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M520.28,-1296C529.94,-1292.3 539.32,-1288 548,-1283 598.59,-1253.7 642.46,-1201.2 668.08,-1166.2"/>
<polygon fill="#000000" stroke="#000000" points="671.1952,-1167.8628 674.19,-1157.7 665.5112,-1163.777 671.1952,-1167.8628"/>
</g>
<!-- ZcashFoundation/zebra#4894 -->
<g id="node4" class="node open">
<title>ZcashFoundation/zebra#4894</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4894" xlink:title="ZcashFoundation/zebra#4894&#10;Make tests wait until&#10;lightwalletd full sync&#10;goes all the way to the&#10;tip" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-1273.5 288,-1273.5 288,-1190.5 520,-1190.5 520,-1273.5"/>
<text text-anchor="middle" x="404" y="-1258.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4894</text>
<text text-anchor="middle" x="404" y="-1243.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make tests wait until</text>
<text text-anchor="middle" x="404" y="-1228.3" font-family="Times,serif" font-size="14.00" fill="#000000">lightwalletd full sync</text>
<text text-anchor="middle" x="404" y="-1213.3" font-family="Times,serif" font-size="14.00" fill="#000000">goes all the way to the</text>
<text text-anchor="middle" x="404" y="-1198.3" font-family="Times,serif" font-size="14.00" fill="#000000">tip</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4894&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#4894&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M520.34,-1191.7C529.7,-1188.4 539.01,-1185.2 548,-1182 567.36,-1175.2 588.16,-1167.9 607.77,-1160.9"/>
<polygon fill="#000000" stroke="#000000" points="608.9879,-1164.1822 617.29,-1157.6 606.6952,-1157.5683 608.9879,-1164.1822"/>
</g>
<!-- ZcashFoundation/zebra#4778 -->
<g id="node5" class="node open">
<title>ZcashFoundation/zebra#4778</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4778" xlink:title="ZcashFoundation/zebra#4778&#10;Replace old release&#10;criteria with stable&#10;release candidate&#10;criteria in docs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-1172.5 288,-1172.5 288,-1089.5 520,-1089.5 520,-1172.5"/>
<text text-anchor="middle" x="404" y="-1157.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4778</text>
<text text-anchor="middle" x="404" y="-1142.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace old release</text>
<text text-anchor="middle" x="404" y="-1127.3" font-family="Times,serif" font-size="14.00" fill="#000000">criteria with stable</text>
<text text-anchor="middle" x="404" y="-1112.3" font-family="Times,serif" font-size="14.00" fill="#000000">release candidate</text>
<text text-anchor="middle" x="404" y="-1097.3" font-family="Times,serif" font-size="14.00" fill="#000000">criteria in docs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4778&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/zebra#4778&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M520.31,-1131C535.15,-1131 550.4,-1131 565.39,-1131"/>
<polygon fill="#000000" stroke="#000000" points="565.72,-1134.5001 575.72,-1131 565.72,-1127.5001 565.72,-1134.5001"/>
</g>
<!-- ZcashFoundation/zebra#4882 -->
<g id="node6" class="node open">
<title>ZcashFoundation/zebra#4882</title>
<g id="a_node6"><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="520,-985 288,-985 288,-917 520,-917 520,-985"/>
<text text-anchor="middle" x="404" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4882</text>
<text text-anchor="middle" x="404" y="-954.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add zcash&#45;lightwalletd /</text>
<text text-anchor="middle" x="404" y="-939.8" font-family="Times,serif" font-size="14.00" fill="#000000">Build images to required</text>
<text text-anchor="middle" x="404" y="-924.8" font-family="Times,serif" font-size="14.00" fill="#000000">jobs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4612 -->
<g id="node17" class="node open">
<title>ZcashFoundation/zebra#4612</title>
<g id="a_node17"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4612" xlink:title="ZcashFoundation/zebra#4612&#10;ci: Wait for lightwalletd&#10;image rebuild if it has&#10;changed" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1546 288,-1546 288,-1478 520,-1478 520,-1546"/>
<text text-anchor="middle" x="404" y="-1530.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4612</text>
<text text-anchor="middle" x="404" y="-1515.8" font-family="Times,serif" font-size="14.00" fill="#000000">ci: Wait for lightwalletd</text>
<text text-anchor="middle" x="404" y="-1500.8" font-family="Times,serif" font-size="14.00" fill="#000000">image rebuild if it has</text>
<text text-anchor="middle" x="404" y="-1485.8" font-family="Times,serif" font-size="14.00" fill="#000000">changed</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4882&#45;&gt;ZcashFoundation/zebra#4612 -->
<g id="edge8" class="edge">
<title>ZcashFoundation/zebra#4882&#45;&gt;ZcashFoundation/zebra#4612</title>
<path fill="none" stroke="#000000" d="M287.96,-966.41C270.51,-974.36 255.27,-986.02 246,-1003 233.91,-1025.1 233.91,-1434.9 246,-1457 253.59,-1470.9 265.12,-1481.4 278.57,-1489.3"/>
<polygon fill="#000000" stroke="#000000" points="277.1828,-1492.5255 287.66,-1494.1 280.4515,-1486.3355 277.1828,-1492.5255"/>
</g>
<!-- ZcashFoundation/zebra#4684 -->
<g id="node7" class="node open">
<title>ZcashFoundation/zebra#4684</title>
<g id="a_node7"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4684" xlink:title="ZcashFoundation/zebra#4684&#10;Test that every old&#10;zebrad.toml config still&#10;works" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-1071 288,-1071 288,-1003 520,-1003 520,-1071"/>
<text text-anchor="middle" x="404" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4684</text>
<text text-anchor="middle" x="404" y="-1040.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test that every old</text>
<text text-anchor="middle" x="404" y="-1025.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad.toml config still</text>
<text text-anchor="middle" x="404" y="-1010.8" font-family="Times,serif" font-size="14.00" fill="#000000">works</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4684&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge4" class="edge">
<title>ZcashFoundation/zebra#4684&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M516.93,-1071.1C527.45,-1074.4 537.94,-1077.7 548,-1081 567.35,-1087.3 588.07,-1094.3 607.59,-1101.1"/>
<polygon fill="#000000" stroke="#000000" points="606.4752,-1104.4179 617.07,-1104.4 608.7765,-1097.807 606.4752,-1104.4179"/>
</g>
<!-- ZcashFoundation/zebra#5011 -->
<g id="node20" class="node open">
<title>ZcashFoundation/zebra#5011</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5011" xlink:title="ZcashFoundation/zebra#5011&#10;Tag Zebra 1.0.0&#45;beta.15&#10;release" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="808,-239.5 576,-239.5 576,-186.5 808,-186.5 808,-239.5"/>
<text text-anchor="middle" x="692" y="-224.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5011</text>
<text text-anchor="middle" x="692" y="-209.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tag Zebra 1.0.0&#45;beta.15</text>
<text text-anchor="middle" x="692" y="-194.3" font-family="Times,serif" font-size="14.00" fill="#000000">release</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4684&#45;&gt;ZcashFoundation/zebra#5011 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#4684&#45;&gt;ZcashFoundation/zebra#5011</title>
<path fill="none" stroke="#000000" d="M520.18,-1017.2C530.87,-1011.3 540.48,-1003.7 548,-994 596.14,-931.99 537.11,-356.2 576,-288 586.07,-270.35 602.18,-256.17 619.23,-245.09"/>
<polygon fill="#000000" stroke="#000000" points="621.5111,-247.7964 628.2,-239.58 617.8472,-241.8318 621.5111,-247.7964"/>
</g>
<!-- ZcashFoundation/zebra#4929 -->
<g id="node8" class="node open">
<title>ZcashFoundation/zebra#4929</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4929" xlink:title="ZcashFoundation/zebra#4929&#10;Re&#45;enable beta Rust tests&#10;on Ubuntu" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-898.5 288,-898.5 288,-845.5 520,-845.5 520,-898.5"/>
<text text-anchor="middle" x="404" y="-883.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4929</text>
<text text-anchor="middle" x="404" y="-868.3" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable beta Rust tests</text>
<text text-anchor="middle" x="404" y="-853.3" font-family="Times,serif" font-size="14.00" fill="#000000">on Ubuntu</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4529 -->
<g id="node9" class="node open">
<title>ZcashFoundation/zebra#4529</title>
<g id="a_node9"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4529" xlink:title="ZcashFoundation/zebra#4529&#10;Make PRs from external&#10;repositories pass or skip&#10;CI jobs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-827 288,-827 288,-759 520,-759 520,-827"/>
<text text-anchor="middle" x="404" y="-811.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4529</text>
<text text-anchor="middle" x="404" y="-796.8" font-family="Times,serif" font-size="14.00" fill="#000000">Make PRs from external</text>
<text text-anchor="middle" x="404" y="-781.8" font-family="Times,serif" font-size="14.00" fill="#000000">repositories pass or skip</text>
<text text-anchor="middle" x="404" y="-766.8" font-family="Times,serif" font-size="14.00" fill="#000000">CI jobs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4821 -->
<g id="node10" class="node open">
<title>ZcashFoundation/zebra#4821</title>
<g id="a_node10"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4821" xlink:title="ZcashFoundation/zebra#4821&#10;Open the database in a&#10;blocking tokio thread" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-740.5 288,-740.5 288,-687.5 520,-687.5 520,-740.5"/>
<text text-anchor="middle" x="404" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4821</text>
<text text-anchor="middle" x="404" y="-710.3" font-family="Times,serif" font-size="14.00" fill="#000000">Open the database in a</text>
<text text-anchor="middle" x="404" y="-695.3" font-family="Times,serif" font-size="14.00" fill="#000000">blocking tokio thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4834 -->
<g id="node11" class="node open">
<title>ZcashFoundation/zebra#4834</title>
<g id="a_node11"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4834" xlink:title="ZcashFoundation/zebra#4834&#10;Switch zebrad to a non&#45;&#10;blocking tracing logger" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-669.5 288,-669.5 288,-616.5 520,-616.5 520,-669.5"/>
<text text-anchor="middle" x="404" y="-654.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4834</text>
<text text-anchor="middle" x="404" y="-639.3" font-family="Times,serif" font-size="14.00" fill="#000000">Switch zebrad to a non&#45;</text>
<text text-anchor="middle" x="404" y="-624.3" font-family="Times,serif" font-size="14.00" fill="#000000">blocking tracing logger</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4937 -->
<g id="node12" class="node open">
<title>ZcashFoundation/zebra#4937</title>
<g id="a_node12"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4937" xlink:title="ZcashFoundation/zebra#4937&#10;Committing some blocks to&#10;the state takes 15&#10;minutes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-598 288,-598 288,-530 520,-530 520,-598"/>
<text text-anchor="middle" x="404" y="-582.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4937</text>
<text text-anchor="middle" x="404" y="-567.8" font-family="Times,serif" font-size="14.00" fill="#000000">Committing some blocks to</text>
<text text-anchor="middle" x="404" y="-552.8" font-family="Times,serif" font-size="14.00" fill="#000000">the state takes 15</text>
<text text-anchor="middle" x="404" y="-537.8" font-family="Times,serif" font-size="14.00" fill="#000000">minutes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1638 -->
<g id="node13" class="node open">
<title>ZcashFoundation/zebra#1638</title>
<g id="a_node13"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1638" xlink:title="ZcashFoundation/zebra#1638&#10;Create PGP keys amongst&#10;security@zfnd.org" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-511.5 288,-511.5 288,-458.5 520,-458.5 520,-511.5"/>
<text text-anchor="middle" x="404" y="-496.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1638</text>
<text text-anchor="middle" x="404" y="-481.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create PGP keys amongst</text>
<text text-anchor="middle" x="404" y="-466.3" font-family="Times,serif" font-size="14.00" fill="#000000">security@zfnd.org</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4678 -->
<g id="node14" class="node open">
<title>ZcashFoundation/zebra#4678</title>
<g id="a_node14"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4678" xlink:title="ZcashFoundation/zebra#4678&#10;Return peer metadata from&#10;`connect_isolated`&#10;functions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-440 288,-440 288,-372 520,-372 520,-440"/>
<text text-anchor="middle" x="404" y="-424.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4678</text>
<text text-anchor="middle" x="404" y="-409.8" font-family="Times,serif" font-size="14.00" fill="#000000">Return peer metadata from</text>
<text text-anchor="middle" x="404" y="-394.8" font-family="Times,serif" font-size="14.00" fill="#000000">`connect_isolated`</text>
<text text-anchor="middle" x="404" y="-379.8" font-family="Times,serif" font-size="14.00" fill="#000000">functions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2001 -->
<g id="node15" class="node open">
<title>ZcashFoundation/zebra#2001</title>
<g id="a_node15"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2001" xlink:title="ZcashFoundation/zebra#2001&#10;Write a draft security&#10;triage RFC" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-353.5 288,-353.5 288,-300.5 520,-300.5 520,-353.5"/>
<text text-anchor="middle" x="404" y="-338.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2001</text>
<text text-anchor="middle" x="404" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">Write a draft security</text>
<text text-anchor="middle" x="404" y="-308.3" font-family="Times,serif" font-size="14.00" fill="#000000">triage RFC</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4350 -->
<g id="node16" class="node open">
<title>ZcashFoundation/zebra#4350</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4350" xlink:title="ZcashFoundation/zebra#4350&#10;Add GetMempoolTx and&#10;GetMempoolStream gRPC&#10;tests" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-1632 288,-1632 288,-1564 520,-1564 520,-1632"/>
<text text-anchor="middle" x="404" y="-1616.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4350</text>
<text text-anchor="middle" x="404" y="-1601.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add GetMempoolTx and</text>
<text text-anchor="middle" x="404" y="-1586.8" font-family="Times,serif" font-size="14.00" fill="#000000">GetMempoolStream gRPC</text>
<text text-anchor="middle" x="404" y="-1571.8" font-family="Times,serif" font-size="14.00" fill="#000000">tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4350&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#4350&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M520.04,-1574.6C530.27,-1569.3 539.83,-1562.9 548,-1555 659.71,-1447.4 684.76,-1249.9 690.38,-1168.1"/>
<polygon fill="#000000" stroke="#000000" points="693.893,-1167.9978 691.02,-1157.8 686.9065,-1167.5637 693.893,-1167.9978"/>
</g>
<!-- ZcashFoundation/zebra#271 -->
<g id="node21" class="node open">
<title>ZcashFoundation/zebra#271</title>
<g id="a_node21"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/271" xlink:title="ZcashFoundation/zebra#271&#10;Sapling/Orchard Key&#10;Agreement and KDF" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="227.5,-1763.5 4.5,-1763.5 4.5,-1710.5 227.5,-1710.5 227.5,-1763.5"/>
<text text-anchor="middle" x="116" y="-1748.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#271</text>
<text text-anchor="middle" x="116" y="-1733.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling/Orchard Key</text>
<text text-anchor="middle" x="116" y="-1718.3" font-family="Times,serif" font-size="14.00" fill="#000000">Agreement and KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269 -->
<g id="node22" class="node open">
<title>ZcashFoundation/zebra#269</title>
<g id="a_node22"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/269" xlink:title="ZcashFoundation/zebra#269&#10;Sapling/Orchard note&#10;encryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="515.5,-1811 292.5,-1811 292.5,-1743 515.5,-1743 515.5,-1811"/>
<text text-anchor="middle" x="404" y="-1795.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#269</text>
<text text-anchor="middle" x="404" y="-1780.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling/Orchard note</text>
<text text-anchor="middle" x="404" y="-1765.8" font-family="Times,serif" font-size="14.00" fill="#000000">encryption</text>
<text text-anchor="middle" x="404" y="-1750.8" font-family="Times,serif" font-size="14.00" fill="#000000">implementation.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269</title>
<path fill="none" stroke="#000000" d="M227.76,-1752.5C245.64,-1755 264.21,-1757.6 282.31,-1760.1"/>
<polygon fill="#000000" stroke="#000000" points="281.911,-1763.5782 292.3,-1761.5 282.8825,-1756.6459 281.911,-1763.5782"/>
</g>
<!-- ZcashFoundation/zebra#3002 -->
<g id="node23" class="node open">
<title>ZcashFoundation/zebra#3002</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3002" xlink:title="ZcashFoundation/zebra#3002&#10;Sapling note decryption&#10;implementation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1724.5 288,-1724.5 288,-1671.5 520,-1671.5 520,-1724.5"/>
<text text-anchor="middle" x="404" y="-1709.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3002</text>
<text text-anchor="middle" x="404" y="-1694.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note decryption</text>
<text text-anchor="middle" x="404" y="-1679.3" font-family="Times,serif" font-size="14.00" fill="#000000">implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#3002 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#3002</title>
<path fill="none" stroke="#000000" d="M227.76,-1721.9C244,-1719.7 260.81,-1717.4 277.31,-1715.2"/>
<polygon fill="#000000" stroke="#000000" points="278.1069,-1718.6236 287.54,-1713.8 277.1578,-1711.6883 278.1069,-1718.6236"/>
</g>
<!-- ZcashFoundation/zebra#325 -->
<g id="node24" class="node open">
<title>ZcashFoundation/zebra#325</title>
<g id="a_node24"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/325" xlink:title="ZcashFoundation/zebra#325&#10;Block Chain Scanning" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="227.5,-1820 4.5,-1820 4.5,-1782 227.5,-1782 227.5,-1820"/>
<text text-anchor="middle" x="116" y="-1804.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#325</text>
<text text-anchor="middle" x="116" y="-1789.8" font-family="Times,serif" font-size="14.00" fill="#000000">Block Chain Scanning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2631 -->
<g id="node25" class="node open">
<title>ZcashFoundation/zebra#2631</title>
<g id="a_node25"><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,-1906 0,-1906 0,-1838 232,-1838 232,-1906"/>
<text text-anchor="middle" x="116" y="-1890.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2631</text>
<text text-anchor="middle" x="116" y="-1875.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send committed spent</text>
<text text-anchor="middle" x="116" y="-1860.8" font-family="Times,serif" font-size="14.00" fill="#000000">OutPoints &amp; nullifiers to</text>
<text text-anchor="middle" x="116" y="-1845.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool for rejection</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3247 -->
<g id="node26" class="node open">
<title>ZcashFoundation/zebra#3247</title>
<g id="a_node26"><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,-1977.5 0,-1977.5 0,-1924.5 232,-1924.5 232,-1977.5"/>
<text text-anchor="middle" x="116" y="-1962.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3247</text>
<text text-anchor="middle" x="116" y="-1947.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: Questions for</text>
<text text-anchor="middle" x="116" y="-1932.3" font-family="Times,serif" font-size="14.00" fill="#000000">Network Audit</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3263 -->
<g id="node27" class="node open">
<title>ZcashFoundation/zebra#3263</title>
<g id="a_node27"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3263" xlink:title="ZcashFoundation/zebra#3263&#10;Security: Remove the&#10;ErrorSlot from the&#10;heartbeat and connection&#10;tasks" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-2078.5 0,-2078.5 0,-1995.5 232,-1995.5 232,-2078.5"/>
<text text-anchor="middle" x="116" y="-2063.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3263</text>
<text text-anchor="middle" x="116" y="-2048.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Remove the</text>
<text text-anchor="middle" x="116" y="-2033.3" font-family="Times,serif" font-size="14.00" fill="#000000">ErrorSlot from the</text>
<text text-anchor="middle" x="116" y="-2018.3" font-family="Times,serif" font-size="14.00" fill="#000000">heartbeat and connection</text>
<text text-anchor="middle" x="116" y="-2003.3" font-family="Times,serif" font-size="14.00" fill="#000000">tasks</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3383 -->
<g id="node28" class="node open">
<title>ZcashFoundation/zebra#3383</title>
<g id="a_node28"><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,-2149.5 0,-2149.5 0,-2096.5 232,-2096.5 232,-2149.5"/>
<text text-anchor="middle" x="116" y="-2134.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3383</text>
<text text-anchor="middle" x="116" y="-2119.3" font-family="Times,serif" font-size="14.00" fill="#000000">Document `zebrad</text>
<text text-anchor="middle" x="116" y="-2104.3" font-family="Times,serif" font-size="14.00" fill="#000000">download` command</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4953 -->
<g id="node29" class="node open">
<title>ZcashFoundation/zebra#4953</title>
<g id="a_node29"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4953" xlink:title="ZcashFoundation/zebra#4953&#10;Document how to use&#10;released Zebra binaries" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1423.5 0,-1423.5 0,-1370.5 232,-1370.5 232,-1423.5"/>
<text text-anchor="middle" x="116" y="-1408.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4953</text>
<text text-anchor="middle" x="116" y="-1393.3" font-family="Times,serif" font-size="14.00" fill="#000000">Document how to use</text>
<text text-anchor="middle" x="116" y="-1378.3" font-family="Times,serif" font-size="14.00" fill="#000000">released Zebra binaries</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4953&#45;&gt;ZcashFoundation/zebra#1615 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#4953&#45;&gt;ZcashFoundation/zebra#1615</title>
<path fill="none" stroke="#000000" d="M232.31,-1397C247.15,-1397 262.4,-1397 277.39,-1397"/>
<polygon fill="#000000" stroke="#000000" points="277.72,-1400.5001 287.72,-1397 277.72,-1393.5001 277.72,-1400.5001"/>
</g>
<!-- ZcashFoundation/zebra#1963 -->
<g id="node30" class="node open">
<title>ZcashFoundation/zebra#1963</title>
<g id="a_node30"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1963" xlink:title="ZcashFoundation/zebra#1963&#10;Work out how to release&#10;Zebra binaries" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-131.5 0,-131.5 0,-78.5 232,-78.5 232,-131.5"/>
<text text-anchor="middle" x="116" y="-116.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1963</text>
<text text-anchor="middle" x="116" y="-101.3" font-family="Times,serif" font-size="14.00" fill="#000000">Work out how to release</text>
<text text-anchor="middle" x="116" y="-86.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra binaries</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4954 -->
<g id="node31" class="node open">
<title>ZcashFoundation/zebra#4954</title>
<g id="a_node31"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4954" xlink:title="ZcashFoundation/zebra#4954&#10;Update release checklist&#10;PR template for the&#10;release candidate series" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-282 288,-282 288,-214 520,-214 520,-282"/>
<text text-anchor="middle" x="404" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4954</text>
<text text-anchor="middle" x="404" y="-251.8" font-family="Times,serif" font-size="14.00" fill="#000000">Update release checklist</text>
<text text-anchor="middle" x="404" y="-236.8" font-family="Times,serif" font-size="14.00" fill="#000000">PR template for the</text>
<text text-anchor="middle" x="404" y="-221.8" font-family="Times,serif" font-size="14.00" fill="#000000">release candidate series</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#4954 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#4954</title>
<path fill="none" stroke="#000000" d="M148.54,-131.7C176.62,-153.64 219.01,-184.23 260,-204 265.79,-206.79 271.81,-209.46 277.94,-211.99"/>
<polygon fill="#000000" stroke="#000000" points="277.0746,-215.4126 287.66,-215.86 279.664,-208.9091 277.0746,-215.4126"/>
</g>
<!-- ZcashFoundation/zebra#755 -->
<g id="node32" class="node closed">
<title>ZcashFoundation/zebra#755</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/755" xlink:title="ZcashFoundation/zebra#755&#10;Automate zebrad releases" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="515.5,-124 292.5,-124 292.5,-86 515.5,-86 515.5,-124"/>
<text text-anchor="middle" x="404" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#755</text>
<text text-anchor="middle" x="404" y="-93.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automate zebrad releases</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#755 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#755</title>
<path fill="none" stroke="#000000" d="M232.31,-105C248.73,-105 265.65,-105 282.17,-105"/>
<polygon fill="#000000" stroke="#000000" points="282.39,-108.5001 292.39,-105 282.39,-101.5001 282.39,-108.5001"/>
</g>
<!-- ZcashFoundation/zebra#4412 -->
<g id="node33" class="node open">
<title>ZcashFoundation/zebra#4412</title>
<g id="a_node33"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4412" xlink:title="ZcashFoundation/zebra#4412&#10;Automate pinning CI&#10;dependencies to specific&#10;commit hashes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-68 288,-68 288,0 520,0 520,-68"/>
<text text-anchor="middle" x="404" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4412</text>
<text text-anchor="middle" x="404" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automate pinning CI</text>
<text text-anchor="middle" x="404" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">dependencies to specific</text>
<text text-anchor="middle" x="404" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">commit hashes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#4412 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#1963&#45;&gt;ZcashFoundation/zebra#4412</title>
<path fill="none" stroke="#000000" d="M223.65,-78.461C241.39,-74.088 259.92,-69.52 278.06,-65.047"/>
<polygon fill="#000000" stroke="#000000" points="278.9278,-68.4379 287.8,-62.647 277.253,-61.6412 278.9278,-68.4379"/>
</g>
<!-- ZcashFoundation/zebra#4954&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#4954&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M520.27,-267.07C530.65,-272.48 540.17,-279.33 548,-288 657.7,-409.48 685.26,-947.02 690.79,-1093.8"/>
<polygon fill="#000000" stroke="#000000" points="687.3032,-1094.2321 691.16,-1104.1 694.2987,-1093.9808 687.3032,-1094.2321"/>
</g>
<!-- ZcashFoundation/zebra#4767 -->
<g id="node34" class="node open">
<title>ZcashFoundation/zebra#4767</title>
<g id="a_node34"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4767" xlink:title="ZcashFoundation/zebra#4767&#10;Remove duplicate&#10;`orchard` crates, change&#10;dependencies to&#10;`zcash/librustzcash`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-2250.5 0,-2250.5 0,-2167.5 232,-2167.5 232,-2250.5"/>
<text text-anchor="middle" x="116" y="-2235.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4767</text>
<text text-anchor="middle" x="116" y="-2220.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove duplicate</text>
<text text-anchor="middle" x="116" y="-2205.3" font-family="Times,serif" font-size="14.00" fill="#000000">`orchard` crates, change</text>
<text text-anchor="middle" x="116" y="-2190.3" font-family="Times,serif" font-size="14.00" fill="#000000">dependencies to</text>
<text text-anchor="middle" x="116" y="-2175.3" font-family="Times,serif" font-size="14.00" fill="#000000">`zcash/librustzcash`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4745 -->
<g id="node35" class="node closed">
<title>ZcashFoundation/zebra#4745</title>
<g id="a_node35"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4745" xlink:title="ZcashFoundation/zebra#4745&#10;Broken, half&#45;done support&#10;for halo2 batch&#10;verification" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="520,-2283 288,-2283 288,-2279 284,-2279 284,-2275 288,-2275 288,-2223 284,-2223 284,-2219 288,-2219 288,-2215 520,-2215 520,-2283"/>
<polyline fill="none" stroke="#000000" points="288,-2279 292,-2279 292,-2275 288,-2275 "/>
<polyline fill="none" stroke="#000000" points="288,-2223 292,-2223 292,-2219 288,-2219 "/>
<text text-anchor="middle" x="404" y="-2267.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4745</text>
<text text-anchor="middle" x="404" y="-2252.8" font-family="Times,serif" font-size="14.00" fill="#000000">Broken, half&#45;done support</text>
<text text-anchor="middle" x="404" y="-2237.8" font-family="Times,serif" font-size="14.00" fill="#000000">for halo2 batch</text>
<text text-anchor="middle" x="404" y="-2222.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4767&#45;&gt;ZcashFoundation/zebra#4745 -->
<g id="edge17" class="edge">
<title>ZcashFoundation/zebra#4767&#45;&gt;ZcashFoundation/zebra#4745</title>
<path fill="none" stroke="#000000" d="M232.31,-2225.2C247.15,-2227.2 262.4,-2229.3 277.39,-2231.4"/>
<polygon fill="#000000" stroke="#000000" points="277.3208,-2234.9266 287.72,-2232.9 278.3268,-2227.9992 277.3208,-2234.9266"/>
</g>
<!-- ZcashFoundation/zebra#4672 -->
<g id="node36" class="node open">
<title>ZcashFoundation/zebra#4672</title>
<g id="a_node36"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4672" xlink:title="ZcashFoundation/zebra#4672&#10;Add support for Orchard&#10;proof batch verification" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-2196.5 288,-2196.5 288,-2143.5 520,-2143.5 520,-2196.5"/>
<text text-anchor="middle" x="404" y="-2181.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4672</text>
<text text-anchor="middle" x="404" y="-2166.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for Orchard</text>
<text text-anchor="middle" x="404" y="-2151.3" font-family="Times,serif" font-size="14.00" fill="#000000">proof batch verification</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4767&#45;&gt;ZcashFoundation/zebra#4672 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#4767&#45;&gt;ZcashFoundation/zebra#4672</title>
<path fill="none" stroke="#000000" d="M232.31,-2193.2C247.15,-2191.2 262.4,-2189.2 277.39,-2187.1"/>
<polygon fill="#000000" stroke="#000000" points="278.2807,-2190.5114 287.72,-2185.7 277.3405,-2183.5748 278.2807,-2190.5114"/>
</g>
<!-- ZcashFoundation/zebra#4841 -->
<g id="node37" class="node closed">
<title>ZcashFoundation/zebra#4841</title>
<g id="a_node37"><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="520,-2396.5 288,-2396.5 288,-2343.5 520,-2343.5 520,-2396.5"/>
<text text-anchor="middle" x="404" y="-2381.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4841</text>
<text text-anchor="middle" x="404" y="-2366.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve note commitment</text>
<text text-anchor="middle" x="404" y="-2351.3" font-family="Times,serif" font-size="14.00" fill="#000000">tree append performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4870 -->
<g id="node38" class="node open">
<title>ZcashFoundation/zebra#4870</title>
<g id="a_node38"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4870" xlink:title="ZcashFoundation/zebra#4870&#10;feat(net): return peer&#10;metadata from&#10;`connect_isolated`&#10;functions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-2553.5 0,-2553.5 0,-2549.5 -4,-2549.5 -4,-2545.5 0,-2545.5 0,-2478.5 -4,-2478.5 -4,-2474.5 0,-2474.5 0,-2470.5 232,-2470.5 232,-2553.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-2549.5 4,-2549.5 4,-2545.5 0,-2545.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-2478.5 4,-2478.5 4,-2474.5 0,-2474.5 "/>
<text text-anchor="middle" x="116" y="-2538.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4870</text>
<text text-anchor="middle" x="116" y="-2523.3" font-family="Times,serif" font-size="14.00" fill="#000000">feat(net): return peer</text>
<text text-anchor="middle" x="116" y="-2508.3" font-family="Times,serif" font-size="14.00" fill="#000000">metadata from</text>
<text text-anchor="middle" x="116" y="-2493.3" font-family="Times,serif" font-size="14.00" fill="#000000">`connect_isolated`</text>
<text text-anchor="middle" x="116" y="-2478.3" font-family="Times,serif" font-size="14.00" fill="#000000">functions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4806 -->
<g id="node39" class="node open">
<title>ZcashFoundation/zebra#4806</title>
<g id="a_node39"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4806" xlink:title="ZcashFoundation/zebra#4806&#10;fix(rpc): Isolate RPC&#10;queries from the rest of&#10;Zebra, to improve&#10;performance" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-2654.5 0,-2654.5 0,-2650.5 -4,-2650.5 -4,-2646.5 0,-2646.5 0,-2579.5 -4,-2579.5 -4,-2575.5 0,-2575.5 0,-2571.5 232,-2571.5 232,-2654.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-2650.5 4,-2650.5 4,-2646.5 0,-2646.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-2579.5 4,-2579.5 4,-2575.5 0,-2575.5 "/>
<text text-anchor="middle" x="116" y="-2639.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4806</text>
<text text-anchor="middle" x="116" y="-2624.3" font-family="Times,serif" font-size="14.00" fill="#000000">fix(rpc): Isolate RPC</text>
<text text-anchor="middle" x="116" y="-2609.3" font-family="Times,serif" font-size="14.00" fill="#000000">queries from the rest of</text>
<text text-anchor="middle" x="116" y="-2594.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra, to improve</text>
<text text-anchor="middle" x="116" y="-2579.3" font-family="Times,serif" font-size="14.00" fill="#000000">performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4721 -->
<g id="node40" class="node open">
<title>ZcashFoundation/zebra#4721</title>
<g id="a_node40"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/4721" xlink:title="ZcashFoundation/zebra#4721&#10;feat(state): Send&#10;treestate from non&#45;&#10;finalized state to&#10;finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-2755.5 0,-2755.5 0,-2751.5 -4,-2751.5 -4,-2747.5 0,-2747.5 0,-2680.5 -4,-2680.5 -4,-2676.5 0,-2676.5 0,-2672.5 232,-2672.5 232,-2755.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-2751.5 4,-2751.5 4,-2747.5 0,-2747.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-2680.5 4,-2680.5 4,-2676.5 0,-2676.5 "/>
<text text-anchor="middle" x="116" y="-2740.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4721</text>
<text text-anchor="middle" x="116" y="-2725.3" font-family="Times,serif" font-size="14.00" fill="#000000">feat(state): Send</text>
<text text-anchor="middle" x="116" y="-2710.3" font-family="Times,serif" font-size="14.00" fill="#000000">treestate from non&#45;</text>
<text text-anchor="middle" x="116" y="-2695.3" font-family="Times,serif" font-size="14.00" fill="#000000">finalized state to</text>
<text text-anchor="middle" x="116" y="-2680.3" font-family="Times,serif" font-size="14.00" fill="#000000">finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4784 -->
<g id="node41" class="node closed">
<title>ZcashFoundation/zebra#4784</title>
<g id="a_node41"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4784" xlink:title="ZcashFoundation/zebra#4784&#10;Store only the first tree&#10;state in each identical&#10;series of tree states" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="520,-2791 288,-2791 288,-2723 520,-2723 520,-2791"/>
<text text-anchor="middle" x="404" y="-2775.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4784</text>
<text text-anchor="middle" x="404" y="-2760.8" font-family="Times,serif" font-size="14.00" fill="#000000">Store only the first tree</text>
<text text-anchor="middle" x="404" y="-2745.8" font-family="Times,serif" font-size="14.00" fill="#000000">state in each identical</text>
<text text-anchor="middle" x="404" y="-2730.8" font-family="Times,serif" font-size="14.00" fill="#000000">series of tree states</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4721&#45;&gt;ZcashFoundation/zebra#4784 -->
<g id="edge19" class="edge">
<title>ZcashFoundation/zebra#4721&#45;&gt;ZcashFoundation/zebra#4784</title>
<path fill="none" stroke="#000000" d="M232.31,-2731.4C247.29,-2733.6 262.69,-2735.9 277.83,-2738.2"/>
<polygon fill="#000000" stroke="#000000" points="277.3281,-2741.6638 287.72,-2739.6 278.3093,-2734.7329 277.3281,-2741.6638"/>
</g>
<!-- ZcashFoundation/zebra#4823 -->
<g id="node42" class="node closed">
<title>ZcashFoundation/zebra#4823</title>
<g id="a_node42"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/4823" xlink:title="ZcashFoundation/zebra#4823&#10;Find out which parts of C&#10;ommitBlock/CommitFinalize&#10;dBlock are slow" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="520,-2705 288,-2705 288,-2637 520,-2637 520,-2705"/>
<text text-anchor="middle" x="404" y="-2689.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4823</text>
<text text-anchor="middle" x="404" y="-2674.8" font-family="Times,serif" font-size="14.00" fill="#000000">Find out which parts of C</text>
<text text-anchor="middle" x="404" y="-2659.8" font-family="Times,serif" font-size="14.00" fill="#000000">ommitBlock/CommitFinalize</text>
<text text-anchor="middle" x="404" y="-2644.8" font-family="Times,serif" font-size="14.00" fill="#000000">dBlock are slow</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4721&#45;&gt;ZcashFoundation/zebra#4823 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#4721&#45;&gt;ZcashFoundation/zebra#4823</title>
<path fill="none" stroke="#000000" d="M232.31,-2696.6C247.29,-2694.4 262.69,-2692.1 277.83,-2689.8"/>
<polygon fill="#000000" stroke="#000000" points="278.3093,-2693.2671 287.72,-2688.4 277.3281,-2686.3362 278.3093,-2693.2671"/>
</g>
<!-- ZcashFoundation/zebra#4794 -->
<g id="node43" class="node open">
<title>ZcashFoundation/zebra#4794</title>
<g id="a_node43"><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,-2856.5 0,-2856.5 0,-2773.5 232,-2773.5 232,-2856.5"/>
<text text-anchor="middle" x="116" y="-2841.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4794</text>
<text text-anchor="middle" x="116" y="-2826.3" font-family="Times,serif" font-size="14.00" fill="#000000">Revert note commitment</text>
<text text-anchor="middle" x="116" y="-2811.3" font-family="Times,serif" font-size="14.00" fill="#000000">and history trees when</text>
<text text-anchor="middle" x="116" y="-2796.3" font-family="Times,serif" font-size="14.00" fill="#000000">forking non&#45;finalized</text>
<text text-anchor="middle" x="116" y="-2781.3" font-family="Times,serif" font-size="14.00" fill="#000000">chains</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#3096 -->
<g id="node44" class="node open">
<title>ZcashFoundation/zebra#3096</title>
<g id="a_node44"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3096" xlink:title="ZcashFoundation/zebra#3096&#10;Epic: Zebra Release&#10;Candidates" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-2927.5 0,-2927.5 0,-2874.5 232,-2874.5 232,-2927.5"/>
<text text-anchor="middle" x="116" y="-2912.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3096</text>
<text text-anchor="middle" x="116" y="-2897.3" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Zebra Release</text>
<text text-anchor="middle" x="116" y="-2882.3" font-family="Times,serif" font-size="14.00" fill="#000000">Candidates</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4774 -->
<g id="node45" class="node open">
<title>ZcashFoundation/zebra#4774</title>
<g id="a_node45"><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,-2452.5 0,-2452.5 0,-2369.5 232,-2369.5 232,-2452.5"/>
<text text-anchor="middle" x="116" y="-2437.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4774</text>
<text text-anchor="middle" x="116" y="-2422.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="116" y="-2407.3" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="116" y="-2392.3" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Orchard</text>
<text text-anchor="middle" x="116" y="-2377.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#4774&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M232.31,-2394.4C247.15,-2392.3 262.4,-2390.2 277.39,-2388"/>
<polygon fill="#000000" stroke="#000000" points="278.2807,-2391.4114 287.72,-2386.6 277.3405,-2384.4748 278.2807,-2391.4114"/>
</g>
<!-- ZcashFoundation/zebra#4775 -->
<g id="node46" class="node open">
<title>ZcashFoundation/zebra#4775</title>
<g id="a_node46"><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,-2351.5 0,-2351.5 0,-2268.5 232,-2268.5 232,-2351.5"/>
<text text-anchor="middle" x="116" y="-2336.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4775</text>
<text text-anchor="middle" x="116" y="-2321.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add an NU5 block test</text>
<text text-anchor="middle" x="116" y="-2306.3" font-family="Times,serif" font-size="14.00" fill="#000000">vector that contains many</text>
<text text-anchor="middle" x="116" y="-2291.3" font-family="Times,serif" font-size="14.00" fill="#000000">shielded Sapling</text>
<text text-anchor="middle" x="116" y="-2276.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#4775&#45;&gt;ZcashFoundation/zebra#4841</title>
<path fill="none" stroke="#000000" d="M232.31,-2334.2C247.29,-2337.4 262.69,-2340.6 277.83,-2343.7"/>
<polygon fill="#000000" stroke="#000000" points="277.2111,-2347.1465 287.72,-2345.8 278.6651,-2340.2992 277.2111,-2347.1465"/>
</g>
<!-- ZcashFoundation/zebra#5012 -->
<g id="node47" class="node open">
<title>ZcashFoundation/zebra#5012</title>
<g id="a_node47"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/5012" xlink:title="ZcashFoundation/zebra#5012&#10;Run JSON&#45;RPC queries in&#10;multiple threads" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-195.5 288,-195.5 288,-142.5 520,-142.5 520,-195.5"/>
<text text-anchor="middle" x="404" y="-180.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#5012</text>
<text text-anchor="middle" x="404" y="-165.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run JSON&#45;RPC queries in</text>
<text text-anchor="middle" x="404" y="-150.3" font-family="Times,serif" font-size="14.00" fill="#000000">multiple threads</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#5012&#45;&gt;ZcashFoundation/zebra#3050 -->
<g id="edge23" class="edge">
<title>ZcashFoundation/zebra#5012&#45;&gt;ZcashFoundation/zebra#3050</title>
<path fill="none" stroke="#000000" d="M520.28,-184.6C530.66,-189.77 540.18,-196.44 548,-205 609.39,-272.23 673.52,-929.82 688.66,-1094"/>
<polygon fill="#000000" stroke="#000000" points="685.1877,-1094.4631 689.59,-1104.1 692.1583,-1093.8212 685.1877,-1094.4631"/>
</g>
<!-- ZcashFoundation/zebra#5012&#45;&gt;ZcashFoundation/zebra#5011 -->
<g id="edge24" class="edge">
<title>ZcashFoundation/zebra#5012&#45;&gt;ZcashFoundation/zebra#5011</title>
<path fill="none" stroke="#000000" d="M520.31,-186.77C535.29,-189.06 550.69,-191.41 565.83,-193.72"/>
<polygon fill="#000000" stroke="#000000" points="565.3043,-197.1802 575.72,-195.24 566.3678,-190.2615 565.3043,-197.1802"/>
</g>
<!-- ZcashFoundation/zebra#4554 -->
<g id="node48" class="node open">
<title>ZcashFoundation/zebra#4554</title>
<g id="a_node48"><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,-3014 0,-3014 0,-2946 232,-2946 232,-3014"/>
<text text-anchor="middle" x="116" y="-2998.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4554</text>
<text text-anchor="middle" x="116" y="-2983.8" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks: surface</text>
<text text-anchor="middle" x="116" y="-2968.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad mainnet sync time</text>
<text text-anchor="middle" x="116" y="-2953.8" font-family="Times,serif" font-size="14.00" fill="#000000">in CI</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4545 -->
<g id="node49" class="node open">
<title>ZcashFoundation/zebra#4545</title>
<g id="a_node49"><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,-3115.5 0,-3115.5 0,-3032.5 232,-3032.5 232,-3115.5"/>
<text text-anchor="middle" x="116" y="-3100.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4545</text>
<text text-anchor="middle" x="116" y="-3085.3" font-family="Times,serif" font-size="14.00" fill="#000000">Start disconnecting from</text>
<text text-anchor="middle" x="116" y="-3070.3" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers before</text>
<text text-anchor="middle" x="116" y="-3055.3" font-family="Times,serif" font-size="14.00" fill="#000000">network upgrade</text>
<text text-anchor="middle" x="116" y="-3040.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4226 -->
<g id="node50" class="node closed">
<title>ZcashFoundation/zebra#4226</title>
<g id="a_node50"><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="520,-3108 288,-3108 288,-3040 520,-3040 520,-3108"/>
<text text-anchor="middle" x="404" y="-3092.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#4226</text>
<text text-anchor="middle" x="404" y="-3077.8" font-family="Times,serif" font-size="14.00" fill="#000000">Prefer faster peers, but</text>
<text text-anchor="middle" x="404" y="-3062.8" font-family="Times,serif" font-size="14.00" fill="#000000">if all peers are slow,</text>
<text text-anchor="middle" x="404" y="-3047.8" font-family="Times,serif" font-size="14.00" fill="#000000">still connect to them</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226 -->
<g id="edge25" class="edge">
<title>ZcashFoundation/zebra#4545&#45;&gt;ZcashFoundation/zebra#4226</title>
<path fill="none" stroke="#000000" d="M232.31,-3074C247.15,-3074 262.4,-3074 277.39,-3074"/>
<polygon fill="#000000" stroke="#000000" points="277.72,-3077.5001 287.72,-3074 277.72,-3070.5001 277.72,-3077.5001"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>