2021-06-15 09:47:10 -07:00
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
< !DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Pages: 1 -->
2021-06-15 15:48:19 -07:00
<svg width= "1044pt" height= "4268pt"
viewBox="0.00 0.00 1044.00 4267.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 4263.5)" >
<polygon fill= "#ffffff" stroke= "transparent" points= "-4,4 -4,-4263.5 1040,-4263.5 1040,4 -4,4" />
2021-06-15 09:47:10 -07:00
<!-- ZcashFoundation/zebra#1135 -->
<g id= "node1" class= "node" >
<title > ZcashFoundation/zebra#1135</title>
<g id= "a_node1" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1135" xlink:title= "ZcashFoundation/zebra#1135 Refactor Network and NetworkUpgrade enums into structs and a trait" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-68 0,-68 0,0 232,0 232,-68" />
<text text-anchor= "middle" x= "116" y= "-52.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1135</text>
<text text-anchor= "middle" x= "116" y= "-37.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Refactor Network and</text>
<text text-anchor= "middle" x= "116" y= "-22.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > NetworkUpgrade enums into</text>
<text text-anchor= "middle" x= "116" y= "-7.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > structs and a trait</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1011 -->
<g id= "node2" class= "node" >
<title > ZcashFoundation/zebra#1011</title>
<g id= "a_node2" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1011" xlink:title= "ZcashFoundation/zebra#1011 Re-enable the BlockVerifier continuous_ blockchain_test" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-68 268,-68 268,0 500,0 500,-68" />
<text text-anchor= "middle" x= "384" y= "-52.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1011</text>
<text text-anchor= "middle" x= "384" y= "-37.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Re- enable the</text>
<text text-anchor= "middle" x= "384" y= "-22.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > BlockVerifier continuous_</text>
<text text-anchor= "middle" x= "384" y= "-7.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > blockchain_test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1135->ZcashFoundation/zebra#1011 -->
<g id= "edge1" class= "edge" >
<title > ZcashFoundation/zebra#1135- > ZcashFoundation/zebra#1011</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-34C240.71,-34 249.14,-34 257.53,-34" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-37.5001 267.74,-34 257.74,-30.5001 257.74,-37.5001" />
</g>
<!-- ZcashFoundation/zebra#271 -->
<g id= "node3" class= "node" >
<title > ZcashFoundation/zebra#271</title>
<g id= "a_node3" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/271" xlink:title= "ZcashFoundation/zebra#271 Sapling Key Agreement and KDF" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "227.5,-146.5 4.5,-146.5 4.5,-93.5 227.5,-93.5 227.5,-146.5" />
<text text-anchor= "middle" x= "116" y= "-131.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#271</text>
<text text-anchor= "middle" x= "116" y= "-116.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Sapling Key Agreement and</text>
<text text-anchor= "middle" x= "116" y= "-101.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269 -->
<g id= "node4" class= "node" >
<title > ZcashFoundation/zebra#269</title>
<g id= "a_node4" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/269" xlink:title= "ZcashFoundation/zebra#269 Sapling note encryption/decryption implementation." target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "495.5,-154 272.5,-154 272.5,-86 495.5,-86 495.5,-154" />
<text text-anchor= "middle" x= "384" y= "-138.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#269</text>
<text text-anchor= "middle" x= "384" y= "-123.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Sapling note</text>
<text text-anchor= "middle" x= "384" y= "-108.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > encryption/decryption</text>
<text text-anchor= "middle" x= "384" y= "-93.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > implementation.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271->ZcashFoundation/zebra#269 -->
<g id= "edge2" class= "edge" >
<title > ZcashFoundation/zebra#271- > ZcashFoundation/zebra#269</title>
<path fill= "none" stroke= "#000000" d= "M227.72,-120C239.16,-120 250.82,-120 262.36,-120" />
<polygon fill= "#000000" stroke= "#000000" points= "262.47,-123.5001 272.47,-120 262.47,-116.5001 262.47,-123.5001" />
</g>
<!-- ZcashFoundation/zebra#325 -->
<g id= "node5" class= "node" >
<title > ZcashFoundation/zebra#325</title>
<g id= "a_node5" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/325" xlink:title= "ZcashFoundation/zebra#325 Block Chain Scanning" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "227.5,-203 4.5,-203 4.5,-165 227.5,-165 227.5,-203" />
<text text-anchor= "middle" x= "116" y= "-187.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#325</text>
<text text-anchor= "middle" x= "116" y= "-172.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Block Chain Scanning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619 -->
<g id= "node6" class= "node" >
<title > ZcashFoundation/zebra#619</title>
<g id= "a_node6" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/619" xlink:title= "ZcashFoundation/zebra#619 Tracking: sync and validate mainnet" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "227.5,-274.5 4.5,-274.5 4.5,-221.5 227.5,-221.5 227.5,-274.5" />
<text text-anchor= "middle" x= "116" y= "-259.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#619</text>
<text text-anchor= "middle" x= "116" y= "-244.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Tracking: sync and</text>
<text text-anchor= "middle" x= "116" y= "-229.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > validate mainnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#466 -->
<g id= "node7" class= "node" >
<title > ZcashFoundation/zebra#466</title>
<g id= "a_node7" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/466" xlink:title= "ZcashFoundation/zebra#466 Design network integration test framework for Zebra" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "495.5,-282 272.5,-282 272.5,-214 495.5,-214 495.5,-282" />
<text text-anchor= "middle" x= "384" y= "-266.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#466</text>
<text text-anchor= "middle" x= "384" y= "-251.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Design network</text>
<text text-anchor= "middle" x= "384" y= "-236.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > integration test</text>
<text text-anchor= "middle" x= "384" y= "-221.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > framework for Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619->ZcashFoundation/zebra#466 -->
<g id= "edge3" class= "edge" >
<title > ZcashFoundation/zebra#619- > ZcashFoundation/zebra#466</title>
<path fill= "none" stroke= "#000000" d= "M227.72,-248C239.16,-248 250.82,-248 262.36,-248" />
<polygon fill= "#000000" stroke= "#000000" points= "262.47,-251.5001 272.47,-248 262.47,-244.5001 262.47,-251.5001" />
</g>
<!-- ZcashFoundation/zebra#884 -->
<g id= "node8" class= "node" >
<title > ZcashFoundation/zebra#884</title>
<g id= "a_node8" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/884" xlink:title= "ZcashFoundation/zebra#884 Tracking: sync correctness" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "227.5,-353.5 4.5,-353.5 4.5,-300.5 227.5,-300.5 227.5,-353.5" />
<text text-anchor= "middle" x= "116" y= "-338.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#884</text>
<text text-anchor= "middle" x= "116" y= "-323.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Tracking: sync</text>
<text text-anchor= "middle" x= "116" y= "-308.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > correctness</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#899 -->
<g id= "node9" class= "node" >
<title > ZcashFoundation/zebra#899</title>
<g id= "a_node9" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/899" xlink:title= "ZcashFoundation/zebra#899 Retcon new sync logic into RFC1" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "495.5,-353.5 272.5,-353.5 272.5,-300.5 495.5,-300.5 495.5,-353.5" />
<text text-anchor= "middle" x= "384" y= "-338.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#899</text>
<text text-anchor= "middle" x= "384" y= "-323.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Retcon new sync logic</text>
<text text-anchor= "middle" x= "384" y= "-308.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > into RFC1</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#884->ZcashFoundation/zebra#899 -->
<g id= "edge4" class= "edge" >
<title > ZcashFoundation/zebra#884- > ZcashFoundation/zebra#899</title>
<path fill= "none" stroke= "#000000" d= "M227.72,-327C239.16,-327 250.82,-327 262.36,-327" />
<polygon fill= "#000000" stroke= "#000000" points= "262.47,-330.5001 272.47,-327 262.47,-323.5001 262.47,-330.5001" />
</g>
<!-- ZcashFoundation/zebra#919 -->
<g id= "node10" class= "node" >
<title > ZcashFoundation/zebra#919</title>
<g id= "a_node10" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/919" xlink:title= "ZcashFoundation/zebra#919 Rewrite `block::tests::generate` as proptest strategies." target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "227.5,-447 4.5,-447 4.5,-379 227.5,-379 227.5,-447" />
<text text-anchor= "middle" x= "116" y= "-431.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#919</text>
<text text-anchor= "middle" x= "116" y= "-416.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Rewrite</text>
<text text-anchor= "middle" x= "116" y= "-401.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > `block::tests::generate`</text>
<text text-anchor= "middle" x= "116" y= "-386.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > as proptest strategies.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1021 -->
<g id= "node11" class= "node" >
<title > ZcashFoundation/zebra#1021</title>
<g id= "a_node11" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1021" xlink:title= "ZcashFoundation/zebra#1021 Combine proptests and transcripts to perform top-level integration tests" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-454.5 268,-454.5 268,-371.5 500,-371.5 500,-454.5" />
<text text-anchor= "middle" x= "384" y= "-439.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1021</text>
<text text-anchor= "middle" x= "384" y= "-424.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Combine proptests and</text>
<text text-anchor= "middle" x= "384" y= "-409.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > transcripts to perform</text>
<text text-anchor= "middle" x= "384" y= "-394.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > top- level integration</text>
<text text-anchor= "middle" x= "384" y= "-379.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#919->ZcashFoundation/zebra#1021 -->
<g id= "edge5" class= "edge" >
<title > ZcashFoundation/zebra#919- > ZcashFoundation/zebra#1021</title>
<path fill= "none" stroke= "#000000" d= "M227.72,-413C237.52,-413 247.49,-413 257.41,-413" />
<polygon fill= "#000000" stroke= "#000000" points= "257.71,-416.5001 267.71,-413 257.71,-409.5001 257.71,-416.5001" />
</g>
<!-- ZcashFoundation/zebra#889 -->
<g id= "node12" class= "node" >
<title > ZcashFoundation/zebra#889</title>
<g id= "a_node12" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/889" xlink:title= "ZcashFoundation/zebra#889 Tracking: inbound message handling." target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "495.5,-761.5 272.5,-761.5 272.5,-708.5 495.5,-708.5 495.5,-761.5" />
<text text-anchor= "middle" x= "384" y= "-746.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#889</text>
<text text-anchor= "middle" x= "384" y= "-731.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Tracking: inbound message</text>
<text text-anchor= "middle" x= "384" y= "-716.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > handling.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1077 -->
<g id= "node13" class= "node" >
<title > ZcashFoundation/zebra#1077</title>
<g id= "a_node13" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1077" xlink:title= "ZcashFoundation/zebra#1077 Handle TransactionsByHash in the Inbound service" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-761.5 536,-761.5 536,-708.5 768,-708.5 768,-761.5" />
<text text-anchor= "middle" x= "652" y= "-746.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1077</text>
<text text-anchor= "middle" x= "652" y= "-731.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Handle TransactionsByHash</text>
<text text-anchor= "middle" x= "652" y= "-716.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > in the Inbound service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#889->ZcashFoundation/zebra#1077 -->
<g id= "edge6" class= "edge" >
<title > ZcashFoundation/zebra#889- > ZcashFoundation/zebra#1077</title>
<path fill= "none" stroke= "#000000" d= "M495.72,-735C505.52,-735 515.49,-735 525.41,-735" />
<polygon fill= "#000000" stroke= "#000000" points= "525.71,-738.5001 535.71,-735 525.71,-731.5001 525.71,-738.5001" />
</g>
<!-- ZcashFoundation/zebra#1048 -->
<g id= "node14" class= "node" >
<title > ZcashFoundation/zebra#1048</title>
<g id= "a_node14" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1048" xlink:title= "ZcashFoundation/zebra#1048 Test translation for zebra-network::{Request, Response} protocol" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-769 0,-769 0,-701 232,-701 232,-769" />
<text text-anchor= "middle" x= "116" y= "-753.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1048</text>
<text text-anchor= "middle" x= "116" y= "-738.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Test translation for</text>
<text text-anchor= "middle" x= "116" y= "-723.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > zebra- network::{Request,</text>
<text text-anchor= "middle" x= "116" y= "-708.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Response} protocol</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1048->ZcashFoundation/zebra#889 -->
<g id= "edge7" class= "edge" >
<title > ZcashFoundation/zebra#1048- > ZcashFoundation/zebra#889</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-735C242.23,-735 252.22,-735 262.11,-735" />
<polygon fill= "#000000" stroke= "#000000" points= "262.39,-738.5001 272.39,-735 262.39,-731.5001 262.39,-738.5001" />
</g>
<!-- ZcashFoundation/zebra#1080 -->
<g id= "node15" class= "node" >
<title > ZcashFoundation/zebra#1080</title>
<g id= "a_node15" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1080" xlink:title= "ZcashFoundation/zebra#1080 Handle `PushTransaction` in the Inbound service." target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-690.5 536,-690.5 536,-637.5 768,-637.5 768,-690.5" />
<text text-anchor= "middle" x= "652" y= "-675.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1080</text>
<text text-anchor= "middle" x= "652" y= "-660.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Handle `PushTransaction`</text>
<text text-anchor= "middle" x= "652" y= "-645.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > in the Inbound service.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1081 -->
<g id= "node16" class= "node" >
<title > ZcashFoundation/zebra#1081</title>
<g id= "a_node16" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1081" xlink:title= "ZcashFoundation/zebra#1081 Handle `AdvertiseTransaction` in the Inbound service." target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-619 536,-619 536,-551 768,-551 768,-619" />
<text text-anchor= "middle" x= "652" y= "-603.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1081</text>
<text text-anchor= "middle" x= "652" y= "-588.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Handle</text>
<text text-anchor= "middle" x= "652" y= "-573.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > `AdvertiseTransaction` in</text>
<text text-anchor= "middle" x= "652" y= "-558.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > the Inbound service.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320 -->
<g id= "node17" class= "node" >
<title > ZcashFoundation/zebra#1320</title>
<g id= "a_node17" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1320" xlink:title= "ZcashFoundation/zebra#1320 Add sprout and sapling and orchard anchors to `zebra-state`" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-1106 268,-1106 268,-1038 500,-1038 500,-1106" />
<text text-anchor= "middle" x= "384" y= "-1090.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1320</text>
<text text-anchor= "middle" x= "384" y= "-1075.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Add sprout and sapling</text>
<text text-anchor= "middle" x= "384" y= "-1060.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > and orchard anchors to</text>
<text text-anchor= "middle" x= "384" y= "-1045.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > `zebra- state`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1486 -->
<g id= "node18" class= "node" >
<title > ZcashFoundation/zebra#1486</title>
<g id= "a_node18" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1486" xlink:title= "ZcashFoundation/zebra#1486 Tune RocksDB memory usage" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-1160 536,-1160 536,-1122 768,-1122 768,-1160" />
<text text-anchor= "middle" x= "652" y= "-1144.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1486</text>
<text text-anchor= "middle" x= "652" y= "-1129.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Tune RocksDB memory usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320->ZcashFoundation/zebra#1486 -->
<g id= "edge8" class= "edge" >
<title > ZcashFoundation/zebra#1320- > ZcashFoundation/zebra#1486</title>
<path fill= "none" stroke= "#000000" d= "M500.38,-1102C523.16,-1107.8 546.64,-1113.9 568.11,-1119.4" />
<polygon fill= "#000000" stroke= "#000000" points= "567.2733,-1122.7987 577.83,-1121.9 569.0171,-1116.0193 567.2733,-1122.7987" />
</g>
<!-- ZcashFoundation/zebra#1400 -->
<g id= "node19" class= "node" >
<title > ZcashFoundation/zebra#1400</title>
<g id= "a_node19" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1400" xlink:title= "ZcashFoundation/zebra#1400 Test that zcashd and Zebra can sync from Zebra" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-1137.5 0,-1137.5 0,-1084.5 232,-1084.5 232,-1137.5" />
<text text-anchor= "middle" x= "116" y= "-1122.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1400</text>
<text text-anchor= "middle" x= "116" y= "-1107.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Test that zcashd and</text>
<text text-anchor= "middle" x= "116" y= "-1092.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Zebra can sync from Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287 -->
<g id= "node20" class= "node" >
<title > ZcashFoundation/zebra#1287</title>
<g id= "a_node20" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1287" xlink:title= "ZcashFoundation/zebra#1287 Implement incremental, sparse note commitment trees for Sapling, Sprout and Orchard" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-996.5 0,-996.5 0,-913.5 232,-913.5 232,-996.5" />
<text text-anchor= "middle" x= "116" y= "-981.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1287</text>
<text text-anchor= "middle" x= "116" y= "-966.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Implement incremental,</text>
<text text-anchor= "middle" x= "116" y= "-951.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > sparse note commitment</text>
<text text-anchor= "middle" x= "116" y= "-936.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > trees for Sapling, Sprout</text>
<text text-anchor= "middle" x= "116" y= "-921.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > and Orchard</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287->ZcashFoundation/zebra#1320 -->
<g id= "edge9" class= "edge" >
<title > ZcashFoundation/zebra#1287- > ZcashFoundation/zebra#1320</title>
<path fill= "none" stroke= "#000000" d= "M206.2,-996.55C226.47,-1005.7 247.93,-1015.3 268,-1024 275.62,-1027.3 283.54,-1030.7 291.5,-1034.1" />
<polygon fill= "#000000" stroke= "#000000" points= "290.2733,-1037.3805 300.85,-1038 292.9681,-1030.92 290.2733,-1037.3805" />
</g>
<!-- ZcashFoundation/zebra#2092 -->
<g id= "node21" class= "node" >
<title > ZcashFoundation/zebra#2092</title>
<g id= "a_node21" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2092" xlink:title= "ZcashFoundation/zebra#2092 Implement Block Header FinalSaplingRoot" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-981.5 268,-981.5 268,-928.5 500,-928.5 500,-981.5" />
<text text-anchor= "middle" x= "384" y= "-966.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2092</text>
<text text-anchor= "middle" x= "384" y= "-951.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Implement Block Header</text>
<text text-anchor= "middle" x= "384" y= "-936.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > FinalSaplingRoot</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287->ZcashFoundation/zebra#2092 -->
<g id= "edge10" class= "edge" >
<title > ZcashFoundation/zebra#1287- > ZcashFoundation/zebra#2092</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-955C240.71,-955 249.14,-955 257.53,-955" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-958.5001 267.74,-955 257.74,-951.5001 257.74,-958.5001" />
</g>
<!-- ZcashFoundation/zebra#2134 -->
<g id= "node22" class= "node" >
<title > ZcashFoundation/zebra#2134</title>
<g id= "a_node22" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2134" xlink:title= "ZcashFoundation/zebra#2134 ZIP-221: Validate chain history commitments in the finalized state" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-848 536,-848 536,-780 768,-780 768,-848" />
<text text-anchor= "middle" x= "652" y= "-832.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2134</text>
<text text-anchor= "middle" x= "652" y= "-817.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 221: Validate chain</text>
<text text-anchor= "middle" x= "652" y= "-802.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > history commitments in</text>
<text text-anchor= "middle" x= "652" y= "-787.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > the finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287->ZcashFoundation/zebra#2134 -->
<g id= "edge11" class= "edge" >
<title > ZcashFoundation/zebra#1287- > ZcashFoundation/zebra#2134</title>
<path fill= "none" stroke= "#000000" d= "M153.76,-913.21C182.11,-884.98 223.55,-849.88 268,-833 349.82,-801.93 448.55,-797.71 525.42,-800.97" />
<polygon fill= "#000000" stroke= "#000000" points= "525.4737,-804.4765 535.63,-801.46 525.8093,-797.4846 525.4737,-804.4765" />
</g>
<!-- ZcashFoundation/zebra#2135 -->
<g id= "node23" class= "node" >
<title > ZcashFoundation/zebra#2135</title>
<g id= "a_node23" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2135" xlink:title= "ZcashFoundation/zebra#2135 ZIP-221: Validate chain history commitments in the non-finalized state" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-972 536,-972 536,-904 768,-904 768,-972" />
<text text-anchor= "middle" x= "652" y= "-956.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2135</text>
<text text-anchor= "middle" x= "652" y= "-941.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 221: Validate chain</text>
<text text-anchor= "middle" x= "652" y= "-926.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > history commitments in</text>
<text text-anchor= "middle" x= "652" y= "-911.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > the non- finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287->ZcashFoundation/zebra#2135 -->
<g id= "edge12" class= "edge" >
<title > ZcashFoundation/zebra#1287- > ZcashFoundation/zebra#2135</title>
<path fill= "none" stroke= "#000000" d= "M232.13,-984.56C244.18,-986.78 256.3,-988.67 268,-990 370.45,-1001.6 398.29,-1006.9 500,-990 519.42,-986.77 539.68,-981.37 558.85,-975.24" />
<polygon fill= "#000000" stroke= "#000000" points= "560.0537,-978.5286 568.46,-972.08 557.8671,-971.8789 560.0537,-978.5286" />
</g>
<!-- ZcashFoundation/zebra#2132 -->
<g id= "node24" class= "node" >
<title > ZcashFoundation/zebra#2132</title>
<g id= "a_node24" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2132" xlink:title= "ZcashFoundation/zebra#2132 ZIP-221: Integrate history merkle mountain range from librustzcash" target= "_blank" >
<polygon fill= "#fad8c7" stroke= "#000000" points= "500,-910 268,-910 268,-842 500,-842 500,-910" />
<text text-anchor= "middle" x= "384" y= "-894.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2132</text>
<text text-anchor= "middle" x= "384" y= "-879.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 221: Integrate</text>
<text text-anchor= "middle" x= "384" y= "-864.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > history merkle mountain</text>
<text text-anchor= "middle" x= "384" y= "-849.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > range from librustzcash</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287->ZcashFoundation/zebra#2132 -->
<g id= "edge13" class= "edge" >
<title > ZcashFoundation/zebra#1287- > ZcashFoundation/zebra#2132</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-920.69C241.2,-918.09 250.12,-915.47 258.99,-912.85" />
<polygon fill= "#000000" stroke= "#000000" points= "259.9795,-916.2073 268.58,-910.02 257.9983,-909.4935 259.9795,-916.2073" />
</g>
<!-- ZcashFoundation/zebra#2048 -->
<g id= "node25" class= "node" >
<title > ZcashFoundation/zebra#2048</title>
<g id= "a_node25" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2048" xlink:title= "ZcashFoundation/zebra#2048 ZIP-244: Implement transaction authorization hashes" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "1036,-910 804,-910 804,-842 1036,-842 1036,-910" />
<text text-anchor= "middle" x= "920" y= "-894.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2048</text>
<text text-anchor= "middle" x= "920" y= "-879.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 244: Implement</text>
<text text-anchor= "middle" x= "920" y= "-864.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > transaction authorization</text>
<text text-anchor= "middle" x= "920" y= "-849.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > hashes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2134->ZcashFoundation/zebra#2048 -->
<g id= "edge14" class= "edge" >
<title > ZcashFoundation/zebra#2134- > ZcashFoundation/zebra#2048</title>
<path fill= "none" stroke= "#000000" d= "M768.38,-840.92C776.81,-842.87 785.33,-844.84 793.81,-846.81" />
<polygon fill= "#000000" stroke= "#000000" points= "793.2092,-850.2632 803.74,-849.1 794.7823,-843.4423 793.2092,-850.2632" />
</g>
<!-- ZcashFoundation/zebra#2135->ZcashFoundation/zebra#2048 -->
<g id= "edge15" class= "edge" >
<title > ZcashFoundation/zebra#2135- > ZcashFoundation/zebra#2048</title>
<path fill= "none" stroke= "#000000" d= "M768.38,-911.08C776.81,-909.13 785.33,-907.16 793.81,-905.19" />
<polygon fill= "#000000" stroke= "#000000" points= "794.7823,-908.5577 803.74,-902.9 793.2092,-901.7368 794.7823,-908.5577" />
</g>
<!-- ZcashFoundation/zebra#2132->ZcashFoundation/zebra#2134 -->
<g id= "edge16" class= "edge" >
<title > ZcashFoundation/zebra#2132- > ZcashFoundation/zebra#2134</title>
<path fill= "none" stroke= "#000000" d= "M500.38,-849.08C508.81,-847.13 517.33,-845.16 525.81,-843.19" />
<polygon fill= "#000000" stroke= "#000000" points= "526.7823,-846.5577 535.74,-840.9 525.2092,-839.7368 526.7823,-846.5577" />
</g>
<!-- ZcashFoundation/zebra#2132->ZcashFoundation/zebra#2135 -->
<g id= "edge17" class= "edge" >
<title > ZcashFoundation/zebra#2132- > ZcashFoundation/zebra#2135</title>
<path fill= "none" stroke= "#000000" d= "M500.38,-902.92C508.81,-904.87 517.33,-906.84 525.81,-908.81" />
<polygon fill= "#000000" stroke= "#000000" points= "525.2092,-912.2632 535.74,-911.1 526.7823,-905.4423 525.2092,-912.2632" />
</g>
<!-- ZcashFoundation/zebra#2132->ZcashFoundation/zebra#2048 -->
<g id= "edge18" class= "edge" >
<title > ZcashFoundation/zebra#2132- > ZcashFoundation/zebra#2048</title>
<path fill= "none" stroke= "#000000" d= "M500.3,-876C586.87,-876 704.93,-876 793.78,-876" />
<polygon fill= "#000000" stroke= "#000000" points= "793.92,-879.5001 803.92,-876 793.92,-872.5001 793.92,-879.5001" />
</g>
<!-- ZcashFoundation/zebra#1311 -->
<g id= "node26" class= "node" >
<title > ZcashFoundation/zebra#1311</title>
<g id= "a_node26" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1311" xlink:title= "ZcashFoundation/zebra#1311 Create function for post- blossom height adjustments" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-1275 0,-1275 0,-1207 232,-1207 232,-1275" />
<text text-anchor= "middle" x= "116" y= "-1259.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1311</text>
<text text-anchor= "middle" x= "116" y= "-1244.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Create function for post- </text>
<text text-anchor= "middle" x= "116" y= "-1229.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > blossom height</text>
<text text-anchor= "middle" x= "116" y= "-1214.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > adjustments</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1170 -->
<g id= "node27" class= "node" >
<title > ZcashFoundation/zebra#1170</title>
<g id= "a_node27" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/1170" xlink:title= "ZcashFoundation/zebra#1170 Calculate and validate founders reward addresses" target= "_blank" >
<polygon fill= "#fad8c7" stroke= "#000000" points= "500,-1267.5 268,-1267.5 268,-1263.5 264,-1263.5 264,-1259.5 268,-1259.5 268,-1222.5 264,-1222.5 264,-1218.5 268,-1218.5 268,-1214.5 500,-1214.5 500,-1267.5" />
<polyline fill= "none" stroke= "#000000" points= "268,-1263.5 272,-1263.5 272,-1259.5 268,-1259.5 " />
<polyline fill= "none" stroke= "#000000" points= "268,-1222.5 272,-1222.5 272,-1218.5 268,-1218.5 " />
<text text-anchor= "middle" x= "384" y= "-1252.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1170</text>
<text text-anchor= "middle" x= "384" y= "-1237.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Calculate and validate</text>
<text text-anchor= "middle" x= "384" y= "-1222.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > founders reward addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1311->ZcashFoundation/zebra#1170 -->
<g id= "edge19" class= "edge" >
<title > ZcashFoundation/zebra#1311- > ZcashFoundation/zebra#1170</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-1241C240.71,-1241 249.14,-1241 257.53,-1241" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-1244.5001 267.74,-1241 257.74,-1237.5001 257.74,-1244.5001" />
</g>
<!-- ZcashFoundation/zebra#936 -->
<g id= "node28" class= "node" >
<title > ZcashFoundation/zebra#936</title>
<g id= "a_node28" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/936" xlink:title= "ZcashFoundation/zebra#936 Design: mempool transaction handling" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "495.5,-525.5 272.5,-525.5 272.5,-472.5 495.5,-472.5 495.5,-525.5" />
<text text-anchor= "middle" x= "384" y= "-510.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#936</text>
<text text-anchor= "middle" x= "384" y= "-495.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Design: mempool</text>
<text text-anchor= "middle" x= "384" y= "-480.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > transaction handling</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936->ZcashFoundation/zebra#1077 -->
<g id= "edge20" class= "edge" >
<title > ZcashFoundation/zebra#936- > ZcashFoundation/zebra#1077</title>
<path fill= "none" stroke= "#000000" d= "M397.16,-525.59C419.69,-568.43 469.73,-652.59 536,-699 538.15,-700.51 540.37,-701.95 542.65,-703.34" />
<polygon fill= "#000000" stroke= "#000000" points= "541.2286,-706.5562 551.66,-708.41 544.6614,-700.4557 541.2286,-706.5562" />
</g>
<!-- ZcashFoundation/zebra#936->ZcashFoundation/zebra#1080 -->
<g id= "edge21" class= "edge" >
<title > ZcashFoundation/zebra#936- > ZcashFoundation/zebra#1080</title>
<path fill= "none" stroke= "#000000" d= "M408.73,-525.63C436.98,-554.59 485.79,-600.42 536,-628 539.29,-629.81 542.68,-631.54 546.15,-633.19" />
<polygon fill= "#000000" stroke= "#000000" points= "544.9158,-636.473 555.47,-637.4 547.7975,-630.0936 544.9158,-636.473" />
</g>
<!-- ZcashFoundation/zebra#936->ZcashFoundation/zebra#1081 -->
<g id= "edge22" class= "edge" >
<title > ZcashFoundation/zebra#936- > ZcashFoundation/zebra#1081</title>
<path fill= "none" stroke= "#000000" d= "M466.6,-525.5C488.63,-532.57 512.85,-540.35 536.3,-547.87" />
<polygon fill= "#000000" stroke= "#000000" points= "535.3587,-551.2437 545.95,-550.97 537.4997,-544.5792 535.3587,-551.2437" />
</g>
<!-- ZcashFoundation/zebra#1083 -->
<g id= "node29" class= "node" >
<title > ZcashFoundation/zebra#1083</title>
<g id= "a_node29" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1083" xlink:title= "ZcashFoundation/zebra#1083 Handle `MempoolTransactions` in the Inbound service" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-533 536,-533 536,-465 768,-465 768,-533" />
<text text-anchor= "middle" x= "652" y= "-517.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1083</text>
<text text-anchor= "middle" x= "652" y= "-502.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Handle</text>
<text text-anchor= "middle" x= "652" y= "-487.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > `MempoolTransactions` in</text>
<text text-anchor= "middle" x= "652" y= "-472.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > the Inbound service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936->ZcashFoundation/zebra#1083 -->
<g id= "edge23" class= "edge" >
<title > ZcashFoundation/zebra#936- > ZcashFoundation/zebra#1083</title>
<path fill= "none" stroke= "#000000" d= "M495.72,-499C505.52,-499 515.49,-499 525.41,-499" />
<polygon fill= "#000000" stroke= "#000000" points= "525.71,-502.5001 535.71,-499 525.71,-495.5001 525.71,-502.5001" />
</g>
<!-- ZcashFoundation/zebra#571 -->
<g id= "node30" class= "node" >
<title > ZcashFoundation/zebra#571</title>
<g id= "a_node30" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/571" xlink:title= "ZcashFoundation/zebra#571 Create large transaction test cases for mempool testing" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "763.5,-447 540.5,-447 540.5,-379 763.5,-379 763.5,-447" />
<text text-anchor= "middle" x= "652" y= "-431.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#571</text>
<text text-anchor= "middle" x= "652" y= "-416.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Create large transaction</text>
<text text-anchor= "middle" x= "652" y= "-401.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > test cases for mempool</text>
<text text-anchor= "middle" x= "652" y= "-386.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > testing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936->ZcashFoundation/zebra#571 -->
<g id= "edge24" class= "edge" >
<title > ZcashFoundation/zebra#936- > ZcashFoundation/zebra#571</title>
<path fill= "none" stroke= "#000000" d= "M470.2,-472.43C480.26,-469.27 490.36,-466.08 500,-463 512.78,-458.92 526.14,-454.59 539.41,-450.27" />
<polygon fill= "#000000" stroke= "#000000" points= "540.6317,-453.553 549.05,-447.12 538.4575,-446.8992 540.6317,-453.553" />
</g>
<!-- ZcashFoundation/zebra#484 -->
<g id= "node31" class= "node" >
<title > ZcashFoundation/zebra#484</title>
<g id= "a_node31" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/484" xlink:title= "ZcashFoundation/zebra#484 Limit transaction size in the mempool" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "763.5,-360.5 540.5,-360.5 540.5,-307.5 763.5,-307.5 763.5,-360.5" />
<text text-anchor= "middle" x= "652" y= "-345.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#484</text>
<text text-anchor= "middle" x= "652" y= "-330.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Limit transaction size in</text>
<text text-anchor= "middle" x= "652" y= "-315.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > the mempool</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936->ZcashFoundation/zebra#484 -->
<g id= "edge25" class= "edge" >
<title > ZcashFoundation/zebra#936- > ZcashFoundation/zebra#484</title>
<path fill= "none" stroke= "#000000" d= "M488.02,-472.4C492.28,-469.58 496.3,-466.45 500,-463 532.39,-432.75 503.61,-400.25 536,-370 537.27,-368.81 538.58,-367.66 539.93,-366.55" />
<polygon fill= "#000000" stroke= "#000000" points= "542.0186,-369.3586 547.98,-360.6 537.8578,-363.7293 542.0186,-369.3586" />
</g>
<!-- ZcashFoundation/zebra#1683 -->
<g id= "node32" class= "node" >
<title > ZcashFoundation/zebra#1683</title>
<g id= "a_node32" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1683" xlink:title= "ZcashFoundation/zebra#1683 Verify mempool transactions using a block height" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-289 536,-289 536,-221 768,-221 768,-289" />
<text text-anchor= "middle" x= "652" y= "-273.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1683</text>
<text text-anchor= "middle" x= "652" y= "-258.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Verify mempool</text>
<text text-anchor= "middle" x= "652" y= "-243.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > transactions using a</text>
<text text-anchor= "middle" x= "652" y= "-228.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > block height</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936->ZcashFoundation/zebra#1683 -->
<g id= "edge26" class= "edge" >
<title > ZcashFoundation/zebra#936- > ZcashFoundation/zebra#1683</title>
<path fill= "none" stroke= "#000000" d= "M489.72,-472.32C493.41,-469.52 496.86,-466.42 500,-463 550.74,-407.69 486.77,-354.66 536,-298 536.42,-297.52 536.84,-297.04 537.27,-296.57" />
<polygon fill= "#000000" stroke= "#000000" points= "539.9345,-298.8626 544.7,-289.4 535.0737,-293.8255 539.9345,-298.8626" />
</g>
<!-- ZcashFoundation/zebra#196 -->
<g id= "node33" class= "node" >
<title > ZcashFoundation/zebra#196</title>
<g id= "a_node33" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/196" xlink:title= "ZcashFoundation/zebra#196 Tracking: transaction validation" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "495.5,-1177.5 272.5,-1177.5 272.5,-1124.5 495.5,-1124.5 495.5,-1177.5" />
<text text-anchor= "middle" x= "384" y= "-1162.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#196</text>
<text text-anchor= "middle" x= "384" y= "-1147.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Tracking: transaction</text>
<text text-anchor= "middle" x= "384" y= "-1132.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > validation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#196->ZcashFoundation/zebra#1486 -->
<g id= "edge27" class= "edge" >
<title > ZcashFoundation/zebra#196- > ZcashFoundation/zebra#1486</title>
<path fill= "none" stroke= "#000000" d= "M495.72,-1146.8C505.52,-1146.5 515.49,-1146.1 525.41,-1145.7" />
<polygon fill= "#000000" stroke= "#000000" points= "525.8534,-1149.1855 535.71,-1145.3 525.5817,-1142.1908 525.8534,-1149.1855" />
</g>
<!-- ZcashFoundation/zebra#1086 -->
<g id= "node34" class= "node" >
<title > ZcashFoundation/zebra#1086</title>
<g id= "a_node34" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1086" xlink:title= "ZcashFoundation/zebra#1086 Remove git dependencies on Hyper, Metrics, Tower, ed25519-zebra, lexical- core" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-1420.5 0,-1420.5 0,-1337.5 232,-1337.5 232,-1420.5" />
<text text-anchor= "middle" x= "116" y= "-1405.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1086</text>
<text text-anchor= "middle" x= "116" y= "-1390.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Remove git dependencies</text>
<text text-anchor= "middle" x= "116" y= "-1375.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > on Hyper, Metrics, Tower,</text>
<text text-anchor= "middle" x= "116" y= "-1360.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ed25519- zebra, lexical- </text>
<text text-anchor= "middle" x= "116" y= "-1345.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > core</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1686 -->
<g id= "node35" class= "node" >
<title > ZcashFoundation/zebra#1686</title>
<g id= "a_node35" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1686" xlink:title= "ZcashFoundation/zebra#1686 Delete isolated::Wrapper" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-1462 268,-1462 268,-1424 500,-1424 500,-1462" />
<text text-anchor= "middle" x= "384" y= "-1446.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1686</text>
<text text-anchor= "middle" x= "384" y= "-1431.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Delete isolated::Wrapper</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086->ZcashFoundation/zebra#1686 -->
<g id= "edge28" class= "edge" >
<title > ZcashFoundation/zebra#1086- > ZcashFoundation/zebra#1686</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-1406.8C253.16,-1411.8 274.53,-1416.9 294.41,-1421.6" />
<polygon fill= "#000000" stroke= "#000000" points= "293.8181,-1425.0575 304.36,-1424 295.4595,-1418.2527 293.8181,-1425.0575" />
</g>
<!-- ZcashFoundation/zebra#2112 -->
<g id= "node36" class= "node" >
<title > ZcashFoundation/zebra#2112</title>
<g id= "a_node36" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2112" xlink:title= "ZcashFoundation/zebra#2112 Integrate TurboWish/tokio-console" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-1405.5 268,-1405.5 268,-1352.5 500,-1352.5 500,-1405.5" />
<text text-anchor= "middle" x= "384" y= "-1390.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2112</text>
<text text-anchor= "middle" x= "384" y= "-1375.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Integrate</text>
<text text-anchor= "middle" x= "384" y= "-1360.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > TurboWish/tokio- console</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086->ZcashFoundation/zebra#2112 -->
<g id= "edge29" class= "edge" >
<title > ZcashFoundation/zebra#1086- > ZcashFoundation/zebra#2112</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-1379C240.71,-1379 249.14,-1379 257.53,-1379" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-1382.5001 267.74,-1379 257.74,-1375.5001 257.74,-1382.5001" />
</g>
<!-- ZcashFoundation/zebra#2200 -->
<g id= "node37" class= "node" >
<title > ZcashFoundation/zebra#2200</title>
<g id= "a_node37" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2200" xlink:title= "ZcashFoundation/zebra#2200 Upgrade to latest tokio" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-1334 268,-1334 268,-1296 500,-1296 500,-1334" />
<text text-anchor= "middle" x= "384" y= "-1318.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2200</text>
<text text-anchor= "middle" x= "384" y= "-1303.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Upgrade to latest tokio</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086->ZcashFoundation/zebra#2200 -->
<g id= "edge30" class= "edge" >
<title > ZcashFoundation/zebra#1086- > ZcashFoundation/zebra#2200</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-1351.2C253.16,-1346.2 274.53,-1341.1 294.41,-1336.4" />
<polygon fill= "#000000" stroke= "#000000" points= "295.4595,-1339.7473 304.36,-1334 293.8181,-1332.9425 295.4595,-1339.7473" />
</g>
<!-- ZcashFoundation/zebra#2202 -->
<g id= "node38" class= "node" >
<title > ZcashFoundation/zebra#2202</title>
<g id= "a_node38" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2202" xlink:title= "ZcashFoundation/zebra#2202 Move batch cryptography flushes to a blocking thread" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-1428 536,-1428 536,-1360 768,-1360 768,-1428" />
<text text-anchor= "middle" x= "652" y= "-1412.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2202</text>
<text text-anchor= "middle" x= "652" y= "-1397.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Move batch cryptography</text>
<text text-anchor= "middle" x= "652" y= "-1382.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > flushes to a blocking</text>
<text text-anchor= "middle" x= "652" y= "-1367.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200->ZcashFoundation/zebra#2202 -->
<g id= "edge31" class= "edge" >
<title > ZcashFoundation/zebra#2200- > ZcashFoundation/zebra#2202</title>
<path fill= "none" stroke= "#000000" d= "M466.61,-1334C477.87,-1336.9 489.25,-1339.9 500,-1343 514.59,-1347.2 529.87,-1351.9 544.87,-1356.8" />
<polygon fill= "#000000" stroke= "#000000" points= "544.0876,-1360.2262 554.68,-1360 546.2584,-1353.5713 544.0876,-1360.2262" />
</g>
<!-- ZcashFoundation/zebra#2201 -->
<g id= "node39" class= "node" >
<title > ZcashFoundation/zebra#2201</title>
<g id= "a_node39" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2201" xlink:title= "ZcashFoundation/zebra#2201 Move the metrics recorder to a blocking thread" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-1341.5 536,-1341.5 536,-1288.5 768,-1288.5 768,-1341.5" />
<text text-anchor= "middle" x= "652" y= "-1326.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2201</text>
<text text-anchor= "middle" x= "652" y= "-1311.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Move the metrics recorder</text>
<text text-anchor= "middle" x= "652" y= "-1296.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > to a blocking thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200->ZcashFoundation/zebra#2201 -->
<g id= "edge32" class= "edge" >
<title > ZcashFoundation/zebra#2200- > ZcashFoundation/zebra#2201</title>
<path fill= "none" stroke= "#000000" d= "M500.38,-1315C508.71,-1315 517.14,-1315 525.53,-1315" />
<polygon fill= "#000000" stroke= "#000000" points= "525.74,-1318.5001 535.74,-1315 525.74,-1311.5001 525.74,-1318.5001" />
</g>
<!-- ZcashFoundation/zebra#2268 -->
<g id= "node40" class= "node" >
<title > ZcashFoundation/zebra#2268</title>
<g id= "a_node40" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2268" xlink:title= "ZcashFoundation/zebra#2268 Replace atomics with watch or oneshot channels" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-1270.5 536,-1270.5 536,-1217.5 768,-1217.5 768,-1270.5" />
<text text-anchor= "middle" x= "652" y= "-1255.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2268</text>
<text text-anchor= "middle" x= "652" y= "-1240.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Replace atomics with</text>
<text text-anchor= "middle" x= "652" y= "-1225.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > watch or oneshot channels</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200->ZcashFoundation/zebra#2268 -->
<g id= "edge33" class= "edge" >
<title > ZcashFoundation/zebra#2200- > ZcashFoundation/zebra#2268</title>
<path fill= "none" stroke= "#000000" d= "M455.82,-1296C482.29,-1289 512.91,-1280.8 541.98,-1273.1" />
<polygon fill= "#000000" stroke= "#000000" points= "542.9469,-1276.4655 551.77,-1270.6 541.2149,-1269.6831 542.9469,-1276.4655" />
</g>
<!-- ZcashFoundation/zebra#950 -->
<g id= "node41" class= "node" >
<title > ZcashFoundation/zebra#950</title>
<g id= "a_node41" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/950" xlink:title= "ZcashFoundation/zebra#950 Demo: compare zcashd vs zebrad ludicrous speed on syncing" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "227.5,-1507 4.5,-1507 4.5,-1439 227.5,-1439 227.5,-1507" />
<text text-anchor= "middle" x= "116" y= "-1491.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#950</text>
<text text-anchor= "middle" x= "116" y= "-1476.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Demo: compare zcashd vs</text>
<text text-anchor= "middle" x= "116" y= "-1461.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > zebrad ludicrous speed on</text>
<text text-anchor= "middle" x= "116" y= "-1446.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > syncing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#692 -->
<g id= "node42" class= "node" >
<title > ZcashFoundation/zebra#692</title>
<g id= "a_node42" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/692" xlink:title= "ZcashFoundation/zebra#692 Use git metadata and platform info in Zebra" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "227.5,-1578.5 4.5,-1578.5 4.5,-1525.5 227.5,-1525.5 227.5,-1578.5" />
<text text-anchor= "middle" x= "116" y= "-1563.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#692</text>
<text text-anchor= "middle" x= "116" y= "-1548.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Use git metadata and</text>
<text text-anchor= "middle" x= "116" y= "-1533.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > platform info in Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1753 -->
<g id= "node43" class= "node" >
<title > ZcashFoundation/zebra#1753</title>
<g id= "a_node43" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1753" xlink:title= "ZcashFoundation/zebra#1753 Re-deploy the Foundation DNS Seeders" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "500,-1762.5 268,-1762.5 268,-1709.5 500,-1709.5 500,-1762.5" />
<text text-anchor= "middle" x= "384" y= "-1747.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1753</text>
<text text-anchor= "middle" x= "384" y= "-1732.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Re- deploy the Foundation</text>
<text text-anchor= "middle" x= "384" y= "-1717.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > DNS Seeders</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1791 -->
<g id= "node44" class= "node" >
<title > ZcashFoundation/zebra#1791</title>
<g id= "a_node44" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1791" xlink:title= "ZcashFoundation/zebra#1791 Re-enable `sync_large_che ckpoints_testnet` test" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-1675.5 536,-1675.5 536,-1622.5 768,-1622.5 768,-1675.5" />
<text text-anchor= "middle" x= "652" y= "-1660.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1791</text>
<text text-anchor= "middle" x= "652" y= "-1645.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Re- enable `sync_large_che</text>
<text text-anchor= "middle" x= "652" y= "-1630.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ckpoints_testnet` test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1753->ZcashFoundation/zebra#1791 -->
<g id= "edge34" class= "edge" >
<title > ZcashFoundation/zebra#1753- > ZcashFoundation/zebra#1791</title>
<path fill= "none" stroke= "#000000" d= "M470.22,-1709.5C480.27,-1706.3 490.37,-1703.1 500,-1700 520.9,-1693.3 543.36,-1685.8 564.43,-1678.8" />
<polygon fill= "#000000" stroke= "#000000" points= "565.6873,-1682.0688 574,-1675.5 563.4053,-1675.4512 565.6873,-1682.0688" />
</g>
<!-- ZcashFoundation/zebra#1007 -->
<g id= "node45" class= "node" >
<title > ZcashFoundation/zebra#1007</title>
<g id= "a_node45" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/1007" xlink:title= "ZcashFoundation/zebra#1007 Draft RFC: Initial draft for basic network integration testing" target= "_blank" >
<polygon fill= "#fad8c7" stroke= "#000000" points= "1036,-1683 804,-1683 804,-1679 800,-1679 800,-1675 804,-1675 804,-1623 800,-1623 800,-1619 804,-1619 804,-1615 1036,-1615 1036,-1683" />
<polyline fill= "none" stroke= "#000000" points= "804,-1679 808,-1679 808,-1675 804,-1675 " />
<polyline fill= "none" stroke= "#000000" points= "804,-1623 808,-1623 808,-1619 804,-1619 " />
<text text-anchor= "middle" x= "920" y= "-1667.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1007</text>
<text text-anchor= "middle" x= "920" y= "-1652.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Draft RFC: Initial draft</text>
<text text-anchor= "middle" x= "920" y= "-1637.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > for basic network</text>
<text text-anchor= "middle" x= "920" y= "-1622.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > integration testing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1791->ZcashFoundation/zebra#1007 -->
<g id= "edge35" class= "edge" >
<title > ZcashFoundation/zebra#1791- > ZcashFoundation/zebra#1007</title>
<path fill= "none" stroke= "#000000" d= "M768.38,-1649C776.71,-1649 785.14,-1649 793.53,-1649" />
<polygon fill= "#000000" stroke= "#000000" points= "793.74,-1652.5001 803.74,-1649 793.74,-1645.5001 793.74,-1652.5001" />
</g>
<!-- ZcashFoundation/zebra#1827 -->
<g id= "node46" class= "node" >
<title > ZcashFoundation/zebra#1827</title>
<g id= "a_node46" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1827" xlink:title= "ZcashFoundation/zebra#1827 Split `WrongVersion` errors into `OutdatedVersion` and `PreActivationVersion`" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-2095.5 0,-2095.5 0,-2012.5 232,-2012.5 232,-2095.5" />
<text text-anchor= "middle" x= "116" y= "-2080.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1827</text>
<text text-anchor= "middle" x= "116" y= "-2065.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Split `WrongVersion`</text>
<text text-anchor= "middle" x= "116" y= "-2050.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > errors into</text>
<text text-anchor= "middle" x= "116" y= "-2035.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > `OutdatedVersion` and</text>
<text text-anchor= "middle" x= "116" y= "-2020.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > `PreActivationVersion`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1828 -->
<g id= "node47" class= "node" >
<title > ZcashFoundation/zebra#1828</title>
<g id= "a_node47" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1828" xlink:title= "ZcashFoundation/zebra#1828 Move duplicate `Transaction` code into methods" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-2228 0,-2228 0,-2160 232,-2160 232,-2228" />
<text text-anchor= "middle" x= "116" y= "-2212.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1828</text>
<text text-anchor= "middle" x= "116" y= "-2197.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Move duplicate</text>
<text text-anchor= "middle" x= "116" y= "-2182.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > `Transaction` code into</text>
<text text-anchor= "middle" x= "116" y= "-2167.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > methods</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1592 -->
<g id= "node48" class= "node" >
<title > ZcashFoundation/zebra#1592</title>
<g id= "a_node48" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1592" xlink:title= "ZcashFoundation/zebra#1592 Write tests for sync hangs" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-2322.5 0,-2322.5 0,-2269.5 232,-2269.5 232,-2322.5" />
<text text-anchor= "middle" x= "116" y= "-2307.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1592</text>
<text text-anchor= "middle" x= "116" y= "-2292.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Write tests for sync</text>
<text text-anchor= "middle" x= "116" y= "-2277.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > hangs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1817 -->
<g id= "node49" class= "node" >
<title > ZcashFoundation/zebra#1817</title>
<g id= "a_node49" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/1817" xlink:title= "ZcashFoundation/zebra#1817 Re-Apply "Refactor `connection.rs` to make `fail_with` errors impossible" (double revert)" target= "_blank" >
<polygon fill= "#fad8c7" stroke= "#000000" points= "500,-2345 268,-2345 268,-2341 264,-2341 264,-2337 268,-2337 268,-2255 264,-2255 264,-2251 268,-2251 268,-2247 500,-2247 500,-2345" />
<polyline fill= "none" stroke= "#000000" points= "268,-2341 272,-2341 272,-2337 268,-2337 " />
<polyline fill= "none" stroke= "#000000" points= "268,-2255 272,-2255 272,-2251 268,-2251 " />
<text text-anchor= "middle" x= "384" y= "-2329.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1817</text>
<text text-anchor= "middle" x= "384" y= "-2314.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Re- Apply " Refactor</text>
<text text-anchor= "middle" x= "384" y= "-2299.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > `connection.rs` to make</text>
<text text-anchor= "middle" x= "384" y= "-2284.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > `fail_with` errors</text>
<text text-anchor= "middle" x= "384" y= "-2269.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > impossible" (double</text>
<text text-anchor= "middle" x= "384" y= "-2254.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > revert)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1592->ZcashFoundation/zebra#1817 -->
<g id= "edge36" class= "edge" >
<title > ZcashFoundation/zebra#1592- > ZcashFoundation/zebra#1817</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-2296C240.71,-2296 249.14,-2296 257.53,-2296" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-2299.5001 267.74,-2296 257.74,-2292.5001 257.74,-2299.5001" />
</g>
<!-- ZcashFoundation/zebra#1841 -->
<g id= "node50" class= "node" >
<title > ZcashFoundation/zebra#1841</title>
<g id= "a_node50" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1841" xlink:title= "ZcashFoundation/zebra#1841 ZIP-252: Update Zebra and DNS Seeders with NU5 activation heights" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-2409 0,-2409 0,-2341 232,-2341 232,-2409" />
<text text-anchor= "middle" x= "116" y= "-2393.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1841</text>
<text text-anchor= "middle" x= "116" y= "-2378.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 252: Update Zebra and</text>
<text text-anchor= "middle" x= "116" y= "-2363.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > DNS Seeders with NU5</text>
<text text-anchor= "middle" x= "116" y= "-2348.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > activation heights</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849 -->
<g id= "node51" class= "node" >
<title > ZcashFoundation/zebra#1849</title>
<g id= "a_node51" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1849" xlink:title= "ZcashFoundation/zebra#1849 Refactor MetaAddr fields to enable security fixes" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-1971.5 0,-1971.5 0,-1918.5 232,-1918.5 232,-1971.5" />
<text text-anchor= "middle" x= "116" y= "-1956.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1849</text>
<text text-anchor= "middle" x= "116" y= "-1941.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Refactor MetaAddr fields</text>
<text text-anchor= "middle" x= "116" y= "-1926.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > to enable security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1848 -->
<g id= "node52" class= "node" >
<title > ZcashFoundation/zebra#1848</title>
<g id= "a_node52" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1848" xlink:title= "ZcashFoundation/zebra#1848 Security: Limit reconnection rate to each individual peer address" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-2127 268,-2127 268,-2059 500,-2059 500,-2127" />
<text text-anchor= "middle" x= "384" y= "-2111.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1848</text>
<text text-anchor= "middle" x= "384" y= "-2096.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Security: Limit</text>
<text text-anchor= "middle" x= "384" y= "-2081.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > reconnection rate to each</text>
<text text-anchor= "middle" x= "384" y= "-2066.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > individual peer address</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849->ZcashFoundation/zebra#1848 -->
<g id= "edge37" class= "edge" >
<title > ZcashFoundation/zebra#1849- > ZcashFoundation/zebra#1848</title>
<path fill= "none" stroke= "#000000" d= "M182.07,-1971.6C199.29,-1980.2 217.16,-1990.7 232,-2003 252.29,-2019.8 246.83,-2034.4 268,-2050 269.62,-2051.2 271.28,-2052.4 272.97,-2053.5" />
<polygon fill= "#000000" stroke= "#000000" points= "271.3102,-2056.5894 281.65,-2058.9 275.0079,-2050.6457 271.3102,-2056.5894" />
</g>
<!-- ZcashFoundation/zebra#1865 -->
<g id= "node53" class= "node" >
<title > ZcashFoundation/zebra#1865</title>
<g id= "a_node53" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1865" xlink:title= "ZcashFoundation/zebra#1865 Security: Running Zebra nodes should eventually stop trying to contact peers that always fail" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-1941.5 536,-1941.5 536,-1858.5 768,-1858.5 768,-1941.5" />
<text text-anchor= "middle" x= "652" y= "-1926.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1865</text>
<text text-anchor= "middle" x= "652" y= "-1911.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Security: Running Zebra</text>
<text text-anchor= "middle" x= "652" y= "-1896.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > nodes should eventually</text>
<text text-anchor= "middle" x= "652" y= "-1881.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > stop trying to contact</text>
<text text-anchor= "middle" x= "652" y= "-1866.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > peers that always fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849->ZcashFoundation/zebra#1865 -->
<g id= "edge38" class= "edge" >
<title > ZcashFoundation/zebra#1849- > ZcashFoundation/zebra#1865</title>
<path fill= "none" stroke= "#000000" d= "M232.17,-1934.2C244.27,-1933.1 256.38,-1932 268,-1931 353.76,-1923.6 450.34,-1915.8 525.19,-1909.9" />
<polygon fill= "#000000" stroke= "#000000" points= "525.8976,-1913.356 535.6,-1909.1 525.3612,-1906.3766 525.8976,-1913.356" />
</g>
<!-- ZcashFoundation/zebra#1867 -->
<g id= "node54" class= "node" >
<title > ZcashFoundation/zebra#1867</title>
<g id= "a_node54" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1867" xlink:title= "ZcashFoundation/zebra#1867 Security: Zebra should stop gossiping unreachable addresses to other nodes, Action: re- deploy all nodes" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-1879 268,-1879 268,-1781 500,-1781 500,-1879" />
<text text-anchor= "middle" x= "384" y= "-1863.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1867</text>
<text text-anchor= "middle" x= "384" y= "-1848.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Security: Zebra should</text>
<text text-anchor= "middle" x= "384" y= "-1833.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > stop gossiping</text>
<text text-anchor= "middle" x= "384" y= "-1818.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > unreachable addresses to</text>
<text text-anchor= "middle" x= "384" y= "-1803.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > other nodes, Action: re- </text>
<text text-anchor= "middle" x= "384" y= "-1788.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > deploy all nodes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849->ZcashFoundation/zebra#1867 -->
<g id= "edge39" class= "edge" >
<title > ZcashFoundation/zebra#1849- > ZcashFoundation/zebra#1867</title>
<path fill= "none" stroke= "#000000" d= "M177.82,-1918.5C202.44,-1907.9 231.69,-1895.4 260.32,-1883.1" />
<polygon fill= "#000000" stroke= "#000000" points= "261.7878,-1886.2786 269.58,-1879.1 259.0119,-1879.8525 261.7878,-1886.2786" />
</g>
<!-- ZcashFoundation/zebra#1868 -->
<g id= "node55" class= "node" >
<title > ZcashFoundation/zebra#1868</title>
<g id= "a_node55" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1868" xlink:title= "ZcashFoundation/zebra#1868 Security: Zebra should stop gossiping failure times as last_seen times" target= "_blank" >
<polygon fill= "#fad8c7" stroke= "#000000" points= "500,-2041 268,-2041 268,-1973 500,-1973 500,-2041" />
<text text-anchor= "middle" x= "384" y= "-2025.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1868</text>
<text text-anchor= "middle" x= "384" y= "-2010.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Security: Zebra should</text>
<text text-anchor= "middle" x= "384" y= "-1995.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > stop gossiping failure</text>
<text text-anchor= "middle" x= "384" y= "-1980.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > times as last_seen times</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849->ZcashFoundation/zebra#1868 -->
<g id= "edge40" class= "edge" >
<title > ZcashFoundation/zebra#1849- > ZcashFoundation/zebra#1868</title>
<path fill= "none" stroke= "#000000" d= "M230.82,-1971.6C239.79,-1973.6 248.88,-1975.7 257.93,-1977.8" />
<polygon fill= "#000000" stroke= "#000000" points= "257.1743,-1981.2177 267.71,-1980.1 258.7768,-1974.4036 257.1743,-1981.2177" />
</g>
<!-- ZcashFoundation/zebra#1873 -->
<g id= "node56" class= "node" >
<title > ZcashFoundation/zebra#1873</title>
<g id= "a_node56" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1873" xlink:title= "ZcashFoundation/zebra#1873 Zebra's address book can use all available memory" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-1691.5 268,-1691.5 268,-1638.5 500,-1638.5 500,-1691.5" />
<text text-anchor= "middle" x= "384" y= "-1676.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1873</text>
<text text-anchor= "middle" x= "384" y= "-1661.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Zebra' s address book can</text>
<text text-anchor= "middle" x= "384" y= "-1646.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > use all available memory</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849->ZcashFoundation/zebra#1873 -->
<g id= "edge41" class= "edge" >
<title > ZcashFoundation/zebra#1849- > ZcashFoundation/zebra#1873</title>
<path fill= "none" stroke= "#000000" d= "M125.16,-1918.5C143.88,-1868.2 191.34,-1758.8 268,-1700 269.38,-1698.9 270.79,-1697.9 272.22,-1696.9" />
<polygon fill= "#000000" stroke= "#000000" points= "274.0976,-1699.854 280.74,-1691.6 270.4001,-1693.9102 274.0976,-1699.854" />
</g>
<!-- ZcashFoundation/zebra#1875 -->
<g id= "node57" class= "node" >
<title > ZcashFoundation/zebra#1875</title>
<g id= "a_node57" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1875" xlink:title= "ZcashFoundation/zebra#1875 Zebra attempts new peer connections in a fixed, predictable order" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-2127 536,-2127 536,-2059 768,-2059 768,-2127" />
<text text-anchor= "middle" x= "652" y= "-2111.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1875</text>
<text text-anchor= "middle" x= "652" y= "-2096.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Zebra attempts new peer</text>
<text text-anchor= "middle" x= "652" y= "-2081.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > connections in a fixed,</text>
<text text-anchor= "middle" x= "652" y= "-2066.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849->ZcashFoundation/zebra#1875 -->
<g id= "edge42" class= "edge" >
<title > ZcashFoundation/zebra#1849- > ZcashFoundation/zebra#1875</title>
<path fill= "none" stroke= "#000000" d= "M232.21,-1942.6C327.13,-1942.2 452.98,-1945.4 500,-1964 546.44,-1982.4 588.81,-2021 616.95,-2051.2" />
<polygon fill= "#000000" stroke= "#000000" points= "614.4654,-2053.6698 623.79,-2058.7 619.6375,-2048.9528 614.4654,-2053.6698" />
</g>
<!-- ZcashFoundation/zebra#1876 -->
<g id= "node58" class= "node" >
<title > ZcashFoundation/zebra#1876</title>
<g id= "a_node58" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1876" xlink:title= "ZcashFoundation/zebra#1876 Security: Retry previously successful peers before peers that have always failed" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-2228.5 268,-2228.5 268,-2145.5 500,-2145.5 500,-2228.5" />
<text text-anchor= "middle" x= "384" y= "-2213.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1876</text>
<text text-anchor= "middle" x= "384" y= "-2198.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Security: Retry</text>
<text text-anchor= "middle" x= "384" y= "-2183.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > previously successful</text>
<text text-anchor= "middle" x= "384" y= "-2168.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > peers before peers that</text>
<text text-anchor= "middle" x= "384" y= "-2153.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > have always failed</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849->ZcashFoundation/zebra#1876 -->
<g id= "edge43" class= "edge" >
<title > ZcashFoundation/zebra#1849- > ZcashFoundation/zebra#1876</title>
<path fill= "none" stroke= "#000000" d= "M192.23,-1971.5C207.11,-1979.7 221.38,-1990 232,-2003 270.78,-2050.4 228.06,-2089.6 268,-2136 268.63,-2136.7 269.27,-2137.4 269.92,-2138.2" />
<polygon fill= "#000000" stroke= "#000000" points= "267.7189,-2140.9415 277.33,-2145.4 272.5971,-2135.9211 267.7189,-2140.9415" />
</g>
<!-- ZcashFoundation/zebra#1848->ZcashFoundation/zebra#1875 -->
<g id= "edge44" class= "edge" >
<title > ZcashFoundation/zebra#1848- > ZcashFoundation/zebra#1875</title>
<path fill= "none" stroke= "#000000" d= "M500.38,-2093C508.71,-2093 517.14,-2093 525.53,-2093" />
<polygon fill= "#000000" stroke= "#000000" points= "525.74,-2096.5001 535.74,-2093 525.74,-2089.5001 525.74,-2096.5001" />
</g>
<!-- ZcashFoundation/zebra#1956 -->
<g id= "node59" class= "node" >
<title > ZcashFoundation/zebra#1956</title>
<g id= "a_node59" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1956" xlink:title= "ZcashFoundation/zebra#1956 Zebra should store a persistent list of recent successful peers" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "1036,-1864 804,-1864 804,-1796 1036,-1796 1036,-1864" />
<text text-anchor= "middle" x= "920" y= "-1848.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1956</text>
<text text-anchor= "middle" x= "920" y= "-1833.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Zebra should store a</text>
<text text-anchor= "middle" x= "920" y= "-1818.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > persistent list of recent</text>
<text text-anchor= "middle" x= "920" y= "-1803.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > successful peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1865->ZcashFoundation/zebra#1956 -->
<g id= "edge45" class= "edge" >
<title > ZcashFoundation/zebra#1865- > ZcashFoundation/zebra#1956</title>
<path fill= "none" stroke= "#000000" d= "M768.38,-1869.6C776.81,-1867.4 785.33,-1865.2 793.81,-1863" />
<polygon fill= "#000000" stroke= "#000000" points= "794.9527,-1866.3189 803.74,-1860.4 793.1795,-1859.5472 794.9527,-1866.3189" />
</g>
<!-- ZcashFoundation/zebra#1867->ZcashFoundation/zebra#1791 -->
<g id= "edge46" class= "edge" >
<title > ZcashFoundation/zebra#1867- > ZcashFoundation/zebra#1791</title>
<path fill= "none" stroke= "#000000" d= "M486.82,-1780.9C491.39,-1777.8 495.81,-1774.4 500,-1771 520.04,-1754.5 516.89,-1742.6 536,-1725 553.83,-1708.6 575.57,-1693.4 595.38,-1680.9" />
<polygon fill= "#000000" stroke= "#000000" points= "597.4007,-1683.7646 604.03,-1675.5 593.6938,-1677.8267 597.4007,-1683.7646" />
</g>
<!-- ZcashFoundation/zebra#1867->ZcashFoundation/zebra#1865 -->
<g id= "edge47" class= "edge" >
<title > ZcashFoundation/zebra#1867- > ZcashFoundation/zebra#1865</title>
<path fill= "none" stroke= "#000000" d= "M500.38,-1860.4C508.81,-1862.6 517.33,-1864.8 525.81,-1867" />
<polygon fill= "#000000" stroke= "#000000" points= "525.1795,-1870.4528 535.74,-1869.6 526.9527,-1863.6811 525.1795,-1870.4528" />
</g>
<!-- ZcashFoundation/zebra#1867->ZcashFoundation/zebra#1956 -->
<g id= "edge48" class= "edge" >
<title > ZcashFoundation/zebra#1867- > ZcashFoundation/zebra#1956</title>
<path fill= "none" stroke= "#000000" d= "M500.3,-1830C586.87,-1830 704.93,-1830 793.78,-1830" />
<polygon fill= "#000000" stroke= "#000000" points= "793.92,-1833.5001 803.92,-1830 793.92,-1826.5001 793.92,-1833.5001" />
</g>
<!-- ZcashFoundation/zebra#1876->ZcashFoundation/zebra#1875 -->
<g id= "edge49" class= "edge" >
<title > ZcashFoundation/zebra#1876- > ZcashFoundation/zebra#1875</title>
<path fill= "none" stroke= "#000000" d= "M500.38,-2146.2C515.33,-2140.9 530.57,-2135.6 545.36,-2130.4" />
<polygon fill= "#000000" stroke= "#000000" points= "546.7257,-2133.6296 554.99,-2127 544.3952,-2127.0289 546.7257,-2133.6296" />
</g>
<!-- ZcashFoundation/zebra#1869 -->
<g id= "node60" class= "node" >
<title > ZcashFoundation/zebra#1869</title>
<g id= "a_node60" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1869" xlink:title= "ZcashFoundation/zebra#1869 Zebra should limit the number of addresses it uses from a single Addrs response" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-1679.5 0,-1679.5 0,-1596.5 232,-1596.5 232,-1679.5" />
<text text-anchor= "middle" x= "116" y= "-1664.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1869</text>
<text text-anchor= "middle" x= "116" y= "-1649.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Zebra should limit the</text>
<text text-anchor= "middle" x= "116" y= "-1634.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > number of addresses it</text>
<text text-anchor= "middle" x= "116" y= "-1619.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > uses from a single Addrs</text>
<text text-anchor= "middle" x= "116" y= "-1604.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > response</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869->ZcashFoundation/zebra#1791 -->
<g id= "edge50" class= "edge" >
<title > ZcashFoundation/zebra#1869- > ZcashFoundation/zebra#1791</title>
<path fill= "none" stroke= "#000000" d= "M232.06,-1629.9C308.29,-1625.9 410.17,-1623.1 500,-1629 508.4,-1629.6 517.04,-1630.3 525.74,-1631.1" />
<polygon fill= "#000000" stroke= "#000000" points= "525.6769,-1634.6104 535.97,-1632.1 526.358,-1627.6436 525.6769,-1634.6104" />
</g>
<!-- ZcashFoundation/zebra#1869->ZcashFoundation/zebra#1873 -->
<g id= "edge51" class= "edge" >
<title > ZcashFoundation/zebra#1869- > ZcashFoundation/zebra#1873</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-1649.7C240.71,-1650.6 249.14,-1651.4 257.53,-1652.3" />
<polygon fill= "#000000" stroke= "#000000" points= "257.4464,-1655.8085 267.74,-1653.3 258.1288,-1648.8418 257.4464,-1655.8085" />
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id= "node61" class= "node" >
<title > ZcashFoundation/zebra#1890</title>
<g id= "a_node61" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1890" xlink:title= "ZcashFoundation/zebra#1890 Zebra should support separate local bind and external advertise addresses" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-2510.5 0,-2510.5 0,-2427.5 232,-2427.5 232,-2510.5" />
<text text-anchor= "middle" x= "116" y= "-2495.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1890</text>
<text text-anchor= "middle" x= "116" y= "-2480.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Zebra should support</text>
<text text-anchor= "middle" x= "116" y= "-2465.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > separate local bind and</text>
<text text-anchor= "middle" x= "116" y= "-2450.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > external advertise</text>
<text text-anchor= "middle" x= "116" y= "-2435.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1893 -->
<g id= "node62" class= "node" >
<title > ZcashFoundation/zebra#1893</title>
<g id= "a_node62" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1893" xlink:title= "ZcashFoundation/zebra#1893 Zebra should auto- discover its own external IP address" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-2503 268,-2503 268,-2435 500,-2435 500,-2503" />
<text text-anchor= "middle" x= "384" y= "-2487.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1893</text>
<text text-anchor= "middle" x= "384" y= "-2472.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Zebra should auto- </text>
<text text-anchor= "middle" x= "384" y= "-2457.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > discover its own external</text>
<text text-anchor= "middle" x= "384" y= "-2442.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > IP address</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1890->ZcashFoundation/zebra#1893 -->
<g id= "edge52" class= "edge" >
<title > ZcashFoundation/zebra#1890- > ZcashFoundation/zebra#1893</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-2469C240.71,-2469 249.14,-2469 257.53,-2469" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-2472.5001 267.74,-2469 257.74,-2465.5001 257.74,-2472.5001" />
</g>
<!-- ZcashFoundation/zebra#1904 -->
<g id= "node63" class= "node" >
<title > ZcashFoundation/zebra#1904</title>
<g id= "a_node63" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1904" xlink:title= "ZcashFoundation/zebra#1904 Testnet DNS seeders don't show the Foundation's new zcashd nodes" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "500,-1582 268,-1582 268,-1514 500,-1514 500,-1582" />
<text text-anchor= "middle" x= "384" y= "-1566.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1904</text>
<text text-anchor= "middle" x= "384" y= "-1551.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Testnet DNS seeders don' t</text>
<text text-anchor= "middle" x= "384" y= "-1536.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > show the Foundation' s new</text>
<text text-anchor= "middle" x= "384" y= "-1521.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > zcashd nodes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1904->ZcashFoundation/zebra#1791 -->
<g id= "edge53" class= "edge" >
<title > ZcashFoundation/zebra#1904- > ZcashFoundation/zebra#1791</title>
<path fill= "none" stroke= "#000000" d= "M474.36,-1582.1C506.03,-1594 541.36,-1607.3 572.11,-1618.9" />
<polygon fill= "#000000" stroke= "#000000" points= "570.9073,-1622.1869 581.5,-1622.4 573.3522,-1615.6277 570.9073,-1622.1869" />
</g>
<!-- ZcashFoundation/zebra#1917 -->
<g id= "node64" class= "node" >
<title > ZcashFoundation/zebra#1917</title>
<g id= "a_node64" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1917" xlink:title= "ZcashFoundation/zebra#1917 Check Transaction cardinality at parse time, to limit memory usage" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-2611.5 0,-2611.5 0,-2528.5 232,-2528.5 232,-2611.5" />
<text text-anchor= "middle" x= "116" y= "-2596.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1917</text>
<text text-anchor= "middle" x= "116" y= "-2581.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Check Transaction</text>
<text text-anchor= "middle" x= "116" y= "-2566.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > cardinality at parse</text>
<text text-anchor= "middle" x= "116" y= "-2551.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > time, to limit memory</text>
<text text-anchor= "middle" x= "116" y= "-2536.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1851 -->
<g id= "node65" class= "node" >
<title > ZcashFoundation/zebra#1851</title>
<g id= "a_node65" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1851" xlink:title= "ZcashFoundation/zebra#1851 Limit the number of connected peers in the PeerSet" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-2698 0,-2698 0,-2630 232,-2630 232,-2698" />
<text text-anchor= "middle" x= "116" y= "-2682.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1851</text>
<text text-anchor= "middle" x= "116" y= "-2667.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Limit the number of</text>
<text text-anchor= "middle" x= "116" y= "-2652.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > connected peers in the</text>
<text text-anchor= "middle" x= "116" y= "-2637.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > PeerSet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1850 -->
<g id= "node66" class= "node" >
<title > ZcashFoundation/zebra#1850</title>
<g id= "a_node66" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1850" xlink:title= "ZcashFoundation/zebra#1850 Security: Limit the number of outbound peer connections when dialing new peers" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-2799.5 0,-2799.5 0,-2716.5 232,-2716.5 232,-2799.5" />
<text text-anchor= "middle" x= "116" y= "-2784.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1850</text>
<text text-anchor= "middle" x= "116" y= "-2769.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Security: Limit the</text>
<text text-anchor= "middle" x= "116" y= "-2754.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > number of outbound peer</text>
<text text-anchor= "middle" x= "116" y= "-2739.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > connections when dialing</text>
<text text-anchor= "middle" x= "116" y= "-2724.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > new peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334 -->
<g id= "node67" class= "node" >
<title > ZcashFoundation/zebra#1334</title>
<g id= "a_node67" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1334" xlink:title= "ZcashFoundation/zebra#1334 After network upgrade activation, reject new connections from outdated peers" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-3001.5 268,-3001.5 268,-2918.5 500,-2918.5 500,-3001.5" />
<text text-anchor= "middle" x= "384" y= "-2986.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1334</text>
<text text-anchor= "middle" x= "384" y= "-2971.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > After network upgrade</text>
<text text-anchor= "middle" x= "384" y= "-2956.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > activation, reject new</text>
<text text-anchor= "middle" x= "384" y= "-2941.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > connections from outdated</text>
<text text-anchor= "middle" x= "384" y= "-2926.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#706 -->
<g id= "node68" class= "node" >
<title > ZcashFoundation/zebra#706</title>
<g id= "a_node68" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/706" xlink:title= "ZcashFoundation/zebra#706 Do we need to prefer evicting pre-upgrade peers from the peer set across a network upgrade?" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "763.5,-2931.5 540.5,-2931.5 540.5,-2848.5 763.5,-2848.5 763.5,-2931.5" />
<text text-anchor= "middle" x= "652" y= "-2916.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#706</text>
<text text-anchor= "middle" x= "652" y= "-2901.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Do we need to prefer</text>
<text text-anchor= "middle" x= "652" y= "-2886.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > evicting pre- upgrade</text>
<text text-anchor= "middle" x= "652" y= "-2871.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > peers from the peer set</text>
<text text-anchor= "middle" x= "652" y= "-2856.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > across a network upgrade?</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334->ZcashFoundation/zebra#706 -->
<g id= "edge54" class= "edge" >
<title > ZcashFoundation/zebra#1334- > ZcashFoundation/zebra#706</title>
<path fill= "none" stroke= "#000000" d= "M500.38,-2929.6C510.34,-2927 520.43,-2924.4 530.43,-2921.8" />
<polygon fill= "#000000" stroke= "#000000" points= "531.5983,-2925.1124 540.39,-2919.2 529.8302,-2918.3394 531.5983,-2925.1124" />
</g>
<!-- ZcashFoundation/zebra#1894 -->
<g id= "node69" class= "node" >
<title > ZcashFoundation/zebra#1894</title>
<g id= "a_node69" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1894" xlink:title= "ZcashFoundation/zebra#1894 Zebra should follow OS directory conventions better" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "768,-1802 536,-1802 536,-1734 768,-1734 768,-1802" />
<text text-anchor= "middle" x= "652" y= "-1786.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1894</text>
<text text-anchor= "middle" x= "652" y= "-1771.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Zebra should follow OS</text>
<text text-anchor= "middle" x= "652" y= "-1756.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > directory conventions</text>
<text text-anchor= "middle" x= "652" y= "-1741.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > better</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1894->ZcashFoundation/zebra#1956 -->
<g id= "edge55" class= "edge" >
<title > ZcashFoundation/zebra#1894- > ZcashFoundation/zebra#1956</title>
<path fill= "none" stroke= "#000000" d= "M768.38,-1794.9C776.81,-1796.9 785.33,-1798.8 793.81,-1800.8" />
<polygon fill= "#000000" stroke= "#000000" points= "793.2081,-1804.2532 803.74,-1803.1 794.7877,-1797.4337 793.2081,-1804.2532" />
</g>
<!-- ZcashFoundation/zebra#1874 -->
<g id= "node70" class= "node" >
<title > ZcashFoundation/zebra#1874</title>
<g id= "a_node70" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1874" xlink:title= "ZcashFoundation/zebra#1874 ZIP 244: Transaction Identifier Non- Malleability" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-2987 0,-2987 0,-2919 232,-2919 232,-2987" />
<text text-anchor= "middle" x= "116" y= "-2971.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1874</text>
<text text-anchor= "middle" x= "116" y= "-2956.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP 244: Transaction</text>
<text text-anchor= "middle" x= "116" y= "-2941.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Identifier Non- </text>
<text text-anchor= "middle" x= "116" y= "-2926.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Malleability</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1567 -->
<g id= "node71" class= "node" >
<title > ZcashFoundation/zebra#1567</title>
<g id= "a_node71" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1567" xlink:title= "ZcashFoundation/zebra#1567 ZIP-221: Block Header Chain History Commitment" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-3058.5 0,-3058.5 0,-3005.5 232,-3005.5 232,-3058.5" />
<text text-anchor= "middle" x= "116" y= "-3043.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1567</text>
<text text-anchor= "middle" x= "116" y= "-3028.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 221: Block Header</text>
<text text-anchor= "middle" x= "116" y= "-3013.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Chain History Commitment</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2015 -->
<g id= "node72" class= "node" >
<title > ZcashFoundation/zebra#2015</title>
<g id= "a_node72" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2015" xlink:title= "ZcashFoundation/zebra#2015 Run coverage on the latest nightly" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-3129.5 0,-3129.5 0,-3076.5 232,-3076.5 232,-3129.5" />
<text text-anchor= "middle" x= "116" y= "-3114.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2015</text>
<text text-anchor= "middle" x= "116" y= "-3099.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Run coverage on the</text>
<text text-anchor= "middle" x= "116" y= "-3084.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > latest nightly</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2028 -->
<g id= "node73" class= "node" >
<title > ZcashFoundation/zebra#2028</title>
<g id= "a_node73" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2028" xlink:title= "ZcashFoundation/zebra#2028 Use the AtLeastOne generic type to enforce field counts" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-3216 0,-3216 0,-3148 232,-3148 232,-3216" />
<text text-anchor= "middle" x= "116" y= "-3200.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2028</text>
<text text-anchor= "middle" x= "116" y= "-3185.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Use the AtLeastOne</text>
<text text-anchor= "middle" x= "116" y= "-3170.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > generic type to enforce</text>
<text text-anchor= "middle" x= "116" y= "-3155.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > field counts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1774 -->
<g id= "node74" class= "node" >
<title > ZcashFoundation/zebra#1774</title>
<g id= "a_node74" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1774" xlink:title= "ZcashFoundation/zebra#1774 Add a size estimator to the message encoder and serializers" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-3302 0,-3302 0,-3234 232,-3234 232,-3302" />
<text text-anchor= "middle" x= "116" y= "-3286.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1774</text>
<text text-anchor= "middle" x= "116" y= "-3271.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Add a size estimator to</text>
<text text-anchor= "middle" x= "116" y= "-3256.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > the message encoder and</text>
<text text-anchor= "middle" x= "116" y= "-3241.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > serializers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035 -->
<g id= "node75" class= "node" >
<title > ZcashFoundation/zebra#2035</title>
<g id= "a_node75" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/2035" xlink:title= "ZcashFoundation/zebra#2035 Add external_addr to config (network section)" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-3373.5 0,-3373.5 0,-3369.5 -4,-3369.5 -4,-3365.5 0,-3365.5 0,-3328.5 -4,-3328.5 -4,-3324.5 0,-3324.5 0,-3320.5 232,-3320.5 232,-3373.5" />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-3369.5 4,-3369.5 4,-3365.5 0,-3365.5 " />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-3328.5 4,-3328.5 4,-3324.5 0,-3324.5 " />
<text text-anchor= "middle" x= "116" y= "-3358.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2035</text>
<text text-anchor= "middle" x= "116" y= "-3343.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Add external_addr to</text>
<text text-anchor= "middle" x= "116" y= "-3328.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > config (network section)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2052 -->
<g id= "node76" class= "node" >
<title > ZcashFoundation/zebra#2052</title>
<g id= "a_node76" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2052" xlink:title= "ZcashFoundation/zebra#2052 Use default port for initial peers and external addresses" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-3381 268,-3381 268,-3313 500,-3313 500,-3381" />
<text text-anchor= "middle" x= "384" y= "-3365.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2052</text>
<text text-anchor= "middle" x= "384" y= "-3350.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Use default port for</text>
<text text-anchor= "middle" x= "384" y= "-3335.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > initial peers and</text>
<text text-anchor= "middle" x= "384" y= "-3320.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > external addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035->ZcashFoundation/zebra#2052 -->
<g id= "edge56" class= "edge" >
<title > ZcashFoundation/zebra#2035- > ZcashFoundation/zebra#2052</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-3347C240.71,-3347 249.14,-3347 257.53,-3347" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-3350.5001 267.74,-3347 257.74,-3343.5001 257.74,-3350.5001" />
</g>
<!-- ZcashFoundation/zebra#2050 -->
<g id= "node77" class= "node" >
<title > ZcashFoundation/zebra#2050</title>
<g id= "a_node77" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2050" xlink:title= "ZcashFoundation/zebra#2050 ZIP-244: Implement Non- Malleable transaction ids" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-3523.5 268,-3523.5 268,-3470.5 500,-3470.5 500,-3523.5" />
<text text-anchor= "middle" x= "384" y= "-3508.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2050</text>
<text text-anchor= "middle" x= "384" y= "-3493.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 244: Implement Non- </text>
<text text-anchor= "middle" x= "384" y= "-3478.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Malleable transaction ids</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2051 -->
<g id= "node78" class= "node" >
<title > ZcashFoundation/zebra#2051</title>
<g id= "a_node78" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2051" xlink:title= "ZcashFoundation/zebra#2051 ZIP-244: Implement sighash for Non-Malleable Transaction Ids" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-3570 536,-3570 536,-3502 768,-3502 768,-3570" />
<text text-anchor= "middle" x= "652" y= "-3554.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2051</text>
<text text-anchor= "middle" x= "652" y= "-3539.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 244: Implement</text>
<text text-anchor= "middle" x= "652" y= "-3524.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > sighash for Non- Malleable</text>
<text text-anchor= "middle" x= "652" y= "-3509.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Transaction Ids</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2050->ZcashFoundation/zebra#2051 -->
<g id= "edge57" class= "edge" >
<title > ZcashFoundation/zebra#2050- > ZcashFoundation/zebra#2051</title>
<path fill= "none" stroke= "#000000" d= "M500.38,-3513.9C508.81,-3515.2 517.33,-3516.4 525.81,-3517.6" />
<polygon fill= "#000000" stroke= "#000000" points= "525.3294,-3521.067 535.74,-3519.1 526.375,-3514.1455 525.3294,-3521.067" />
</g>
<!-- ZcashFoundation/zebra#2165 -->
<g id= "node79" class= "node" >
<title > ZcashFoundation/zebra#2165</title>
<g id= "a_node79" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/2165" xlink:title= "ZcashFoundation/zebra#2165 Add ZIP-244 signature hash support" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "768,-3483.5 536,-3483.5 536,-3479.5 532,-3479.5 532,-3475.5 536,-3475.5 536,-3438.5 532,-3438.5 532,-3434.5 536,-3434.5 536,-3430.5 768,-3430.5 768,-3483.5" />
<polyline fill= "none" stroke= "#000000" points= "536,-3479.5 540,-3479.5 540,-3475.5 536,-3475.5 " />
<polyline fill= "none" stroke= "#000000" points= "536,-3438.5 540,-3438.5 540,-3434.5 536,-3434.5 " />
<text text-anchor= "middle" x= "652" y= "-3468.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2165</text>
<text text-anchor= "middle" x= "652" y= "-3453.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Add ZIP- 244 signature</text>
<text text-anchor= "middle" x= "652" y= "-3438.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > hash support</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2050->ZcashFoundation/zebra#2165 -->
<g id= "edge58" class= "edge" >
<title > ZcashFoundation/zebra#2050- > ZcashFoundation/zebra#2165</title>
<path fill= "none" stroke= "#000000" d= "M500.38,-3479.6C508.81,-3478.4 517.33,-3477.1 525.81,-3475.8" />
<polygon fill= "#000000" stroke= "#000000" points= "526.3266,-3479.2619 535.74,-3474.4 525.3493,-3472.3304 526.3266,-3479.2619" />
</g>
<!-- ZcashFoundation/zebra#2115 -->
<g id= "node80" class= "node" >
<title > ZcashFoundation/zebra#2115</title>
<g id= "a_node80" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2115" xlink:title= "ZcashFoundation/zebra#2115 RFC for ZIP-213: Shielded Coinbase rules for Heartwood" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-3610 0,-3610 0,-3542 232,-3542 232,-3610" />
<text text-anchor= "middle" x= "116" y= "-3594.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2115</text>
<text text-anchor= "middle" x= "116" y= "-3579.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > RFC for ZIP- 213: Shielded</text>
<text text-anchor= "middle" x= "116" y= "-3564.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Coinbase rules for</text>
<text text-anchor= "middle" x= "116" y= "-3549.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Heartwood</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#608 -->
<g id= "node81" class= "node" >
<title > ZcashFoundation/zebra#608</title>
<g id= "a_node81" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/608" xlink:title= "ZcashFoundation/zebra#608 ZIP-213: Shielded Coinbase rules for Heartwood" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "495.5,-3610 272.5,-3610 272.5,-3542 495.5,-3542 495.5,-3610" />
<text text-anchor= "middle" x= "384" y= "-3594.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#608</text>
<text text-anchor= "middle" x= "384" y= "-3579.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 213: Shielded</text>
<text text-anchor= "middle" x= "384" y= "-3564.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Coinbase rules for</text>
<text text-anchor= "middle" x= "384" y= "-3549.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Heartwood</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2115->ZcashFoundation/zebra#608 -->
<g id= "edge59" class= "edge" >
<title > ZcashFoundation/zebra#2115- > ZcashFoundation/zebra#608</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-3576C242.23,-3576 252.22,-3576 262.11,-3576" />
<polygon fill= "#000000" stroke= "#000000" points= "262.39,-3579.5001 272.39,-3576 262.39,-3572.5001 262.39,-3579.5001" />
</g>
<!-- ZcashFoundation/zebra#2152 -->
<g id= "node82" class= "node" >
<title > ZcashFoundation/zebra#2152</title>
<g id= "a_node82" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2152" xlink:title= "ZcashFoundation/zebra#2152 ZIP-209 RFC: Value Pools Implementation" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-3696.5 0,-3696.5 0,-3643.5 232,-3643.5 232,-3696.5" />
<text text-anchor= "middle" x= "116" y= "-3681.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2152</text>
<text text-anchor= "middle" x= "116" y= "-3666.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 209 RFC: Value Pools</text>
<text text-anchor= "middle" x= "116" y= "-3651.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1895 -->
<g id= "node83" class= "node" >
<title > ZcashFoundation/zebra#1895</title>
<g id= "a_node83" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1895" xlink:title= "ZcashFoundation/zebra#1895 ZIP-209: Prohibit Negative Shielded Chain Value Pool Balances - Implementation" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-3711.5 268,-3711.5 268,-3628.5 500,-3628.5 500,-3711.5" />
<text text-anchor= "middle" x= "384" y= "-3696.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1895</text>
<text text-anchor= "middle" x= "384" y= "-3681.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZIP- 209: Prohibit</text>
<text text-anchor= "middle" x= "384" y= "-3666.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Negative Shielded Chain</text>
<text text-anchor= "middle" x= "384" y= "-3651.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Value Pool Balances - </text>
<text text-anchor= "middle" x= "384" y= "-3636.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2152->ZcashFoundation/zebra#1895 -->
<g id= "edge60" class= "edge" >
<title > ZcashFoundation/zebra#2152- > ZcashFoundation/zebra#1895</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-3670C240.71,-3670 249.14,-3670 257.53,-3670" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-3673.5001 267.74,-3670 257.74,-3666.5001 257.74,-3673.5001" />
</g>
<!-- ZcashFoundation/zebra#1973 -->
<g id= "node84" class= "node" >
<title > ZcashFoundation/zebra#1973</title>
<g id= "a_node84" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/1973" xlink:title= "ZcashFoundation/zebra#1973 Automatically invalidate preselected peers" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-3797.5 0,-3797.5 0,-3744.5 232,-3744.5 232,-3797.5" />
<text text-anchor= "middle" x= "116" y= "-3782.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#1973</text>
<text text-anchor= "middle" x= "116" y= "-3767.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Automatically invalidate</text>
<text text-anchor= "middle" x= "116" y= "-3752.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > preselected peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2156 -->
<g id= "node85" class= "node" >
<title > ZcashFoundation/zebra#2156</title>
<g id= "a_node85" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2156" xlink:title= "ZcashFoundation/zebra#2156 Security: Send notfound inv items to the inv collector, Credit: Equilibrium" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-3812.5 268,-3812.5 268,-3729.5 500,-3729.5 500,-3812.5" />
<text text-anchor= "middle" x= "384" y= "-3797.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2156</text>
<text text-anchor= "middle" x= "384" y= "-3782.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Security: Send notfound</text>
<text text-anchor= "middle" x= "384" y= "-3767.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > inv items to the inv</text>
<text text-anchor= "middle" x= "384" y= "-3752.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > collector, Credit:</text>
<text text-anchor= "middle" x= "384" y= "-3737.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Equilibrium</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1973->ZcashFoundation/zebra#2156 -->
<g id= "edge61" class= "edge" >
<title > ZcashFoundation/zebra#1973- > ZcashFoundation/zebra#2156</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-3771C240.71,-3771 249.14,-3771 257.53,-3771" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-3774.5001 267.74,-3771 257.74,-3767.5001 257.74,-3774.5001" />
</g>
<!-- ZcashFoundation/zebra#2160 -->
<g id= "node86" class= "node" >
<title > ZcashFoundation/zebra#2160</title>
<g id= "a_node86" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/2160" xlink:title= "ZcashFoundation/zebra#2160 Security: MetaAddr refactor, gossip time, connection order, reconnection rate fixes (see tickets)" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-3914 0,-3914 0,-3910 -4,-3910 -4,-3906 0,-3906 0,-3824 -4,-3824 -4,-3820 0,-3820 0,-3816 232,-3816 232,-3914" />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-3910 4,-3910 4,-3906 0,-3906 " />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-3824 4,-3824 4,-3820 0,-3820 " />
<text text-anchor= "middle" x= "116" y= "-3898.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2160</text>
<text text-anchor= "middle" x= "116" y= "-3883.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Security: MetaAddr</text>
<text text-anchor= "middle" x= "116" y= "-3868.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > refactor, gossip time,</text>
<text text-anchor= "middle" x= "116" y= "-3853.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > connection order,</text>
<text text-anchor= "middle" x= "116" y= "-3838.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > reconnection rate fixes</text>
<text text-anchor= "middle" x= "116" y= "-3823.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > (see tickets)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#829 -->
<g id= "node87" class= "node" >
<title > ZcashFoundation/zebra#829</title>
<g id= "a_node87" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/829" xlink:title= "ZcashFoundation/zebra#829 Replace `primitive_types` with `bigint`" target= "_blank" >
2021-06-15 15:48:19 -07:00
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "227.5,-3523.5 4.5,-3523.5 4.5,-3470.5 227.5,-3470.5 227.5,-3523.5" />
<text text-anchor= "middle" x= "116" y= "-3508.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#829</text>
<text text-anchor= "middle" x= "116" y= "-3493.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Replace `primitive_types`</text>
<text text-anchor= "middle" x= "116" y= "-3478.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > with `bigint`</text>
2021-06-15 09:47:10 -07:00
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#829->ZcashFoundation/zebra#2050 -->
<g id= "edge62" class= "edge" >
<title > ZcashFoundation/zebra#829- > ZcashFoundation/zebra#2050</title>
2021-06-15 15:48:19 -07:00
<path fill= "none" stroke= "#000000" d= "M227.72,-3497C237.52,-3497 247.49,-3497 257.41,-3497" />
<polygon fill= "#000000" stroke= "#000000" points= "257.71,-3500.5001 267.71,-3497 257.71,-3493.5001 257.71,-3500.5001" />
2021-06-15 09:47:10 -07:00
</g>
<!-- ZcashFoundation/zebra#2129 -->
<g id= "node88" class= "node" >
<title > ZcashFoundation/zebra#2129</title>
<g id= "a_node88" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/2129" xlink:title= "ZcashFoundation/zebra#2129 Add ZIP-0244 TxId Digest support" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-3452.5 268,-3452.5 268,-3448.5 264,-3448.5 264,-3444.5 268,-3444.5 268,-3407.5 264,-3407.5 264,-3403.5 268,-3403.5 268,-3399.5 500,-3399.5 500,-3452.5" />
<polyline fill= "none" stroke= "#000000" points= "268,-3448.5 272,-3448.5 272,-3444.5 268,-3444.5 " />
<polyline fill= "none" stroke= "#000000" points= "268,-3407.5 272,-3407.5 272,-3403.5 268,-3403.5 " />
<text text-anchor= "middle" x= "384" y= "-3437.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2129</text>
<text text-anchor= "middle" x= "384" y= "-3422.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Add ZIP- 0244 TxId Digest</text>
<text text-anchor= "middle" x= "384" y= "-3407.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > support</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#829->ZcashFoundation/zebra#2129 -->
<g id= "edge63" class= "edge" >
<title > ZcashFoundation/zebra#829- > ZcashFoundation/zebra#2129</title>
2021-06-15 15:48:19 -07:00
<path fill= "none" stroke= "#000000" d= "M216.17,-3470.5C235.13,-3465.4 255.04,-3460.2 274.27,-3455.1" />
<polygon fill= "#000000" stroke= "#000000" points= "275.2002,-3458.4743 283.95,-3452.5 273.3844,-3451.7139 275.2002,-3458.4743" />
2021-06-15 09:47:10 -07:00
</g>
<!-- ZcashFoundation/zebra#2292 -->
<g id= "node89" class= "node" >
<title > ZcashFoundation/zebra#2292</title>
<g id= "a_node89" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2292" xlink:title= "ZcashFoundation/zebra#2292 Cleanup MetaAddr after security fixes" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-4071.5 268,-4071.5 268,-4018.5 500,-4018.5 500,-4071.5" />
<text text-anchor= "middle" x= "384" y= "-4056.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2292</text>
<text text-anchor= "middle" x= "384" y= "-4041.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Cleanup MetaAddr after</text>
<text text-anchor= "middle" x= "384" y= "-4026.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2275 -->
<g id= "node90" class= "node" >
<title > ZcashFoundation/zebra#2275</title>
<g id= "a_node90" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/2275" xlink:title= "ZcashFoundation/zebra#2275 Security: Limit reconnection rate to individual peers" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-4000 0,-4000 0,-3996 -4,-3996 -4,-3992 0,-3992 0,-3940 -4,-3940 -4,-3936 0,-3936 0,-3932 232,-3932 232,-4000" />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-3996 4,-3996 4,-3992 0,-3992 " />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-3940 4,-3940 4,-3936 0,-3936 " />
<text text-anchor= "middle" x= "116" y= "-3984.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2275</text>
<text text-anchor= "middle" x= "116" y= "-3969.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Security: Limit</text>
<text text-anchor= "middle" x= "116" y= "-3954.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > reconnection rate to</text>
<text text-anchor= "middle" x= "116" y= "-3939.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > individual peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2275->ZcashFoundation/zebra#2292 -->
<g id= "edge64" class= "edge" >
<title > ZcashFoundation/zebra#2275- > ZcashFoundation/zebra#2292</title>
<path fill= "none" stroke= "#000000" d= "M231.6,-4000.1C249.01,-4005.2 266.84,-4010.5 283.89,-4015.5" />
<polygon fill= "#000000" stroke= "#000000" points= "283.2499,-4018.9591 293.83,-4018.4 285.2105,-4012.2393 283.2499,-4018.9591" />
</g>
<!-- ZcashFoundation/zebra#2293 -->
<g id= "node91" class= "node" >
<title > ZcashFoundation/zebra#2293</title>
<g id= "a_node91" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2293" xlink:title= "ZcashFoundation/zebra#2293 Batch MetaAddrChanges and remove identical changes" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-3992.5 268,-3992.5 268,-3939.5 500,-3939.5 500,-3992.5" />
<text text-anchor= "middle" x= "384" y= "-3977.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2293</text>
<text text-anchor= "middle" x= "384" y= "-3962.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Batch MetaAddrChanges and</text>
<text text-anchor= "middle" x= "384" y= "-3947.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > remove identical changes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2275->ZcashFoundation/zebra#2293 -->
<g id= "edge65" class= "edge" >
<title > ZcashFoundation/zebra#2275- > ZcashFoundation/zebra#2293</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-3966C240.71,-3966 249.14,-3966 257.53,-3966" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-3969.5001 267.74,-3966 257.74,-3962.5001 257.74,-3969.5001" />
</g>
<!-- ZcashFoundation/zebra#2276 -->
<g id= "node92" class= "node" >
<title > ZcashFoundation/zebra#2276</title>
<g id= "a_node92" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/2276" xlink:title= "ZcashFoundation/zebra#2276 Always send our local listener with the latest time" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-4158 0,-4158 0,-4154 -4,-4154 -4,-4150 0,-4150 0,-4098 -4,-4098 -4,-4094 0,-4094 0,-4090 232,-4090 232,-4158" />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-4154 4,-4154 4,-4150 0,-4150 " />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-4098 4,-4098 4,-4094 0,-4094 " />
<text text-anchor= "middle" x= "116" y= "-4142.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2276</text>
<text text-anchor= "middle" x= "116" y= "-4127.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Always send our local</text>
<text text-anchor= "middle" x= "116" y= "-4112.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > listener with the latest</text>
<text text-anchor= "middle" x= "116" y= "-4097.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > time</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2276->ZcashFoundation/zebra#2292 -->
<g id= "edge66" class= "edge" >
<title > ZcashFoundation/zebra#2276- > ZcashFoundation/zebra#2292</title>
<path fill= "none" stroke= "#000000" d= "M231.6,-4089.9C249.01,-4084.8 266.84,-4079.5 283.89,-4074.5" />
<polygon fill= "#000000" stroke= "#000000" points= "285.2105,-4077.7607 293.83,-4071.6 283.2499,-4071.0409 285.2105,-4077.7607" />
</g>
<!-- ZcashFoundation/zebra#2277 -->
<g id= "node93" class= "node" >
<title > ZcashFoundation/zebra#2277</title>
<g id= "a_node93" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/2277" xlink:title= "ZcashFoundation/zebra#2277 Gossip dynamic local listener ports to peers" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-4071.5 0,-4071.5 0,-4067.5 -4,-4067.5 -4,-4063.5 0,-4063.5 0,-4026.5 -4,-4026.5 -4,-4022.5 0,-4022.5 0,-4018.5 232,-4018.5 232,-4071.5" />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-4067.5 4,-4067.5 4,-4063.5 0,-4063.5 " />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-4026.5 4,-4026.5 4,-4022.5 0,-4022.5 " />
<text text-anchor= "middle" x= "116" y= "-4056.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2277</text>
<text text-anchor= "middle" x= "116" y= "-4041.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Gossip dynamic local</text>
<text text-anchor= "middle" x= "116" y= "-4026.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > listener ports to peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2277->ZcashFoundation/zebra#2292 -->
<g id= "edge67" class= "edge" >
<title > ZcashFoundation/zebra#2277- > ZcashFoundation/zebra#2292</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-4045C240.71,-4045 249.14,-4045 257.53,-4045" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-4048.5001 267.74,-4045 257.74,-4041.5001 257.74,-4048.5001" />
</g>
<!-- ZcashFoundation/zebra#2262 -->
<g id= "node94" class= "node" >
<title > ZcashFoundation/zebra#2262</title>
<g id= "a_node94" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2262" xlink:title= "ZcashFoundation/zebra#2262 After network upgrade activation, close existing connections to outdated peers" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-2900.5 0,-2900.5 0,-2817.5 232,-2817.5 232,-2900.5" />
<text text-anchor= "middle" x= "116" y= "-2885.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2262</text>
<text text-anchor= "middle" x= "116" y= "-2870.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > After network upgrade</text>
<text text-anchor= "middle" x= "116" y= "-2855.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > activation, close</text>
<text text-anchor= "middle" x= "116" y= "-2840.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > existing connections to</text>
<text text-anchor= "middle" x= "116" y= "-2825.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > outdated peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262->ZcashFoundation/zebra#1334 -->
<g id= "edge68" class= "edge" >
<title > ZcashFoundation/zebra#2262- > ZcashFoundation/zebra#1334</title>
<path fill= "none" stroke= "#000000" d= "M226.17,-2900.5C238.71,-2905.2 251.53,-2910.1 264.19,-2914.8" />
<polygon fill= "#000000" stroke= "#000000" points= "263.2399,-2918.1842 273.83,-2918.5 265.7482,-2911.6491 263.2399,-2918.1842" />
</g>
<!-- ZcashFoundation/zebra#2262->ZcashFoundation/zebra#706 -->
<g id= "edge69" class= "edge" >
<title > ZcashFoundation/zebra#2262- > ZcashFoundation/zebra#706</title>
<path fill= "none" stroke= "#000000" d= "M232.16,-2868.5C244.26,-2869.4 256.38,-2870.3 268,-2871 355.65,-2876.6 454.66,-2881.5 530.18,-2884.9" />
<polygon fill= "#000000" stroke= "#000000" points= "530.0784,-2888.3986 540.21,-2885.3 530.3574,-2881.4042 530.0784,-2888.3986" />
</g>
<!-- ZcashFoundation/zebra#2261 -->
<g id= "node95" class= "node" >
<title > ZcashFoundation/zebra#2261</title>
<g id= "a_node95" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2261" xlink:title= "ZcashFoundation/zebra#2261 Stop sending addresses of outdated peers to other peers" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-2862 268,-2862 268,-2794 500,-2794 500,-2862" />
<text text-anchor= "middle" x= "384" y= "-2846.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2261</text>
<text text-anchor= "middle" x= "384" y= "-2831.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Stop sending addresses of</text>
<text text-anchor= "middle" x= "384" y= "-2816.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > outdated peers to other</text>
<text text-anchor= "middle" x= "384" y= "-2801.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262->ZcashFoundation/zebra#2261 -->
<g id= "edge70" class= "edge" >
<title > ZcashFoundation/zebra#2262- > ZcashFoundation/zebra#2261</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-2845.5C240.71,-2844.6 249.14,-2843.6 257.53,-2842.6" />
<polygon fill= "#000000" stroke= "#000000" points= "258.2169,-2846.0434 267.74,-2841.4 257.3998,-2839.0913 258.2169,-2846.0434" />
</g>
<!-- ZcashFoundation/zebra#2107 -->
<g id= "node96" class= "node" >
<title > ZcashFoundation/zebra#2107</title>
<g id= "a_node96" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/issues/2107" xlink:title= "ZcashFoundation/zebra#2107 Security: Stop immediately disconnecting from nodes that send unexpected messages, Credit: Equilibrium" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-2776 268,-2776 268,-2678 500,-2678 500,-2776" />
<text text-anchor= "middle" x= "384" y= "-2760.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2107</text>
<text text-anchor= "middle" x= "384" y= "-2745.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Security: Stop</text>
<text text-anchor= "middle" x= "384" y= "-2730.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > immediately disconnecting</text>
<text text-anchor= "middle" x= "384" y= "-2715.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > from nodes that send</text>
<text text-anchor= "middle" x= "384" y= "-2700.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > unexpected messages,</text>
<text text-anchor= "middle" x= "384" y= "-2685.8" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Credit: Equilibrium</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262->ZcashFoundation/zebra#2107 -->
<g id= "edge71" class= "edge" >
<title > ZcashFoundation/zebra#2262- > ZcashFoundation/zebra#2107</title>
<path fill= "none" stroke= "#000000" d= "M213.68,-2817.4C219.93,-2814.3 226.08,-2811.2 232,-2808 248.74,-2799 251.49,-2794.4 268,-2785 270.27,-2783.7 272.57,-2782.4 274.9,-2781.1" />
<polygon fill= "#000000" stroke= "#000000" points= "276.8418,-2784.0293 283.98,-2776.2 273.5174,-2777.869 276.8418,-2784.0293" />
</g>
<!-- ZcashFoundation/zebra#2107->ZcashFoundation/zebra#706 -->
<g id= "edge72" class= "edge" >
<title > ZcashFoundation/zebra#2107- > ZcashFoundation/zebra#706</title>
<path fill= "none" stroke= "#000000" d= "M484.45,-2776.1C489.75,-2779 494.96,-2782 500,-2785 529.52,-2802.5 560.9,-2823.7 587.43,-2842.4" />
<polygon fill= "#000000" stroke= "#000000" points= "585.6917,-2845.4585 595.87,-2848.4 589.7476,-2839.7532 585.6917,-2845.4585" />
</g>
2021-06-15 15:48:19 -07:00
<!-- ZcashFoundation/zebra#2288 -->
<g id= "node97" class= "node" >
<title > ZcashFoundation/zebra#2288</title>
<g id= "a_node97" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/2288" xlink:title= "ZcashFoundation/zebra#2288 Batch math & variable- time multiscalar multiplication for redpallas" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" stroke-width= "2" points= "232,-4259.5 0,-4259.5 0,-4255.5 -4,-4255.5 -4,-4251.5 0,-4251.5 0,-4184.5 -4,-4184.5 -4,-4180.5 0,-4180.5 0,-4176.5 232,-4176.5 232,-4259.5" />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-4255.5 4,-4255.5 4,-4251.5 0,-4251.5 " />
<polyline fill= "none" stroke= "#000000" stroke-width= "2" points= "0,-4184.5 4,-4184.5 4,-4180.5 0,-4180.5 " />
<text text-anchor= "middle" x= "116" y= "-4244.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2288</text>
<text text-anchor= "middle" x= "116" y= "-4229.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > Batch math & variable- </text>
<text text-anchor= "middle" x= "116" y= "-4214.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > time multiscalar</text>
<text text-anchor= "middle" x= "116" y= "-4199.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > multiplication for</text>
<text text-anchor= "middle" x= "116" y= "-4184.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > redpallas</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2318 -->
<g id= "node98" class= "node" >
<title > ZcashFoundation/zebra#2318</title>
<g id= "a_node98" > <a xlink:href= "https://github.com/ZcashFoundation/zebra/pull/2318" xlink:title= "ZcashFoundation/zebra#2318 RedPallas async verifier service" target= "_blank" >
<polygon fill= "#c2e0c6" stroke= "#000000" points= "500,-4244.5 268,-4244.5 268,-4240.5 264,-4240.5 264,-4236.5 268,-4236.5 268,-4199.5 264,-4199.5 264,-4195.5 268,-4195.5 268,-4191.5 500,-4191.5 500,-4244.5" />
<polyline fill= "none" stroke= "#000000" points= "268,-4240.5 272,-4240.5 272,-4236.5 268,-4236.5 " />
<polyline fill= "none" stroke= "#000000" points= "268,-4199.5 272,-4199.5 272,-4195.5 268,-4195.5 " />
<text text-anchor= "middle" x= "384" y= "-4229.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > ZcashFoundation/zebra#2318</text>
<text text-anchor= "middle" x= "384" y= "-4214.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > RedPallas async verifier</text>
<text text-anchor= "middle" x= "384" y= "-4199.3" font-family= "Times,serif" font-size= "14.00" fill= "#000000" > service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2288->ZcashFoundation/zebra#2318 -->
<g id= "edge73" class= "edge" >
<title > ZcashFoundation/zebra#2288- > ZcashFoundation/zebra#2318</title>
<path fill= "none" stroke= "#000000" d= "M232.38,-4218C240.71,-4218 249.14,-4218 257.53,-4218" />
<polygon fill= "#000000" stroke= "#000000" points= "257.74,-4221.5001 267.74,-4218 257.74,-4214.5001 257.74,-4221.5001" />
</g>
2021-06-15 09:47:10 -07:00
</g>
</svg>