developers/zcash-tfl-dag.html

1253 lines
84 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Zcash tfl DAG</title>
<!-- Pan/zoom SVGs -->
<script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
<link rel="stylesheet" href="zcash-dag.css">
<style>
@media (prefers-color-scheme: dark) {
body {
/* Material dark theme surface colour */
background-color: #121212;
}
}
</style>
</head>
<body>
<div id="dag"><svg width="5295pt" height="991pt"
viewBox="0.00 0.00 5295.00 991.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 987)">
<polygon fill="white" stroke="transparent" points="-4,4 -4,-987 5291,-987 5291,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_0</title>
<polygon fill="none" stroke="blue" points="1892,-473 1892,-929 3032,-929 3032,-473 1892,-473"/>
<text text-anchor="middle" x="2462" y="-913.8" font-family="Times,serif" font-size="14.00">Design and Implementation Phase 4</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_4</title>
<polygon fill="none" stroke="blue" points="1690.5,-297 1690.5,-430 2102,-430 2102,-297 1690.5,-297"/>
<text text-anchor="middle" x="1896.2" y="-414.8" font-family="Times,serif" font-size="14.00">Prototype Phase 1</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_3</title>
<polygon fill="none" stroke="blue" points="243.5,0 243.5,-337 951.5,-337 951.5,0 243.5,0"/>
<text text-anchor="middle" x="597.5" y="-321.8" font-family="Times,serif" font-size="14.00">Design Phase 2 &#45; Integrated Crosslink</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_1</title>
<polygon fill="none" stroke="blue" points="0,-345 0,-650 955,-650 955,-345 0,-345"/>
<text text-anchor="middle" x="477.5" y="-634.8" font-family="Times,serif" font-size="14.00">Implementation Phase 1: Simulation Codebase</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_2</title>
<polygon fill="none" stroke="blue" points="743,-658 743,-983 1872,-983 1872,-658 743,-658"/>
<text text-anchor="middle" x="1307.5" y="-967.8" font-family="Times,serif" font-size="14.00">Design and Implementation Phase 3</text>
</g>
<g id="clust6" class="cluster">
<title>cluster_5</title>
<polygon fill="none" stroke="blue" points="1915.5,-173 1915.5,-280 2337,-280 2337,-173 1915.5,-173"/>
<text text-anchor="middle" x="2126.2" y="-264.8" font-family="Times,serif" font-size="14.00">Prototype Phase 2</text>
</g>
<!-- ECC/tfl&#45;book#42 -->
<g id="node1" class="node open">
<title>ECC/tfl&#45;book#42</title>
<g id="a_node1"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/42" xlink:title="ECC/tfl&#45;book#42&#10;Does Snap&#45;and&#45;Chat design&#10;split the minimum cost of&#10;attack for specific known&#10;attacks?" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2115.5,-897.5 1902.5,-897.5 1902.5,-814.5 2115.5,-814.5 2115.5,-897.5"/>
<text text-anchor="middle" x="2009" y="-882.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#42</text>
<text text-anchor="middle" x="2009" y="-867.3" font-family="Times,serif" font-size="14.00">Does Snap&#45;and&#45;Chat design</text>
<text text-anchor="middle" x="2009" y="-852.3" font-family="Times,serif" font-size="14.00">split the minimum cost of</text>
<text text-anchor="middle" x="2009" y="-837.3" font-family="Times,serif" font-size="14.00">attack for specific known</text>
<text text-anchor="middle" x="2009" y="-822.3" font-family="Times,serif" font-size="14.00">attacks?</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#49 -->
<g id="node2" class="node open">
<title>ECC/tfl&#45;book#49</title>
<g id="a_node2"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/49" xlink:title="ECC/tfl&#45;book#49&#10;Clarify our &quot;weakest&#10;link&quot; security concerns&#10;in precise questions." target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2334,-789 2154,-789 2154,-721 2334,-721 2334,-789"/>
<text text-anchor="middle" x="2244" y="-773.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#49</text>
<text text-anchor="middle" x="2244" y="-758.8" font-family="Times,serif" font-size="14.00">Clarify our &quot;weakest</text>
<text text-anchor="middle" x="2244" y="-743.8" font-family="Times,serif" font-size="14.00">link&quot; security concerns</text>
<text text-anchor="middle" x="2244" y="-728.8" font-family="Times,serif" font-size="14.00">in precise questions.</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#42&#45;&gt;ECC/tfl&#45;book#49 -->
<g id="edge1" class="edge">
<title>ECC/tfl&#45;book#42&#45;&gt;ECC/tfl&#45;book#49</title>
<path fill="none" stroke="black" d="M2105.8,-814.48C2122,-807.43 2138.9,-800.14 2154.9,-793.18"/>
<polygon fill="black" stroke="black" points="2156.5,-796.3 2164.3,-789.13 2153.73,-789.87 2156.5,-796.3"/>
</g>
<!-- ECC/tfl&#45;book#82 -->
<g id="node3" class="node open">
<title>ECC/tfl&#45;book#82</title>
<g id="a_node3"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/82" xlink:title="ECC/tfl&#45;book#82&#10;Analyze Crosslink against&#10;our best known combined&#10;attacks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2575,-781 2375,-781 2375,-713 2575,-713 2575,-781"/>
<text text-anchor="middle" x="2475" y="-765.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#82</text>
<text text-anchor="middle" x="2475" y="-750.8" font-family="Times,serif" font-size="14.00">Analyze Crosslink against</text>
<text text-anchor="middle" x="2475" y="-735.8" font-family="Times,serif" font-size="14.00">our best known combined</text>
<text text-anchor="middle" x="2475" y="-720.8" font-family="Times,serif" font-size="14.00">attacks</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#49&#45;&gt;ECC/tfl&#45;book#82 -->
<g id="edge2" class="edge">
<title>ECC/tfl&#45;book#49&#45;&gt;ECC/tfl&#45;book#82</title>
<path fill="none" stroke="black" d="M2334.2,-751.88C2344.2,-751.54 2354.4,-751.18 2364.6,-750.82"/>
<polygon fill="black" stroke="black" points="2364.93,-754.31 2374.8,-750.47 2364.69,-747.32 2364.93,-754.31"/>
</g>
<!-- ECC/tfl&#45;book#84 -->
<g id="node4" class="node open">
<title>ECC/tfl&#45;book#84</title>
<g id="a_node4"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/84" xlink:title="ECC/tfl&#45;book#84&#10;Publish a &quot;Design&#10;Milestone 4&quot; release" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="3024,-690.5 3021,-694.5 3000,-694.5 2997,-690.5 2860,-690.5 2860,-637.5 3024,-637.5 3024,-690.5"/>
<text text-anchor="middle" x="2942" y="-675.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#84</text>
<text text-anchor="middle" x="2942" y="-660.3" font-family="Times,serif" font-size="14.00">Publish a &quot;Design</text>
<text text-anchor="middle" x="2942" y="-645.3" font-family="Times,serif" font-size="14.00">Milestone 4&quot; release</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#82&#45;&gt;ECC/tfl&#45;book#84 -->
<g id="edge3" class="edge">
<title>ECC/tfl&#45;book#82&#45;&gt;ECC/tfl&#45;book#84</title>
<path fill="none" stroke="black" d="M2575.1,-771C2646.4,-783.62 2743.9,-791.13 2824,-762 2858.9,-749.31 2890.7,-721.14 2912.2,-698.25"/>
<polygon fill="black" stroke="black" points="2914.96,-700.42 2919.2,-690.71 2909.83,-695.66 2914.96,-700.42"/>
</g>
<!-- ECC/zebra&#45;tfl#7 -->
<g id="node44" class="node open">
<title>ECC/zebra&#45;tfl#7</title>
<g id="a_node44"><a xlink:href="https://github.com/Electric-Coin-Company/zebra-tfl/issues/7" xlink:title="ECC/zebra&#45;tfl#7&#10;Prototype sufficient to&#10;resolve design issues for&#10;Hybrid PoS" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="3254,-698 3060,-698 3060,-630 3254,-630 3254,-698"/>
<text text-anchor="middle" x="3157" y="-682.8" font-family="Times,serif" font-size="14.00">ECC/zebra&#45;tfl#7</text>
<text text-anchor="middle" x="3157" y="-667.8" font-family="Times,serif" font-size="14.00">Prototype sufficient to</text>
<text text-anchor="middle" x="3157" y="-652.8" font-family="Times,serif" font-size="14.00">resolve design issues for</text>
<text text-anchor="middle" x="3157" y="-637.8" font-family="Times,serif" font-size="14.00">Hybrid PoS</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#84&#45;&gt;ECC/zebra&#45;tfl#7 -->
<g id="edge57" class="edge">
<title>ECC/tfl&#45;book#84&#45;&gt;ECC/zebra&#45;tfl#7</title>
<path fill="none" stroke="black" d="M3024.1,-664C3032.5,-664 3041.1,-664 3049.7,-664"/>
<polygon fill="black" stroke="black" points="3049.7,-667.5 3059.7,-664 3049.7,-660.5 3049.7,-667.5"/>
</g>
<!-- ECC/tfl&#45;book#47 -->
<g id="node5" class="node open">
<title>ECC/tfl&#45;book#47</title>
<g id="a_node5"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/47" xlink:title="ECC/tfl&#45;book#47&#10;Ebb&#45;and&#45;Flow: what are&#10;the impacts of&#10;subprotocols sharing&#10;resources?" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2102.5,-796.5 1915.5,-796.5 1915.5,-713.5 2102.5,-713.5 2102.5,-796.5"/>
<text text-anchor="middle" x="2009" y="-781.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#47</text>
<text text-anchor="middle" x="2009" y="-766.3" font-family="Times,serif" font-size="14.00">Ebb&#45;and&#45;Flow: what are</text>
<text text-anchor="middle" x="2009" y="-751.3" font-family="Times,serif" font-size="14.00">the impacts of</text>
<text text-anchor="middle" x="2009" y="-736.3" font-family="Times,serif" font-size="14.00">subprotocols sharing</text>
<text text-anchor="middle" x="2009" y="-721.3" font-family="Times,serif" font-size="14.00">resources?</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#47&#45;&gt;ECC/tfl&#45;book#49 -->
<g id="edge4" class="edge">
<title>ECC/tfl&#45;book#47&#45;&gt;ECC/tfl&#45;book#49</title>
<path fill="none" stroke="black" d="M2102.8,-755C2116.2,-755 2130.1,-755 2143.7,-755"/>
<polygon fill="black" stroke="black" points="2144,-758.5 2154,-755 2144,-751.5 2144,-758.5"/>
</g>
<!-- ECC/tfl&#45;book#48 -->
<g id="node6" class="node open">
<title>ECC/tfl&#45;book#48</title>
<g id="a_node6"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/48" xlink:title="ECC/tfl&#45;book#48&#10;Write Best&#45;Effort /&#10;Napkin Math approximation&#10;of Min. Cost of Known&#10;Attack metric for several&#10;attacks." target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2118,-695 1900,-695 1900,-597 2118,-597 2118,-695"/>
<text text-anchor="middle" x="2009" y="-679.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#48</text>
<text text-anchor="middle" x="2009" y="-664.8" font-family="Times,serif" font-size="14.00">Write Best&#45;Effort /</text>
<text text-anchor="middle" x="2009" y="-649.8" font-family="Times,serif" font-size="14.00">Napkin Math approximation</text>
<text text-anchor="middle" x="2009" y="-634.8" font-family="Times,serif" font-size="14.00">of Min. Cost of Known</text>
<text text-anchor="middle" x="2009" y="-619.8" font-family="Times,serif" font-size="14.00">Attack metric for several</text>
<text text-anchor="middle" x="2009" y="-604.8" font-family="Times,serif" font-size="14.00">attacks.</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#48&#45;&gt;ECC/tfl&#45;book#49 -->
<g id="edge5" class="edge">
<title>ECC/tfl&#45;book#48&#45;&gt;ECC/tfl&#45;book#49</title>
<path fill="none" stroke="black" d="M2114.9,-695.08C2130.3,-702.29 2146,-709.62 2160.9,-716.57"/>
<polygon fill="black" stroke="black" points="2159.46,-719.76 2170,-720.84 2162.43,-713.42 2159.46,-719.76"/>
</g>
<!-- ECC/simtfl#11 -->
<g id="node7" class="node open">
<title>ECC/simtfl#11</title>
<g id="a_node7"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/11" xlink:title="ECC/simtfl#11&#10;Implement combined&#10;attacks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2327.5,-558.5 2160.5,-558.5 2160.5,-505.5 2327.5,-505.5 2327.5,-558.5"/>
<text text-anchor="middle" x="2244" y="-543.3" font-family="Times,serif" font-size="14.00">ECC/simtfl#11</text>
<text text-anchor="middle" x="2244" y="-528.3" font-family="Times,serif" font-size="14.00">Implement combined</text>
<text text-anchor="middle" x="2244" y="-513.3" font-family="Times,serif" font-size="14.00">attacks</text>
</a>
</g>
</g>
<!-- ECC/simtfl#11&#45;&gt;ECC/tfl&#45;book#82 -->
<g id="edge6" class="edge">
<title>ECC/simtfl#11&#45;&gt;ECC/tfl&#45;book#82</title>
<path fill="none" stroke="black" d="M2294.9,-558.81C2310,-568.86 2325.6,-581.43 2337,-596 2362.4,-628.6 2343.6,-651.13 2370,-683 2377.3,-691.85 2386.2,-699.81 2395.6,-706.88"/>
<polygon fill="black" stroke="black" points="2393.91,-709.97 2404.1,-712.85 2397.93,-704.24 2393.91,-709.97"/>
</g>
<!-- ECC/tfl&#45;book#70 -->
<g id="node8" class="node open">
<title>ECC/tfl&#45;book#70</title>
<g id="a_node8"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/70" xlink:title="ECC/tfl&#45;book#70&#10;Adapt CometBFT (formerly&#10;TendermintBFT) into&#10;Crosslink" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2580,-563 2370,-563 2370,-495 2580,-495 2580,-563"/>
<text text-anchor="middle" x="2475" y="-547.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#70</text>
<text text-anchor="middle" x="2475" y="-532.8" font-family="Times,serif" font-size="14.00">Adapt CometBFT (formerly</text>
<text text-anchor="middle" x="2475" y="-517.8" font-family="Times,serif" font-size="14.00">TendermintBFT) into</text>
<text text-anchor="middle" x="2475" y="-502.8" font-family="Times,serif" font-size="14.00">Crosslink</text>
</a>
</g>
</g>
<!-- ECC/simtfl#11&#45;&gt;ECC/tfl&#45;book#70 -->
<g id="edge7" class="edge">
<title>ECC/simtfl#11&#45;&gt;ECC/tfl&#45;book#70</title>
<path fill="none" stroke="black" d="M2327.7,-530.92C2338.1,-530.78 2348.8,-530.64 2359.6,-530.5"/>
<polygon fill="black" stroke="black" points="2359.95,-534 2369.9,-530.36 2359.85,-527 2359.95,-534"/>
</g>
<!-- ECC/simtfl#17 -->
<g id="node9" class="node open">
<title>ECC/simtfl#17</title>
<g id="a_node9"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/17" xlink:title="ECC/simtfl#17&#10;simtfl 1.0.0&#10;(corresponding to Design&#10;and Implementation Phase&#10;4)" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2824,-752.5 2616,-752.5 2616,-669.5 2824,-669.5 2824,-752.5"/>
<text text-anchor="middle" x="2720" y="-737.3" font-family="Times,serif" font-size="14.00">ECC/simtfl#17</text>
<text text-anchor="middle" x="2720" y="-722.3" font-family="Times,serif" font-size="14.00">simtfl 1.0.0</text>
<text text-anchor="middle" x="2720" y="-707.3" font-family="Times,serif" font-size="14.00">(corresponding to Design</text>
<text text-anchor="middle" x="2720" y="-692.3" font-family="Times,serif" font-size="14.00">and Implementation Phase</text>
<text text-anchor="middle" x="2720" y="-677.3" font-family="Times,serif" font-size="14.00">4)</text>
</a>
</g>
</g>
<!-- ECC/simtfl#11&#45;&gt;ECC/simtfl#17 -->
<g id="edge8" class="edge">
<title>ECC/simtfl#11&#45;&gt;ECC/simtfl#17</title>
<path fill="none" stroke="black" d="M2292.5,-558.66C2308,-568.92 2324.4,-581.66 2337,-596 2358.1,-620.07 2344,-641.41 2370,-660 2407,-686.39 2518.3,-699.32 2605.4,-705.53"/>
<polygon fill="black" stroke="black" points="2605.38,-709.04 2615.6,-706.24 2605.87,-702.05 2605.38,-709.04"/>
</g>
<!-- ECC/tfl&#45;book#5 -->
<g id="node10" class="node open">
<title>ECC/tfl&#45;book#5</title>
<g id="a_node10"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/5" xlink:title="ECC/tfl&#45;book#5&#10;Prototype CometBFT&#10;(formerly TendermintBFT)&#10;as the finality&#10;subprotocol." target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2822.5,-564.5 2617.5,-564.5 2617.5,-481.5 2822.5,-481.5 2822.5,-564.5"/>
<text text-anchor="middle" x="2720" y="-549.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#5</text>
<text text-anchor="middle" x="2720" y="-534.3" font-family="Times,serif" font-size="14.00">Prototype CometBFT</text>
<text text-anchor="middle" x="2720" y="-519.3" font-family="Times,serif" font-size="14.00">(formerly TendermintBFT)</text>
<text text-anchor="middle" x="2720" y="-504.3" font-family="Times,serif" font-size="14.00">as the finality</text>
<text text-anchor="middle" x="2720" y="-489.3" font-family="Times,serif" font-size="14.00">subprotocol.</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#70&#45;&gt;ECC/tfl&#45;book#5 -->
<g id="edge9" class="edge">
<title>ECC/tfl&#45;book#70&#45;&gt;ECC/tfl&#45;book#5</title>
<path fill="none" stroke="black" d="M2580.1,-526.43C2589.1,-526.21 2598.2,-525.98 2607.3,-525.76"/>
<polygon fill="black" stroke="black" points="2607.49,-529.26 2617.4,-525.51 2607.32,-522.26 2607.49,-529.26"/>
</g>
<!-- ECC/tfl&#45;book#116 -->
<g id="node11" class="node open">
<title>ECC/tfl&#45;book#116</title>
<g id="a_node11"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/116" xlink:title="ECC/tfl&#45;book#116&#10;Evaluate PoS subprotocol&#10;candidates and their&#10;Crosslink adaptations" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2820,-651 2620,-651 2620,-583 2820,-583 2820,-651"/>
<text text-anchor="middle" x="2720" y="-635.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#116</text>
<text text-anchor="middle" x="2720" y="-620.8" font-family="Times,serif" font-size="14.00">Evaluate PoS subprotocol</text>
<text text-anchor="middle" x="2720" y="-605.8" font-family="Times,serif" font-size="14.00">candidates and their</text>
<text text-anchor="middle" x="2720" y="-590.8" font-family="Times,serif" font-size="14.00">Crosslink adaptations</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#70&#45;&gt;ECC/tfl&#45;book#116 -->
<g id="edge10" class="edge">
<title>ECC/tfl&#45;book#70&#45;&gt;ECC/tfl&#45;book#116</title>
<path fill="none" stroke="black" d="M2570,-563.02C2584.7,-568.38 2600.1,-573.94 2615.1,-579.38"/>
<polygon fill="black" stroke="black" points="2614.31,-582.81 2624.9,-582.92 2616.68,-576.23 2614.31,-582.81"/>
</g>
<!-- ECC/simtfl#17&#45;&gt;ECC/tfl&#45;book#84 -->
<g id="edge11" class="edge">
<title>ECC/simtfl#17&#45;&gt;ECC/tfl&#45;book#84</title>
<path fill="none" stroke="black" d="M2824.2,-688.94C2832.8,-687.11 2841.5,-685.26 2849.9,-683.45"/>
<polygon fill="black" stroke="black" points="2850.75,-686.85 2859.8,-681.34 2849.29,-680 2850.75,-686.85"/>
</g>
<!-- ECC/tfl&#45;book#5&#45;&gt;ECC/tfl&#45;book#84 -->
<g id="edge12" class="edge">
<title>ECC/tfl&#45;book#5&#45;&gt;ECC/tfl&#45;book#84</title>
<path fill="none" stroke="black" d="M2807.9,-564.5C2813.4,-567.6 2818.8,-570.78 2824,-574 2851.3,-591.03 2880,-613.01 2902.1,-630.99"/>
<polygon fill="black" stroke="black" points="2899.95,-633.76 2909.9,-637.41 2904.4,-628.35 2899.95,-633.76"/>
</g>
<!-- ECC/tfl&#45;book#116&#45;&gt;ECC/tfl&#45;book#84 -->
<g id="edge13" class="edge">
<title>ECC/tfl&#45;book#116&#45;&gt;ECC/tfl&#45;book#84</title>
<path fill="none" stroke="black" d="M2820.1,-638.16C2830.1,-640.3 2840.2,-642.46 2850.1,-644.58"/>
<polygon fill="black" stroke="black" points="2849.39,-648.01 2859.9,-646.68 2850.86,-641.16 2849.39,-648.01"/>
</g>
<!-- ECC/tfl&#45;book#39 -->
<g id="node12" class="node open">
<title>ECC/tfl&#45;book#39</title>
<g id="a_node12"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/39" xlink:title="ECC/tfl&#45;book#39&#10;Analyze Attack Scenario:&#10;Compromised Finality&#10;Oracle + Miner only&#10;finalizes that miner&#39;s&#10;blocks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2106,-579 1912,-579 1912,-481 2106,-481 2106,-579"/>
<text text-anchor="middle" x="2009" y="-563.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#39</text>
<text text-anchor="middle" x="2009" y="-548.8" font-family="Times,serif" font-size="14.00">Analyze Attack Scenario:</text>
<text text-anchor="middle" x="2009" y="-533.8" font-family="Times,serif" font-size="14.00">Compromised Finality</text>
<text text-anchor="middle" x="2009" y="-518.8" font-family="Times,serif" font-size="14.00">Oracle + Miner only</text>
<text text-anchor="middle" x="2009" y="-503.8" font-family="Times,serif" font-size="14.00">finalizes that miner&#39;s</text>
<text text-anchor="middle" x="2009" y="-488.8" font-family="Times,serif" font-size="14.00">blocks</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#39&#45;&gt;ECC/simtfl#11 -->
<g id="edge14" class="edge">
<title>ECC/tfl&#45;book#39&#45;&gt;ECC/simtfl#11</title>
<path fill="none" stroke="black" d="M2106.1,-530.83C2120.8,-530.95 2135.9,-531.08 2150.5,-531.21"/>
<polygon fill="black" stroke="black" points="2150.47,-534.71 2160.5,-531.29 2150.53,-527.71 2150.47,-534.71"/>
</g>
<!-- ECC/tfl&#45;book#111 -->
<g id="node13" class="node open">
<title>ECC/tfl&#45;book#111</title>
<g id="a_node13"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/111" xlink:title="ECC/tfl&#45;book#111&#10;How can HotStuff be&#10;described in Crosslink&#39;s&#10;BFT model?" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="2568.5,-651 2381.5,-651 2381.5,-583 2568.5,-583 2568.5,-651"/>
<text text-anchor="middle" x="2475" y="-635.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#111</text>
<text text-anchor="middle" x="2475" y="-620.8" font-family="Times,serif" font-size="14.00">How can HotStuff be</text>
<text text-anchor="middle" x="2475" y="-605.8" font-family="Times,serif" font-size="14.00">described in Crosslink&#39;s</text>
<text text-anchor="middle" x="2475" y="-590.8" font-family="Times,serif" font-size="14.00">BFT model?</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#111&#45;&gt;ECC/tfl&#45;book#116 -->
<g id="edge15" class="edge">
<title>ECC/tfl&#45;book#111&#45;&gt;ECC/tfl&#45;book#116</title>
<path fill="none" stroke="black" d="M2568.6,-617C2581.9,-617 2595.8,-617 2609.4,-617"/>
<polygon fill="black" stroke="black" points="2609.8,-620.5 2619.8,-617 2609.8,-613.5 2609.8,-620.5"/>
</g>
<!-- ECC/tfl&#45;book#132 -->
<g id="node14" class="node open">
<title>ECC/tfl&#45;book#132</title>
<g id="a_node14"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/132" xlink:title="ECC/tfl&#45;book#132&#10;Does the issue about&#10;block chains not being&#10;one&#45;shot invalidate the&#10;liveness analysis for&#10;Snap&#45;and&#45;Chat?" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="2334,-703 2154,-703 2154,-605 2334,-605 2334,-703"/>
<text text-anchor="middle" x="2244" y="-687.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#132</text>
<text text-anchor="middle" x="2244" y="-672.8" font-family="Times,serif" font-size="14.00">Does the issue about</text>
<text text-anchor="middle" x="2244" y="-657.8" font-family="Times,serif" font-size="14.00">block chains not being</text>
<text text-anchor="middle" x="2244" y="-642.8" font-family="Times,serif" font-size="14.00">one&#45;shot invalidate the</text>
<text text-anchor="middle" x="2244" y="-627.8" font-family="Times,serif" font-size="14.00">liveness analysis for</text>
<text text-anchor="middle" x="2244" y="-612.8" font-family="Times,serif" font-size="14.00">Snap&#45;and&#45;Chat?</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#132&#45;&gt;ECC/tfl&#45;book#82 -->
<g id="edge16" class="edge">
<title>ECC/tfl&#45;book#132&#45;&gt;ECC/tfl&#45;book#82</title>
<path fill="none" stroke="black" d="M2334.2,-690.22C2349.4,-696.39 2365.2,-702.81 2380.5,-709.02"/>
<polygon fill="black" stroke="black" points="2379.32,-712.32 2389.9,-712.86 2381.97,-705.84 2379.32,-712.32"/>
</g>
<!-- ECC/zebra&#45;tfl#3 -->
<g id="node15" class="node open">
<title>ECC/zebra&#45;tfl#3</title>
<g id="a_node15"><a xlink:href="https://github.com/Electric-Coin-Company/zebra-tfl/issues/3" xlink:title="ECC/zebra&#45;tfl#3&#10;Add test harness" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="1835.5,-399 1698.5,-399 1698.5,-361 1835.5,-361 1835.5,-399"/>
<text text-anchor="middle" x="1767" y="-383.8" font-family="Times,serif" font-size="14.00">ECC/zebra&#45;tfl#3</text>
<text text-anchor="middle" x="1767" y="-368.8" font-family="Times,serif" font-size="14.00">Add test harness</text>
</a>
</g>
</g>
<!-- ECC/zebra&#45;tfl#1 -->
<g id="node16" class="node open">
<title>ECC/zebra&#45;tfl#1</title>
<g id="a_node16"><a xlink:href="https://github.com/Electric-Coin-Company/zebra-tfl/issues/1" xlink:title="ECC/zebra&#45;tfl#1&#10;Prototype release 0.1" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2094,-343 1924,-343 1924,-305 2094,-305 2094,-343"/>
<text text-anchor="middle" x="2009" y="-327.8" font-family="Times,serif" font-size="14.00">ECC/zebra&#45;tfl#1</text>
<text text-anchor="middle" x="2009" y="-312.8" font-family="Times,serif" font-size="14.00">Prototype release 0.1</text>
</a>
</g>
</g>
<!-- ECC/zebra&#45;tfl#3&#45;&gt;ECC/zebra&#45;tfl#1 -->
<g id="edge17" class="edge">
<title>ECC/zebra&#45;tfl#3&#45;&gt;ECC/zebra&#45;tfl#1</title>
<path fill="none" stroke="black" d="M1835.8,-364.18C1860.9,-358.33 1889.7,-351.6 1916.5,-345.35"/>
<polygon fill="black" stroke="black" points="1917.36,-348.74 1926.3,-343.06 1915.77,-341.93 1917.36,-348.74"/>
</g>
<!-- ECC/zebra&#45;tfl#4 -->
<g id="node42" class="node open">
<title>ECC/zebra&#45;tfl#4</title>
<g id="a_node42"><a xlink:href="https://github.com/Electric-Coin-Company/zebra-tfl/issues/4" xlink:title="ECC/zebra&#45;tfl#4&#10;Prototype release 0.x&#10;(for phase 2)" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="2329,-248.5 2159,-248.5 2159,-195.5 2329,-195.5 2329,-248.5"/>
<text text-anchor="middle" x="2244" y="-233.3" font-family="Times,serif" font-size="14.00">ECC/zebra&#45;tfl#4</text>
<text text-anchor="middle" x="2244" y="-218.3" font-family="Times,serif" font-size="14.00">Prototype release 0.x</text>
<text text-anchor="middle" x="2244" y="-203.3" font-family="Times,serif" font-size="14.00">(for phase 2)</text>
</a>
</g>
</g>
<!-- ECC/zebra&#45;tfl#1&#45;&gt;ECC/zebra&#45;tfl#4 -->
<g id="edge46" class="edge">
<title>ECC/zebra&#45;tfl#1&#45;&gt;ECC/zebra&#45;tfl#4</title>
<path fill="none" stroke="black" d="M2064.8,-304.97C2082,-298.67 2100.9,-291.37 2118,-284 2139.7,-274.63 2163,-263.4 2183.6,-253.08"/>
<polygon fill="black" stroke="black" points="2185.16,-256.21 2192.5,-248.57 2182,-249.97 2185.16,-256.21"/>
</g>
<!-- ECC/zebra&#45;tfl#6 -->
<g id="node17" class="node open">
<title>ECC/zebra&#45;tfl#6</title>
<g id="a_node17"><a xlink:href="https://github.com/Electric-Coin-Company/zebra-tfl/issues/6" xlink:title="ECC/zebra&#45;tfl#6&#10;Create a testnet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="1833.5,-343 1700.5,-343 1700.5,-305 1833.5,-305 1833.5,-343"/>
<text text-anchor="middle" x="1767" y="-327.8" font-family="Times,serif" font-size="14.00">ECC/zebra&#45;tfl#6</text>
<text text-anchor="middle" x="1767" y="-312.8" font-family="Times,serif" font-size="14.00">Create a testnet</text>
</a>
</g>
</g>
<!-- ECC/zebra&#45;tfl#6&#45;&gt;ECC/zebra&#45;tfl#1 -->
<g id="edge18" class="edge">
<title>ECC/zebra&#45;tfl#6&#45;&gt;ECC/zebra&#45;tfl#1</title>
<path fill="none" stroke="black" d="M1833.6,-324C1858.3,-324 1887,-324 1913.8,-324"/>
<polygon fill="black" stroke="black" points="1914,-327.5 1924,-324 1914,-320.5 1914,-327.5"/>
</g>
<!-- ECC/tfl&#45;book#86 -->
<g id="node18" class="node open">
<title>ECC/tfl&#45;book#86</title>
<g id="a_node18"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/86" xlink:title="ECC/tfl&#45;book#86&#10;Define macros so that we&#10;can easily use Crosslink&#10;notation in the book" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="448.5,-133 251.5,-133 251.5,-65 448.5,-65 448.5,-133"/>
<text text-anchor="middle" x="350" y="-117.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#86</text>
<text text-anchor="middle" x="350" y="-102.8" font-family="Times,serif" font-size="14.00">Define macros so that we</text>
<text text-anchor="middle" x="350" y="-87.8" font-family="Times,serif" font-size="14.00">can easily use Crosslink</text>
<text text-anchor="middle" x="350" y="-72.8" font-family="Times,serif" font-size="14.00">notation in the book</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#142 -->
<g id="node19" class="node open">
<title>ECC/tfl&#45;book#142</title>
<g id="a_node19"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/142" xlink:title="ECC/tfl&#45;book#142&#10;Write up Crosslink 2" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="685,-118 522,-118 522,-80 685,-80 685,-118"/>
<text text-anchor="middle" x="603.5" y="-102.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#142</text>
<text text-anchor="middle" x="603.5" y="-87.8" font-family="Times,serif" font-size="14.00">Write up Crosslink 2</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#86&#45;&gt;ECC/tfl&#45;book#142 -->
<g id="edge19" class="edge">
<title>ECC/tfl&#45;book#86&#45;&gt;ECC/tfl&#45;book#142</title>
<path fill="none" stroke="black" d="M448.6,-99C469.27,-99 491.01,-99 511.43,-99"/>
<polygon fill="black" stroke="black" points="511.65,-102.5 521.65,-99 511.65,-95.5 511.65,-102.5"/>
</g>
<!-- ECC/tfl&#45;book#99 -->
<g id="node20" class="node open">
<title>ECC/tfl&#45;book#99</title>
<g id="a_node20"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/99" xlink:title="ECC/tfl&#45;book#99&#10;Design Milestone 2 &#45; tfl&#45;&#10;book v0.2.0 &#45; Integrated&#10;Crosslink" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="943.5,-306 940.5,-310 919.5,-310 916.5,-306 755.5,-306 755.5,-238 943.5,-238 943.5,-306"/>
<text text-anchor="middle" x="849.5" y="-290.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#99</text>
<text text-anchor="middle" x="849.5" y="-275.8" font-family="Times,serif" font-size="14.00">Design Milestone 2 &#45; tfl&#45;</text>
<text text-anchor="middle" x="849.5" y="-260.8" font-family="Times,serif" font-size="14.00">book v0.2.0 &#45; Integrated</text>
<text text-anchor="middle" x="849.5" y="-245.8" font-family="Times,serif" font-size="14.00">Crosslink</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#142&#45;&gt;ECC/tfl&#45;book#99 -->
<g id="edge20" class="edge">
<title>ECC/tfl&#45;book#142&#45;&gt;ECC/tfl&#45;book#99</title>
<path fill="none" stroke="black" d="M685.18,-113.57C695.6,-117.12 705.82,-121.53 715,-127 758.17,-152.73 795.75,-196.66 819.94,-229.44"/>
<polygon fill="black" stroke="black" points="817.4,-231.9 826.1,-237.95 823.07,-227.8 817.4,-231.9"/>
</g>
<!-- ECC/tfl&#45;book#71 -->
<g id="node33" class="node open">
<title>ECC/tfl&#45;book#71</title>
<g id="a_node33"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/71" xlink:title="ECC/tfl&#45;book#71&#10;Analyze Crosslink against&#10;a set of known PoS&#10;attacks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="1184,-734 984,-734 984,-666 1184,-666 1184,-734"/>
<text text-anchor="middle" x="1084" y="-718.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#71</text>
<text text-anchor="middle" x="1084" y="-703.8" font-family="Times,serif" font-size="14.00">Analyze Crosslink against</text>
<text text-anchor="middle" x="1084" y="-688.8" font-family="Times,serif" font-size="14.00">a set of known PoS</text>
<text text-anchor="middle" x="1084" y="-673.8" font-family="Times,serif" font-size="14.00">attacks</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#99&#45;&gt;ECC/tfl&#45;book#71 -->
<g id="edge49" class="edge">
<title>ECC/tfl&#45;book#99&#45;&gt;ECC/tfl&#45;book#71</title>
<path fill="none" stroke="black" d="M916.36,-306.14C930.57,-315.89 944.47,-327.57 955,-341 1030.9,-437.79 1064,-583.26 1076.5,-655.72"/>
<polygon fill="black" stroke="black" points="1073.09,-656.58 1078.2,-665.86 1080,-655.42 1073.09,-656.58"/>
</g>
<!-- ECC/tfl&#45;book#72 -->
<g id="node38" class="node open">
<title>ECC/tfl&#45;book#72</title>
<g id="a_node38"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/72" xlink:title="ECC/tfl&#45;book#72&#10;Analyze Crosslink against&#10;a set of known PoW&#10;attacks." target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="1184,-820 984,-820 984,-752 1184,-752 1184,-820"/>
<text text-anchor="middle" x="1084" y="-804.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#72</text>
<text text-anchor="middle" x="1084" y="-789.8" font-family="Times,serif" font-size="14.00">Analyze Crosslink against</text>
<text text-anchor="middle" x="1084" y="-774.8" font-family="Times,serif" font-size="14.00">a set of known PoW</text>
<text text-anchor="middle" x="1084" y="-759.8" font-family="Times,serif" font-size="14.00">attacks.</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#99&#45;&gt;ECC/tfl&#45;book#72 -->
<g id="edge50" class="edge">
<title>ECC/tfl&#45;book#99&#45;&gt;ECC/tfl&#45;book#72</title>
<path fill="none" stroke="black" d="M921.8,-306.18C934.88,-315.65 946.93,-327.21 955,-341 1000.2,-418.29 932.21,-669.92 984,-743 984.28,-743.4 984.57,-743.8 984.87,-744.19"/>
<polygon fill="black" stroke="black" points="982.43,-746.71 991.64,-751.94 987.7,-742.11 982.43,-746.71"/>
</g>
<!-- ECC/tfl&#45;book#99&#45;&gt;ECC/zebra&#45;tfl#4 -->
<g id="edge48" class="edge">
<title>ECC/tfl&#45;book#99&#45;&gt;ECC/zebra&#45;tfl#4</title>
<path fill="none" stroke="black" d="M943.77,-273.59C1037.8,-275.05 1187.3,-277 1316.5,-277 1316.5,-277 1316.5,-277 1768,-277 1923.8,-277 1964.4,-283.94 2118,-258 2128.7,-256.2 2139.7,-253.82 2150.6,-251.13"/>
<polygon fill="black" stroke="black" points="2151.77,-254.44 2160.6,-248.58 2150.05,-247.66 2151.77,-254.44"/>
</g>
<!-- ECC/tfl&#45;book#77 -->
<g id="node21" class="node open">
<title>ECC/tfl&#45;book#77</title>
<g id="a_node21"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/77" xlink:title="ECC/tfl&#45;book#77&#10;Add &quot;Avoided Terms&quot;&#10;section in &quot;Terminology&quot;" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="699.5,-61.5 507.5,-61.5 507.5,-8.5 699.5,-8.5 699.5,-61.5"/>
<text text-anchor="middle" x="603.5" y="-46.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#77</text>
<text text-anchor="middle" x="603.5" y="-31.3" font-family="Times,serif" font-size="14.00">Add &quot;Avoided Terms&quot;</text>
<text text-anchor="middle" x="603.5" y="-16.3" font-family="Times,serif" font-size="14.00">section in &quot;Terminology&quot;</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#77&#45;&gt;ECC/tfl&#45;book#99 -->
<g id="edge21" class="edge">
<title>ECC/tfl&#45;book#77&#45;&gt;ECC/tfl&#45;book#99</title>
<path fill="none" stroke="black" d="M699.53,-61.07C704.97,-64.04 710.18,-67.34 715,-71 769.5,-112.41 808.81,-182.83 830.12,-228.37"/>
<polygon fill="black" stroke="black" points="827.04,-230.06 834.39,-237.69 833.41,-227.14 827.04,-230.06"/>
</g>
<!-- ECC/tfl&#45;book#25 -->
<g id="node22" class="node open">
<title>ECC/tfl&#45;book#25</title>
<g id="a_node22"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/25" xlink:title="ECC/tfl&#45;book#25&#10;Add style guide / textual&#10;conventions." target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="699,-305.5 508,-305.5 508,-252.5 699,-252.5 699,-305.5"/>
<text text-anchor="middle" x="603.5" y="-290.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#25</text>
<text text-anchor="middle" x="603.5" y="-275.3" font-family="Times,serif" font-size="14.00">Add style guide / textual</text>
<text text-anchor="middle" x="603.5" y="-260.3" font-family="Times,serif" font-size="14.00">conventions.</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#25&#45;&gt;ECC/tfl&#45;book#99 -->
<g id="edge22" class="edge">
<title>ECC/tfl&#45;book#25&#45;&gt;ECC/tfl&#45;book#99</title>
<path fill="none" stroke="black" d="M699.19,-276.28C714.35,-275.85 730.11,-275.4 745.46,-274.96"/>
<polygon fill="black" stroke="black" points="745.58,-278.46 755.47,-274.67 745.37,-271.46 745.58,-278.46"/>
</g>
<!-- ECC/tfl&#45;book#119 -->
<g id="node23" class="node open">
<title>ECC/tfl&#45;book#119</title>
<g id="a_node23"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/119" xlink:title="ECC/tfl&#45;book#119&#10;Clarify the distinctions&#10;between pure PoW, the PoW&#10;subprotocol, NU6, and&#10;fork&#45;choice vs all of&#10;transaction semantics" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="712,-234 495,-234 495,-136 712,-136 712,-234"/>
<text text-anchor="middle" x="603.5" y="-218.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#119</text>
<text text-anchor="middle" x="603.5" y="-203.8" font-family="Times,serif" font-size="14.00">Clarify the distinctions</text>
<text text-anchor="middle" x="603.5" y="-188.8" font-family="Times,serif" font-size="14.00">between pure PoW, the PoW</text>
<text text-anchor="middle" x="603.5" y="-173.8" font-family="Times,serif" font-size="14.00">subprotocol, NU6, and</text>
<text text-anchor="middle" x="603.5" y="-158.8" font-family="Times,serif" font-size="14.00">fork&#45;choice vs all of</text>
<text text-anchor="middle" x="603.5" y="-143.8" font-family="Times,serif" font-size="14.00">transaction semantics</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#119&#45;&gt;ECC/tfl&#45;book#99 -->
<g id="edge23" class="edge">
<title>ECC/tfl&#45;book#119&#45;&gt;ECC/tfl&#45;book#99</title>
<path fill="none" stroke="black" d="M712.23,-223.41C723.39,-227.39 734.71,-231.43 745.81,-235.38"/>
<polygon fill="black" stroke="black" points="744.91,-238.77 755.5,-238.84 747.26,-232.18 744.91,-238.77"/>
</g>
<!-- ECC/simtfl#7 -->
<g id="node24" class="node open">
<title>ECC/simtfl#7</title>
<g id="a_node24"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/7" xlink:title="ECC/simtfl#7&#10;Define BC abstractions&#10;and PoW (honest behaviour&#10;only)" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="456,-533 244,-533 244,-465 456,-465 456,-533"/>
<text text-anchor="middle" x="350" y="-517.8" font-family="Times,serif" font-size="14.00">ECC/simtfl#7</text>
<text text-anchor="middle" x="350" y="-502.8" font-family="Times,serif" font-size="14.00">Define BC abstractions</text>
<text text-anchor="middle" x="350" y="-487.8" font-family="Times,serif" font-size="14.00">and PoW (honest behaviour</text>
<text text-anchor="middle" x="350" y="-472.8" font-family="Times,serif" font-size="14.00">only)</text>
</a>
</g>
</g>
<!-- ECC/simtfl#8 -->
<g id="node25" class="node open">
<title>ECC/simtfl#8</title>
<g id="a_node25"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/8" xlink:title="ECC/simtfl#8&#10;Define Crosslink (honest&#10;behaviour only)" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="699,-501.5 508,-501.5 508,-448.5 699,-448.5 699,-501.5"/>
<text text-anchor="middle" x="603.5" y="-486.3" font-family="Times,serif" font-size="14.00">ECC/simtfl#8</text>
<text text-anchor="middle" x="603.5" y="-471.3" font-family="Times,serif" font-size="14.00">Define Crosslink (honest</text>
<text text-anchor="middle" x="603.5" y="-456.3" font-family="Times,serif" font-size="14.00">behaviour only)</text>
</a>
</g>
</g>
<!-- ECC/simtfl#7&#45;&gt;ECC/simtfl#8 -->
<g id="edge24" class="edge">
<title>ECC/simtfl#7&#45;&gt;ECC/simtfl#8</title>
<path fill="none" stroke="black" d="M456.2,-488.96C469.82,-487.66 483.78,-486.33 497.4,-485.03"/>
<polygon fill="black" stroke="black" points="498.12,-488.48 507.74,-484.04 497.45,-481.51 498.12,-488.48"/>
</g>
<!-- ECC/simtfl#9 -->
<g id="node26" class="node open">
<title>ECC/simtfl#9</title>
<g id="a_node26"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/9" xlink:title="ECC/simtfl#9&#10;Implement some known PoW&#10;attacks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="715,-572.5 492,-572.5 492,-519.5 715,-519.5 715,-572.5"/>
<text text-anchor="middle" x="603.5" y="-557.3" font-family="Times,serif" font-size="14.00">ECC/simtfl#9</text>
<text text-anchor="middle" x="603.5" y="-542.3" font-family="Times,serif" font-size="14.00">Implement some known PoW</text>
<text text-anchor="middle" x="603.5" y="-527.3" font-family="Times,serif" font-size="14.00">attacks</text>
</a>
</g>
</g>
<!-- ECC/simtfl#7&#45;&gt;ECC/simtfl#9 -->
<g id="edge25" class="edge">
<title>ECC/simtfl#7&#45;&gt;ECC/simtfl#9</title>
<path fill="none" stroke="black" d="M456.2,-518.66C464.62,-520.23 473.16,-521.83 481.67,-523.42"/>
<polygon fill="black" stroke="black" points="481.18,-526.89 491.65,-525.28 482.46,-520.01 481.18,-526.89"/>
</g>
<!-- ECC/simtfl#14 -->
<g id="node27" class="node open">
<title>ECC/simtfl#14</title>
<g id="a_node27"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/14" xlink:title="ECC/simtfl#14&#10;simtfl 0.2.0&#10;(corresponding to&#10;Implementation Phase 1:&#10;Simulation Codebase)" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="947,-587.5 944,-591.5 923,-591.5 920,-587.5 752,-587.5 752,-504.5 947,-504.5 947,-587.5"/>
<text text-anchor="middle" x="849.5" y="-572.3" font-family="Times,serif" font-size="14.00">ECC/simtfl#14</text>
<text text-anchor="middle" x="849.5" y="-557.3" font-family="Times,serif" font-size="14.00">simtfl 0.2.0</text>
<text text-anchor="middle" x="849.5" y="-542.3" font-family="Times,serif" font-size="14.00">(corresponding to</text>
<text text-anchor="middle" x="849.5" y="-527.3" font-family="Times,serif" font-size="14.00">Implementation Phase 1:</text>
<text text-anchor="middle" x="849.5" y="-512.3" font-family="Times,serif" font-size="14.00">Simulation Codebase)</text>
</a>
</g>
</g>
<!-- ECC/simtfl#8&#45;&gt;ECC/simtfl#14 -->
<g id="edge26" class="edge">
<title>ECC/simtfl#8&#45;&gt;ECC/simtfl#14</title>
<path fill="none" stroke="black" d="M695.7,-501.54C710.69,-505.9 726.35,-510.46 741.68,-514.92"/>
<polygon fill="black" stroke="black" points="741.11,-518.4 751.69,-517.83 743.06,-511.68 741.11,-518.4"/>
</g>
<!-- ECC/simtfl#9&#45;&gt;ECC/simtfl#14 -->
<g id="edge27" class="edge">
<title>ECC/simtfl#9&#45;&gt;ECC/simtfl#14</title>
<path fill="none" stroke="black" d="M715.08,-546C723.87,-546 732.74,-546 741.51,-546"/>
<polygon fill="black" stroke="black" points="741.74,-549.5 751.74,-546 741.74,-542.5 741.74,-549.5"/>
</g>
<!-- ECC/simtfl#14&#45;&gt;ECC/tfl&#45;book#71 -->
<g id="edge51" class="edge">
<title>ECC/simtfl#14&#45;&gt;ECC/tfl&#45;book#71</title>
<path fill="none" stroke="black" d="M913.42,-587.67C947.51,-610.26 989.42,-638.02 1023,-660.29"/>
<polygon fill="black" stroke="black" points="1021.12,-663.24 1031.4,-665.82 1024.97,-657.4 1021.12,-663.24"/>
</g>
<!-- ECC/simtfl#14&#45;&gt;ECC/tfl&#45;book#72 -->
<g id="edge52" class="edge">
<title>ECC/simtfl#14&#45;&gt;ECC/tfl&#45;book#72</title>
<path fill="none" stroke="black" d="M899.52,-587.58C919.01,-606.23 940.26,-629.53 955,-654 976.46,-689.64 956.01,-712.22 984,-743 984.63,-743.7 985.28,-744.38 985.94,-745.06"/>
<polygon fill="black" stroke="black" points="983.74,-747.79 993.5,-751.9 988.43,-742.6 983.74,-747.79"/>
</g>
<!-- ECC/simtfl#15 -->
<g id="node28" class="node open">
<title>ECC/simtfl#15</title>
<g id="a_node28"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/15" xlink:title="ECC/simtfl#15&#10;Design/document the&#10;network layer used in the&#10;simulation" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="208,-462 8,-462 8,-394 208,-394 208,-462"/>
<text text-anchor="middle" x="108" y="-446.8" font-family="Times,serif" font-size="14.00">ECC/simtfl#15</text>
<text text-anchor="middle" x="108" y="-431.8" font-family="Times,serif" font-size="14.00">Design/document the</text>
<text text-anchor="middle" x="108" y="-416.8" font-family="Times,serif" font-size="14.00">network layer used in the</text>
<text text-anchor="middle" x="108" y="-401.8" font-family="Times,serif" font-size="14.00">simulation</text>
</a>
</g>
</g>
<!-- ECC/simtfl#16 -->
<g id="node29" class="node open">
<title>ECC/simtfl#16</title>
<g id="a_node29"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/16" xlink:title="ECC/simtfl#16&#10;Implement network layer" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="448.5,-447 251.5,-447 251.5,-409 448.5,-409 448.5,-447"/>
<text text-anchor="middle" x="350" y="-431.8" font-family="Times,serif" font-size="14.00">ECC/simtfl#16</text>
<text text-anchor="middle" x="350" y="-416.8" font-family="Times,serif" font-size="14.00">Implement network layer</text>
</a>
</g>
</g>
<!-- ECC/simtfl#15&#45;&gt;ECC/simtfl#16 -->
<g id="edge28" class="edge">
<title>ECC/simtfl#15&#45;&gt;ECC/simtfl#16</title>
<path fill="none" stroke="black" d="M208,-428C218.98,-428 230.19,-428 241.27,-428"/>
<polygon fill="black" stroke="black" points="241.39,-431.5 251.39,-428 241.39,-424.5 241.39,-431.5"/>
</g>
<!-- ECC/simtfl#16&#45;&gt;ECC/simtfl#8 -->
<g id="edge29" class="edge">
<title>ECC/simtfl#16&#45;&gt;ECC/simtfl#8</title>
<path fill="none" stroke="black" d="M448.6,-446.24C464.72,-449.25 481.49,-452.39 497.78,-455.43"/>
<polygon fill="black" stroke="black" points="497.38,-458.92 507.85,-457.31 498.66,-452.03 497.38,-458.92"/>
</g>
<!-- ECC/simtfl#16&#45;&gt;ECC/simtfl#9 -->
<g id="edge30" class="edge">
<title>ECC/simtfl#16&#45;&gt;ECC/simtfl#9</title>
<path fill="none" stroke="black" d="M441.03,-447.06C446.29,-449.66 451.34,-452.63 456,-456 479.68,-473.12 468.72,-493.34 492,-511 493.38,-512.05 494.79,-513.06 496.23,-514.04"/>
<polygon fill="black" stroke="black" points="494.41,-517.03 504.75,-519.36 498.12,-511.09 494.41,-517.03"/>
</g>
<!-- ECC/simtfl#10 -->
<g id="node30" class="node open">
<title>ECC/simtfl#10</title>
<g id="a_node30"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/10" xlink:title="ECC/simtfl#10&#10;Implement some known BFT&#10;and/or PoS attacks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="714,-430.5 493,-430.5 493,-377.5 714,-377.5 714,-430.5"/>
<text text-anchor="middle" x="603.5" y="-415.3" font-family="Times,serif" font-size="14.00">ECC/simtfl#10</text>
<text text-anchor="middle" x="603.5" y="-400.3" font-family="Times,serif" font-size="14.00">Implement some known BFT</text>
<text text-anchor="middle" x="603.5" y="-385.3" font-family="Times,serif" font-size="14.00">and/or PoS attacks</text>
</a>
</g>
</g>
<!-- ECC/simtfl#16&#45;&gt;ECC/simtfl#10 -->
<g id="edge31" class="edge">
<title>ECC/simtfl#16&#45;&gt;ECC/simtfl#10</title>
<path fill="none" stroke="black" d="M448.6,-418.69C459.81,-417.62 471.34,-416.52 482.8,-415.42"/>
<polygon fill="black" stroke="black" points="483.22,-418.9 492.84,-414.46 482.55,-411.93 483.22,-418.9"/>
</g>
<!-- ECC/simtfl#10&#45;&gt;ECC/simtfl#14 -->
<g id="edge32" class="edge">
<title>ECC/simtfl#10&#45;&gt;ECC/simtfl#14</title>
<path fill="none" stroke="black" d="M695.17,-430.57C702.01,-433.47 708.69,-436.61 715,-440 744.04,-455.6 773.09,-477.7 796.64,-497.69"/>
<polygon fill="black" stroke="black" points="794.55,-500.5 804.41,-504.37 799.11,-495.2 794.55,-500.5"/>
</g>
<!-- ECC/simtfl#20 -->
<g id="node31" class="node open">
<title>ECC/simtfl#20</title>
<g id="a_node31"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/20" xlink:title="ECC/simtfl#20&#10;Add test coverage that&#10;ensures edge cases lead&#10;to invalid blocks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="445,-619 255,-619 255,-551 445,-551 445,-619"/>
<text text-anchor="middle" x="350" y="-603.8" font-family="Times,serif" font-size="14.00">ECC/simtfl#20</text>
<text text-anchor="middle" x="350" y="-588.8" font-family="Times,serif" font-size="14.00">Add test coverage that</text>
<text text-anchor="middle" x="350" y="-573.8" font-family="Times,serif" font-size="14.00">ensures edge cases lead</text>
<text text-anchor="middle" x="350" y="-558.8" font-family="Times,serif" font-size="14.00">to invalid blocks</text>
</a>
</g>
</g>
<!-- ECC/simtfl#20&#45;&gt;ECC/simtfl#9 -->
<g id="edge33" class="edge">
<title>ECC/simtfl#20&#45;&gt;ECC/simtfl#9</title>
<path fill="none" stroke="black" d="M445.01,-570.42C456.89,-568.58 469.17,-566.67 481.4,-564.78"/>
<polygon fill="black" stroke="black" points="482.3,-568.18 491.65,-563.19 481.23,-561.26 482.3,-568.18"/>
</g>
<!-- ECC/simtfl#25 -->
<g id="node32" class="node open">
<title>ECC/simtfl#25</title>
<g id="a_node32"><a xlink:href="https://github.com/Electric-Coin-Company/simtfl/issues/25" xlink:title="ECC/simtfl#25&#10;Finish Streamlet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="418.5,-391 281.5,-391 281.5,-353 418.5,-353 418.5,-391"/>
<text text-anchor="middle" x="350" y="-375.8" font-family="Times,serif" font-size="14.00">ECC/simtfl#25</text>
<text text-anchor="middle" x="350" y="-360.8" font-family="Times,serif" font-size="14.00">Finish Streamlet</text>
</a>
</g>
</g>
<!-- ECC/simtfl#25&#45;&gt;ECC/simtfl#8 -->
<g id="edge34" class="edge">
<title>ECC/simtfl#25&#45;&gt;ECC/simtfl#8</title>
<path fill="none" stroke="black" d="M418.63,-383.86C431.6,-387.81 444.66,-393.06 456,-400 476.4,-412.49 471.89,-427.05 492,-440 494.18,-441.41 496.43,-442.76 498.72,-444.06"/>
<polygon fill="black" stroke="black" points="497.3,-447.27 507.78,-448.84 500.57,-441.08 497.3,-447.27"/>
</g>
<!-- ECC/simtfl#25&#45;&gt;ECC/simtfl#10 -->
<g id="edge35" class="edge">
<title>ECC/simtfl#25&#45;&gt;ECC/simtfl#10</title>
<path fill="none" stroke="black" d="M418.73,-380.62C438.54,-383.14 460.8,-385.97 482.82,-388.77"/>
<polygon fill="black" stroke="black" points="482.55,-392.26 492.91,-390.06 483.43,-385.32 482.55,-392.26"/>
</g>
<!-- ECC/tfl&#45;book#123 -->
<g id="node34" class="node closed">
<title>ECC/tfl&#45;book#123</title>
<g id="a_node34"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/123" xlink:title="ECC/tfl&#45;book#123&#10;Explain why we&#39;re more&#10;confident in Crosslink&#10;security vs the other&#10;hybrid construction&#10;candidates" target="_blank">
<polygon fill="#fad8c7" stroke="black" points="1412,-815 1223,-815 1223,-717 1412,-717 1412,-815"/>
<text text-anchor="middle" x="1317.5" y="-799.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#123</text>
<text text-anchor="middle" x="1317.5" y="-784.8" font-family="Times,serif" font-size="14.00">Explain why we&#39;re more</text>
<text text-anchor="middle" x="1317.5" y="-769.8" font-family="Times,serif" font-size="14.00">confident in Crosslink</text>
<text text-anchor="middle" x="1317.5" y="-754.8" font-family="Times,serif" font-size="14.00">security vs the other</text>
<text text-anchor="middle" x="1317.5" y="-739.8" font-family="Times,serif" font-size="14.00">hybrid construction</text>
<text text-anchor="middle" x="1317.5" y="-724.8" font-family="Times,serif" font-size="14.00">candidates</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#71&#45;&gt;ECC/tfl&#45;book#123 -->
<g id="edge36" class="edge">
<title>ECC/tfl&#45;book#71&#45;&gt;ECC/tfl&#45;book#123</title>
<path fill="none" stroke="black" d="M1184.2,-728.28C1193.7,-730.98 1203.3,-733.72 1212.8,-736.43"/>
<polygon fill="black" stroke="black" points="1212.12,-739.88 1222.7,-739.25 1214.04,-733.14 1212.12,-739.88"/>
</g>
<!-- ECC/tfl&#45;book#81 -->
<g id="node35" class="node open">
<title>ECC/tfl&#45;book#81</title>
<g id="a_node35"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/81" xlink:title="ECC/tfl&#45;book#81&#10;Write up conclusions of&#10;analyzing Crosslink&#10;against some known&#10;attacks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="1634,-796.5 1451,-796.5 1451,-713.5 1634,-713.5 1634,-796.5"/>
<text text-anchor="middle" x="1542.5" y="-781.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#81</text>
<text text-anchor="middle" x="1542.5" y="-766.3" font-family="Times,serif" font-size="14.00">Write up conclusions of</text>
<text text-anchor="middle" x="1542.5" y="-751.3" font-family="Times,serif" font-size="14.00">analyzing Crosslink</text>
<text text-anchor="middle" x="1542.5" y="-736.3" font-family="Times,serif" font-size="14.00">against some known</text>
<text text-anchor="middle" x="1542.5" y="-721.3" font-family="Times,serif" font-size="14.00">attacks</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#123&#45;&gt;ECC/tfl&#45;book#81 -->
<g id="edge37" class="edge">
<title>ECC/tfl&#45;book#123&#45;&gt;ECC/tfl&#45;book#81</title>
<path fill="none" stroke="black" d="M1412.1,-761.38C1421.6,-760.92 1431.2,-760.44 1440.7,-759.97"/>
<polygon fill="black" stroke="black" points="1441.19,-763.45 1451,-759.46 1440.84,-756.46 1441.19,-763.45"/>
</g>
<!-- ECC/tfl&#45;book#137 -->
<g id="node36" class="node open">
<title>ECC/tfl&#45;book#137</title>
<g id="a_node36"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/137" xlink:title="ECC/tfl&#45;book#137&#10;Improve Goals,&#10;Requirements, and&#10;Desiderata" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="1618.5,-883 1466.5,-883 1466.5,-815 1618.5,-815 1618.5,-883"/>
<text text-anchor="middle" x="1542.5" y="-867.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#137</text>
<text text-anchor="middle" x="1542.5" y="-852.8" font-family="Times,serif" font-size="14.00">Improve Goals,</text>
<text text-anchor="middle" x="1542.5" y="-837.8" font-family="Times,serif" font-size="14.00">Requirements, and</text>
<text text-anchor="middle" x="1542.5" y="-822.8" font-family="Times,serif" font-size="14.00">Desiderata</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#123&#45;&gt;ECC/tfl&#45;book#137 -->
<g id="edge38" class="edge">
<title>ECC/tfl&#45;book#123&#45;&gt;ECC/tfl&#45;book#137</title>
<path fill="none" stroke="black" d="M1412.1,-800.84C1427,-806.37 1442.3,-812.06 1456.9,-817.51"/>
<polygon fill="black" stroke="black" points="1455.81,-820.84 1466.4,-821.05 1458.25,-814.28 1455.81,-820.84"/>
</g>
<!-- ECC/tfl&#45;book#136 -->
<g id="node37" class="node open">
<title>ECC/tfl&#45;book#136</title>
<g id="a_node37"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/136" xlink:title="ECC/tfl&#45;book#136&#10;Design Phase 3 &#45; tfl&#45;book&#10;v0.3.0 &#45; simtfl results &amp;&#10;PoS Goals / Reqs" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="1864,-789 1861,-793 1840,-793 1837,-789 1670,-789 1670,-721 1864,-721 1864,-789"/>
<text text-anchor="middle" x="1767" y="-773.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#136</text>
<text text-anchor="middle" x="1767" y="-758.8" font-family="Times,serif" font-size="14.00">Design Phase 3 &#45; tfl&#45;book</text>
<text text-anchor="middle" x="1767" y="-743.8" font-family="Times,serif" font-size="14.00">v0.3.0 &#45; simtfl results &amp;</text>
<text text-anchor="middle" x="1767" y="-728.8" font-family="Times,serif" font-size="14.00">PoS Goals / Reqs</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#81&#45;&gt;ECC/tfl&#45;book#136 -->
<g id="edge39" class="edge">
<title>ECC/tfl&#45;book#81&#45;&gt;ECC/tfl&#45;book#136</title>
<path fill="none" stroke="black" d="M1634.3,-755C1642.6,-755 1651,-755 1659.5,-755"/>
<polygon fill="black" stroke="black" points="1659.7,-758.5 1669.7,-755 1659.7,-751.5 1659.7,-758.5"/>
</g>
<!-- ECC/tfl&#45;book#137&#45;&gt;ECC/tfl&#45;book#136 -->
<g id="edge40" class="edge">
<title>ECC/tfl&#45;book#137&#45;&gt;ECC/tfl&#45;book#136</title>
<path fill="none" stroke="black" d="M1618.5,-817.31C1636.9,-809.52 1656.9,-801.1 1675.9,-793.05"/>
<polygon fill="black" stroke="black" points="1677.34,-796.24 1685.2,-789.13 1674.63,-789.79 1677.34,-796.24"/>
</g>
<!-- ECC/tfl&#45;book#136&#45;&gt;ECC/tfl&#45;book#42 -->
<g id="edge53" class="edge">
<title>ECC/tfl&#45;book#136&#45;&gt;ECC/tfl&#45;book#42</title>
<path fill="none" stroke="black" d="M1848.9,-789.05C1865.2,-795.91 1882.6,-803.23 1899.7,-810.41"/>
<polygon fill="black" stroke="black" points="1898.53,-813.71 1909.1,-814.39 1901.26,-807.27 1898.53,-813.71"/>
</g>
<!-- ECC/tfl&#45;book#136&#45;&gt;ECC/tfl&#45;book#47 -->
<g id="edge54" class="edge">
<title>ECC/tfl&#45;book#136&#45;&gt;ECC/tfl&#45;book#47</title>
<path fill="none" stroke="black" d="M1864.2,-755C1877.6,-755 1891.5,-755 1905,-755"/>
<polygon fill="black" stroke="black" points="1905.3,-758.5 1915.3,-755 1905.3,-751.5 1905.3,-758.5"/>
</g>
<!-- ECC/tfl&#45;book#136&#45;&gt;ECC/tfl&#45;book#48 -->
<g id="edge55" class="edge">
<title>ECC/tfl&#45;book#136&#45;&gt;ECC/tfl&#45;book#48</title>
<path fill="none" stroke="black" d="M1843,-720.96C1858,-714.12 1874.2,-706.78 1890.3,-699.46"/>
<polygon fill="black" stroke="black" points="1892.13,-702.47 1899.8,-695.16 1889.25,-696.1 1892.13,-702.47"/>
</g>
<!-- ECC/tfl&#45;book#136&#45;&gt;ECC/tfl&#45;book#39 -->
<g id="edge56" class="edge">
<title>ECC/tfl&#45;book#136&#45;&gt;ECC/tfl&#45;book#39</title>
<path fill="none" stroke="black" d="M1786.8,-720.88C1808.3,-684.24 1846.5,-626.17 1892,-588 1895.7,-584.91 1899.6,-581.93 1903.6,-579.06"/>
<polygon fill="black" stroke="black" points="1905.7,-581.86 1912,-573.34 1901.76,-576.08 1905.7,-581.86"/>
</g>
<!-- ECC/tfl&#45;book#72&#45;&gt;ECC/tfl&#45;book#123 -->
<g id="edge41" class="edge">
<title>ECC/tfl&#45;book#72&#45;&gt;ECC/tfl&#45;book#123</title>
<path fill="none" stroke="black" d="M1184.2,-777.43C1193.6,-776.62 1203.1,-775.8 1212.5,-774.99"/>
<polygon fill="black" stroke="black" points="1213.04,-778.46 1222.7,-774.11 1212.44,-771.48 1213.04,-778.46"/>
</g>
<!-- ECC/tfl&#45;book#134 -->
<g id="node39" class="node open">
<title>ECC/tfl&#45;book#134</title>
<g id="a_node39"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/134" xlink:title="ECC/tfl&#45;book#134&#10;Decide on slashing&#10;requirements from the&#10;economic, security, and&#10;UX trade&#45;offs around&#10;slashing or no&#45;slashing&#10;staking protocols" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="1175.5,-951.5 992.5,-951.5 992.5,-838.5 1175.5,-838.5 1175.5,-951.5"/>
<text text-anchor="middle" x="1084" y="-936.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#134</text>
<text text-anchor="middle" x="1084" y="-921.3" font-family="Times,serif" font-size="14.00">Decide on slashing</text>
<text text-anchor="middle" x="1084" y="-906.3" font-family="Times,serif" font-size="14.00">requirements from the</text>
<text text-anchor="middle" x="1084" y="-891.3" font-family="Times,serif" font-size="14.00">economic, security, and</text>
<text text-anchor="middle" x="1084" y="-876.3" font-family="Times,serif" font-size="14.00">UX trade&#45;offs around</text>
<text text-anchor="middle" x="1084" y="-861.3" font-family="Times,serif" font-size="14.00">slashing or no&#45;slashing</text>
<text text-anchor="middle" x="1084" y="-846.3" font-family="Times,serif" font-size="14.00">staking protocols</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#117 -->
<g id="node40" class="node open">
<title>ECC/tfl&#45;book#117</title>
<g id="a_node40"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/117" xlink:title="ECC/tfl&#45;book#117&#10;Define PoS Subprotocol&#10;goals, requirements, and&#10;desiderata" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="1415,-923 1220,-923 1220,-855 1415,-855 1415,-923"/>
<text text-anchor="middle" x="1317.5" y="-907.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#117</text>
<text text-anchor="middle" x="1317.5" y="-892.8" font-family="Times,serif" font-size="14.00">Define PoS Subprotocol</text>
<text text-anchor="middle" x="1317.5" y="-877.8" font-family="Times,serif" font-size="14.00">goals, requirements, and</text>
<text text-anchor="middle" x="1317.5" y="-862.8" font-family="Times,serif" font-size="14.00">desiderata</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#134&#45;&gt;ECC/tfl&#45;book#117 -->
<g id="edge42" class="edge">
<title>ECC/tfl&#45;book#134&#45;&gt;ECC/tfl&#45;book#117</title>
<path fill="none" stroke="black" d="M1175.8,-892.65C1186.9,-892.36 1198.3,-892.06 1209.5,-891.77"/>
<polygon fill="black" stroke="black" points="1209.89,-895.26 1219.8,-891.51 1209.71,-888.26 1209.89,-895.26"/>
</g>
<!-- ECC/tfl&#45;book#117&#45;&gt;ECC/tfl&#45;book#137 -->
<g id="edge43" class="edge">
<title>ECC/tfl&#45;book#117&#45;&gt;ECC/tfl&#45;book#137</title>
<path fill="none" stroke="black" d="M1415,-871.69C1428.7,-869.23 1442.7,-866.72 1456.2,-864.31"/>
<polygon fill="black" stroke="black" points="1457.08,-867.71 1466.3,-862.48 1455.84,-860.82 1457.08,-867.71"/>
</g>
<!-- ECC/tfl&#45;book#140 -->
<g id="node41" class="node open">
<title>ECC/tfl&#45;book#140</title>
<g id="a_node41"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/140" xlink:title="ECC/tfl&#45;book#140&#10;Analyse and improve&#10;Crosslink&#39;s security&#10;against combined eclipse&#10;/ validator key&#10;compromise attacks" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="948,-835 751,-835 751,-737 948,-737 948,-835"/>
<text text-anchor="middle" x="849.5" y="-819.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#140</text>
<text text-anchor="middle" x="849.5" y="-804.8" font-family="Times,serif" font-size="14.00">Analyse and improve</text>
<text text-anchor="middle" x="849.5" y="-789.8" font-family="Times,serif" font-size="14.00">Crosslink&#39;s security</text>
<text text-anchor="middle" x="849.5" y="-774.8" font-family="Times,serif" font-size="14.00">against combined eclipse</text>
<text text-anchor="middle" x="849.5" y="-759.8" font-family="Times,serif" font-size="14.00">/ validator key</text>
<text text-anchor="middle" x="849.5" y="-744.8" font-family="Times,serif" font-size="14.00">compromise attacks</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#140&#45;&gt;ECC/tfl&#45;book#72 -->
<g id="edge44" class="edge">
<title>ECC/tfl&#45;book#140&#45;&gt;ECC/tfl&#45;book#72</title>
<path fill="none" stroke="black" d="M948.09,-786C956.58,-786 965.2,-786 973.77,-786"/>
<polygon fill="black" stroke="black" points="973.79,-789.5 983.79,-786 973.79,-782.5 973.79,-789.5"/>
</g>
<!-- ECC/zebra&#45;tfl#4&#45;&gt;ECC/tfl&#45;book#70 -->
<g id="edge47" class="edge">
<title>ECC/zebra&#45;tfl#4&#45;&gt;ECC/tfl&#45;book#70</title>
<path fill="none" stroke="black" d="M2264.9,-248.71C2304.7,-302.04 2394.3,-422.12 2442.2,-486.43"/>
<polygon fill="black" stroke="black" points="2439.61,-488.82 2448.4,-494.74 2445.23,-484.63 2439.61,-488.82"/>
</g>
<!-- ECC/zebra&#45;tfl#11 -->
<g id="node43" class="node open">
<title>ECC/zebra&#45;tfl#11</title>
<g id="a_node43"><a xlink:href="https://github.com/Electric-Coin-Company/zebra-tfl/issues/11" xlink:title="ECC/zebra&#45;tfl#11&#10;Consider putting bft&#45;&#10;proposals in bc&#45;block&#45;&#10;headers" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="2094.5,-249 1923.5,-249 1923.5,-181 2094.5,-181 2094.5,-249"/>
<text text-anchor="middle" x="2009" y="-233.8" font-family="Times,serif" font-size="14.00">ECC/zebra&#45;tfl#11</text>
<text text-anchor="middle" x="2009" y="-218.8" font-family="Times,serif" font-size="14.00">Consider putting bft&#45;</text>
<text text-anchor="middle" x="2009" y="-203.8" font-family="Times,serif" font-size="14.00">proposals in bc&#45;block&#45;</text>
<text text-anchor="middle" x="2009" y="-188.8" font-family="Times,serif" font-size="14.00">headers</text>
</a>
</g>
</g>
<!-- ECC/zebra&#45;tfl#11&#45;&gt;ECC/zebra&#45;tfl#4 -->
<g id="edge45" class="edge">
<title>ECC/zebra&#45;tfl#11&#45;&gt;ECC/zebra&#45;tfl#4</title>
<path fill="none" stroke="black" d="M2094.8,-217.55C2112.2,-218.07 2130.6,-218.62 2148.3,-219.16"/>
<polygon fill="black" stroke="black" points="2148.6,-222.67 2158.7,-219.47 2148.81,-215.67 2148.6,-222.67"/>
</g>
<!-- ECC/tfl&#45;book#150 -->
<g id="node45" class="node open">
<title>ECC/tfl&#45;book#150</title>
<g id="a_node45"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/150" xlink:title="ECC/tfl&#45;book#150&#10;Design staking for Hybrid&#10;PoS" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="3492,-761.5 3290,-761.5 3290,-708.5 3492,-708.5 3492,-761.5"/>
<text text-anchor="middle" x="3391" y="-746.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#150</text>
<text text-anchor="middle" x="3391" y="-731.3" font-family="Times,serif" font-size="14.00">Design staking for Hybrid</text>
<text text-anchor="middle" x="3391" y="-716.3" font-family="Times,serif" font-size="14.00">PoS</text>
</a>
</g>
</g>
<!-- ECC/zebra&#45;tfl#7&#45;&gt;ECC/tfl&#45;book#150 -->
<g id="edge58" class="edge">
<title>ECC/zebra&#45;tfl#7&#45;&gt;ECC/tfl&#45;book#150</title>
<path fill="none" stroke="black" d="M3254,-693.39C3267.1,-697.37 3280.4,-701.46 3293.4,-705.45"/>
<polygon fill="black" stroke="black" points="3292.71,-708.9 3303.3,-708.47 3294.76,-702.2 3292.71,-708.9"/>
</g>
<!-- ECC/tfl&#45;book#152 -->
<g id="node46" class="node open">
<title>ECC/tfl&#45;book#152</title>
<g id="a_node46"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/152" xlink:title="ECC/tfl&#45;book#152&#10;Design activation logic&#10;for Hybrid PoS" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="3480.5,-690.5 3301.5,-690.5 3301.5,-637.5 3480.5,-637.5 3480.5,-690.5"/>
<text text-anchor="middle" x="3391" y="-675.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#152</text>
<text text-anchor="middle" x="3391" y="-660.3" font-family="Times,serif" font-size="14.00">Design activation logic</text>
<text text-anchor="middle" x="3391" y="-645.3" font-family="Times,serif" font-size="14.00">for Hybrid PoS</text>
</a>
</g>
</g>
<!-- ECC/zebra&#45;tfl#7&#45;&gt;ECC/tfl&#45;book#152 -->
<g id="edge59" class="edge">
<title>ECC/zebra&#45;tfl#7&#45;&gt;ECC/tfl&#45;book#152</title>
<path fill="none" stroke="black" d="M3254,-664C3266.3,-664 3278.9,-664 3291.2,-664"/>
<polygon fill="black" stroke="black" points="3291.5,-667.5 3301.5,-664 3291.5,-660.5 3291.5,-667.5"/>
</g>
<!-- ECC/tfl&#45;book#153 -->
<g id="node47" class="node open">
<title>ECC/tfl&#45;book#153</title>
<g id="a_node47"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/153" xlink:title="ECC/tfl&#45;book#153&#10;Design interaction of BFT&#10;and PoW components of&#10;Hybrid PoS" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="3491,-619 3291,-619 3291,-551 3491,-551 3491,-619"/>
<text text-anchor="middle" x="3391" y="-603.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#153</text>
<text text-anchor="middle" x="3391" y="-588.8" font-family="Times,serif" font-size="14.00">Design interaction of BFT</text>
<text text-anchor="middle" x="3391" y="-573.8" font-family="Times,serif" font-size="14.00">and PoW components of</text>
<text text-anchor="middle" x="3391" y="-558.8" font-family="Times,serif" font-size="14.00">Hybrid PoS</text>
</a>
</g>
</g>
<!-- ECC/zebra&#45;tfl#7&#45;&gt;ECC/tfl&#45;book#153 -->
<g id="edge60" class="edge">
<title>ECC/zebra&#45;tfl#7&#45;&gt;ECC/tfl&#45;book#153</title>
<path fill="none" stroke="black" d="M3254,-631.3C3262.9,-628.27 3272,-625.2 3280.9,-622.14"/>
<polygon fill="black" stroke="black" points="3282.35,-625.35 3290.7,-618.83 3280.11,-618.71 3282.35,-625.35"/>
</g>
<!-- ECC/tfl&#45;book#151 -->
<g id="node48" class="node open">
<title>ECC/tfl&#45;book#151</title>
<g id="a_node48"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/151" xlink:title="ECC/tfl&#45;book#151&#10;Initial documentation of&#10;all elements of the&#10;Hybrid PoS design" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="3727.5,-698 3539.5,-698 3539.5,-630 3727.5,-630 3727.5,-698"/>
<text text-anchor="middle" x="3633.5" y="-682.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#151</text>
<text text-anchor="middle" x="3633.5" y="-667.8" font-family="Times,serif" font-size="14.00">Initial documentation of</text>
<text text-anchor="middle" x="3633.5" y="-652.8" font-family="Times,serif" font-size="14.00">all elements of the</text>
<text text-anchor="middle" x="3633.5" y="-637.8" font-family="Times,serif" font-size="14.00">Hybrid PoS design</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#150&#45;&gt;ECC/tfl&#45;book#151 -->
<g id="edge61" class="edge">
<title>ECC/tfl&#45;book#150&#45;&gt;ECC/tfl&#45;book#151</title>
<path fill="none" stroke="black" d="M3481.9,-708.46C3497.4,-703.89 3513.5,-699.12 3529.3,-694.46"/>
<polygon fill="black" stroke="black" points="3530.5,-697.76 3539.1,-691.57 3528.52,-691.04 3530.5,-697.76"/>
</g>
<!-- ECC/tfl&#45;book#152&#45;&gt;ECC/tfl&#45;book#151 -->
<g id="edge62" class="edge">
<title>ECC/tfl&#45;book#152&#45;&gt;ECC/tfl&#45;book#151</title>
<path fill="none" stroke="black" d="M3480.5,-664C3496.4,-664 3513,-664 3529.3,-664"/>
<polygon fill="black" stroke="black" points="3529.3,-667.5 3539.3,-664 3529.3,-660.5 3529.3,-667.5"/>
</g>
<!-- ECC/tfl&#45;book#153&#45;&gt;ECC/tfl&#45;book#151 -->
<g id="edge63" class="edge">
<title>ECC/tfl&#45;book#153&#45;&gt;ECC/tfl&#45;book#151</title>
<path fill="none" stroke="black" d="M3491.2,-617.59C3503.9,-621.75 3516.9,-626.03 3529.6,-630.21"/>
<polygon fill="black" stroke="black" points="3528.71,-633.6 3539.3,-633.39 3530.89,-626.95 3528.71,-633.6"/>
</g>
<!-- ECC/tfl&#45;book#149 -->
<g id="node57" class="node open">
<title>ECC/tfl&#45;book#149</title>
<g id="a_node57"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/149" xlink:title="ECC/tfl&#45;book#149&#10;Finalize documentation of&#10;Hybrid PoS protocol" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="3977,-690.5 3775,-690.5 3775,-637.5 3977,-637.5 3977,-690.5"/>
<text text-anchor="middle" x="3876" y="-675.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#149</text>
<text text-anchor="middle" x="3876" y="-660.3" font-family="Times,serif" font-size="14.00">Finalize documentation of</text>
<text text-anchor="middle" x="3876" y="-645.3" font-family="Times,serif" font-size="14.00">Hybrid PoS protocol</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#151&#45;&gt;ECC/tfl&#45;book#149 -->
<g id="edge74" class="edge">
<title>ECC/tfl&#45;book#151&#45;&gt;ECC/tfl&#45;book#149</title>
<path fill="none" stroke="black" d="M3727.8,-664C3739.9,-664 3752.3,-664 3764.7,-664"/>
<polygon fill="black" stroke="black" points="3765,-667.5 3775,-664 3765,-660.5 3765,-667.5"/>
</g>
<!-- ECC/zebra&#45;tfl#8 -->
<g id="node58" class="node open">
<title>ECC/zebra&#45;tfl#8</title>
<g id="a_node58"><a xlink:href="https://github.com/Electric-Coin-Company/zebra-tfl/issues/8" xlink:title="ECC/zebra&#45;tfl#8&#10;Prototype of in&#45;principle&#10;deployable Hybrid PoS&#10;design using Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="3971.5,-533 3780.5,-533 3780.5,-465 3971.5,-465 3971.5,-533"/>
<text text-anchor="middle" x="3876" y="-517.8" font-family="Times,serif" font-size="14.00">ECC/zebra&#45;tfl#8</text>
<text text-anchor="middle" x="3876" y="-502.8" font-family="Times,serif" font-size="14.00">Prototype of in&#45;principle</text>
<text text-anchor="middle" x="3876" y="-487.8" font-family="Times,serif" font-size="14.00">deployable Hybrid PoS</text>
<text text-anchor="middle" x="3876" y="-472.8" font-family="Times,serif" font-size="14.00">design using Zebra</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#151&#45;&gt;ECC/zebra&#45;tfl#8 -->
<g id="edge75" class="edge">
<title>ECC/tfl&#45;book#151&#45;&gt;ECC/zebra&#45;tfl#8</title>
<path fill="none" stroke="black" d="M3727.6,-630.46C3731.6,-627.55 3735.5,-624.4 3739,-621 3766.8,-594.23 3747.4,-568.99 3775,-542 3775.8,-541.21 3776.6,-540.43 3777.5,-539.66"/>
<polygon fill="black" stroke="black" points="3779.97,-542.16 3785.5,-533.12 3775.54,-536.74 3779.97,-542.16"/>
</g>
<!-- ECC/tfl&#45;book#146 -->
<g id="node49" class="node open">
<title>ECC/tfl&#45;book#146</title>
<g id="a_node49"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/146" xlink:title="ECC/tfl&#45;book#146&#10;Create a feature Testnet&#10;for Hybrid PoS deployment" target="_blank">
<polygon fill="#c2e0c6" stroke="black" stroke-width="2" points="3739,-611.5 3528,-611.5 3528,-558.5 3739,-558.5 3739,-611.5"/>
<text text-anchor="middle" x="3633.5" y="-596.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#146</text>
<text text-anchor="middle" x="3633.5" y="-581.3" font-family="Times,serif" font-size="14.00">Create a feature Testnet</text>
<text text-anchor="middle" x="3633.5" y="-566.3" font-family="Times,serif" font-size="14.00">for Hybrid PoS deployment</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#145 -->
<g id="node50" class="node open">
<title>ECC/tfl&#45;book#145</title>
<g id="a_node50"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/145" xlink:title="ECC/tfl&#45;book#145&#10;Deploy initial candidate&#10;for a Hybrid PoS protocol&#10;on a feature Testnet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="3975,-619 3777,-619 3777,-551 3975,-551 3975,-619"/>
<text text-anchor="middle" x="3876" y="-603.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#145</text>
<text text-anchor="middle" x="3876" y="-588.8" font-family="Times,serif" font-size="14.00">Deploy initial candidate</text>
<text text-anchor="middle" x="3876" y="-573.8" font-family="Times,serif" font-size="14.00">for a Hybrid PoS protocol</text>
<text text-anchor="middle" x="3876" y="-558.8" font-family="Times,serif" font-size="14.00">on a feature Testnet</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#146&#45;&gt;ECC/tfl&#45;book#145 -->
<g id="edge64" class="edge">
<title>ECC/tfl&#45;book#146&#45;&gt;ECC/tfl&#45;book#145</title>
<path fill="none" stroke="black" d="M3739.3,-585C3748.3,-585 3757.4,-585 3766.5,-585"/>
<polygon fill="black" stroke="black" points="3766.6,-588.5 3776.6,-585 3766.6,-581.5 3766.6,-588.5"/>
</g>
<!-- ECC/tfl&#45;book#147 -->
<g id="node51" class="node open">
<title>ECC/tfl&#45;book#147</title>
<g id="a_node51"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/147" xlink:title="ECC/tfl&#45;book#147&#10;Make sure other&#10;concurrently developed&#10;features are merged into&#10;Hybrid PoS Testnet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="4214.5,-702.5 4019.5,-702.5 4019.5,-619.5 4214.5,-619.5 4214.5,-702.5"/>
<text text-anchor="middle" x="4117" y="-687.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#147</text>
<text text-anchor="middle" x="4117" y="-672.3" font-family="Times,serif" font-size="14.00">Make sure other</text>
<text text-anchor="middle" x="4117" y="-657.3" font-family="Times,serif" font-size="14.00">concurrently developed</text>
<text text-anchor="middle" x="4117" y="-642.3" font-family="Times,serif" font-size="14.00">features are merged into</text>
<text text-anchor="middle" x="4117" y="-627.3" font-family="Times,serif" font-size="14.00">Hybrid PoS Testnet</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#145&#45;&gt;ECC/tfl&#45;book#147 -->
<g id="edge65" class="edge">
<title>ECC/tfl&#45;book#145&#45;&gt;ECC/tfl&#45;book#147</title>
<path fill="none" stroke="black" d="M3975.2,-616.24C3986.6,-619.86 3998.2,-623.55 4009.7,-627.2"/>
<polygon fill="black" stroke="black" points="4008.71,-630.56 4019.3,-630.25 4010.83,-623.89 4008.71,-630.56"/>
</g>
<!-- ECC/tfl&#45;book#148 -->
<g id="node52" class="node open">
<title>ECC/tfl&#45;book#148</title>
<g id="a_node52"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/148" xlink:title="ECC/tfl&#45;book#148&#10;Integration audit of&#10;Hybrid PoS protocol plus&#10;other concurrent&#10;features, as deployed to&#10;feature Testnet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="4452,-633 4257,-633 4257,-535 4452,-535 4452,-633"/>
<text text-anchor="middle" x="4354.5" y="-617.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#148</text>
<text text-anchor="middle" x="4354.5" y="-602.8" font-family="Times,serif" font-size="14.00">Integration audit of</text>
<text text-anchor="middle" x="4354.5" y="-587.8" font-family="Times,serif" font-size="14.00">Hybrid PoS protocol plus</text>
<text text-anchor="middle" x="4354.5" y="-572.8" font-family="Times,serif" font-size="14.00">other concurrent</text>
<text text-anchor="middle" x="4354.5" y="-557.8" font-family="Times,serif" font-size="14.00">features, as deployed to</text>
<text text-anchor="middle" x="4354.5" y="-542.8" font-family="Times,serif" font-size="14.00">feature Testnet</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#145&#45;&gt;ECC/tfl&#45;book#148 -->
<g id="edge66" class="edge">
<title>ECC/tfl&#45;book#145&#45;&gt;ECC/tfl&#45;book#148</title>
<path fill="none" stroke="black" d="M3975.2,-584.79C4054.2,-584.63 4165.1,-584.4 4246.4,-584.22"/>
<polygon fill="black" stroke="black" points="4246.71,-587.72 4256.7,-584.2 4246.69,-580.72 4246.71,-587.72"/>
</g>
<!-- ECC/zebra&#45;tfl#10 -->
<g id="node53" class="node open">
<title>ECC/zebra&#45;tfl#10</title>
<g id="a_node53"><a xlink:href="https://github.com/Electric-Coin-Company/zebra-tfl/issues/10" xlink:title="ECC/zebra&#45;tfl#10&#10;Working toolchain for all&#10;features of Hybrid PoS" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="4213,-559.5 4021,-559.5 4021,-506.5 4213,-506.5 4213,-559.5"/>
<text text-anchor="middle" x="4117" y="-544.3" font-family="Times,serif" font-size="14.00">ECC/zebra&#45;tfl#10</text>
<text text-anchor="middle" x="4117" y="-529.3" font-family="Times,serif" font-size="14.00">Working toolchain for all</text>
<text text-anchor="middle" x="4117" y="-514.3" font-family="Times,serif" font-size="14.00">features of Hybrid PoS</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#145&#45;&gt;ECC/zebra&#45;tfl#10 -->
<g id="edge67" class="edge">
<title>ECC/tfl&#45;book#145&#45;&gt;ECC/zebra&#45;tfl#10</title>
<path fill="none" stroke="black" d="M3975.2,-563.62C3987,-561.06 3999.1,-558.44 4010.9,-555.86"/>
<polygon fill="black" stroke="black" points="4011.77,-559.25 4020.8,-553.71 4010.28,-552.41 4011.77,-559.25"/>
</g>
<!-- ECC/tfl&#45;book#154 -->
<g id="node54" class="node open">
<title>ECC/tfl&#45;book#154</title>
<g id="a_node54"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/154" xlink:title="ECC/tfl&#45;book#154&#10;Obtain community&#10;consensus to deploy&#10;Hybrid PoS on public&#10;Testnet and (if&#10;successful) Mainnet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="4655,-671 4488,-671 4488,-573 4655,-573 4655,-671"/>
<text text-anchor="middle" x="4571.5" y="-655.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#154</text>
<text text-anchor="middle" x="4571.5" y="-640.8" font-family="Times,serif" font-size="14.00">Obtain community</text>
<text text-anchor="middle" x="4571.5" y="-625.8" font-family="Times,serif" font-size="14.00">consensus to deploy</text>
<text text-anchor="middle" x="4571.5" y="-610.8" font-family="Times,serif" font-size="14.00">Hybrid PoS on public</text>
<text text-anchor="middle" x="4571.5" y="-595.8" font-family="Times,serif" font-size="14.00">Testnet and (if</text>
<text text-anchor="middle" x="4571.5" y="-580.8" font-family="Times,serif" font-size="14.00">successful) Mainnet</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#147&#45;&gt;ECC/tfl&#45;book#154 -->
<g id="edge68" class="edge">
<title>ECC/tfl&#45;book#147&#45;&gt;ECC/tfl&#45;book#154</title>
<path fill="none" stroke="black" d="M4214.7,-658.32C4281.5,-655.78 4372.4,-650.96 4452,-642 4460.3,-641.06 4469,-639.92 4477.6,-638.67"/>
<polygon fill="black" stroke="black" points="4478.42,-642.09 4487.8,-637.16 4477.4,-635.16 4478.42,-642.09"/>
</g>
<!-- ECC/tfl&#45;book#148&#45;&gt;ECC/tfl&#45;book#154 -->
<g id="edge69" class="edge">
<title>ECC/tfl&#45;book#148&#45;&gt;ECC/tfl&#45;book#154</title>
<path fill="none" stroke="black" d="M4452.3,-601.11C4460.8,-602.61 4469.4,-604.13 4477.8,-605.62"/>
<polygon fill="black" stroke="black" points="4477.25,-609.08 4487.7,-607.36 4478.46,-602.18 4477.25,-609.08"/>
</g>
<!-- ECC/zebra&#45;tfl#10&#45;&gt;ECC/tfl&#45;book#148 -->
<g id="edge70" class="edge">
<title>ECC/zebra&#45;tfl#10&#45;&gt;ECC/tfl&#45;book#148</title>
<path fill="none" stroke="black" d="M4213.1,-553.6C4224.3,-556.01 4235.7,-558.49 4247,-560.94"/>
<polygon fill="black" stroke="black" points="4246.39,-564.39 4256.9,-563.08 4247.87,-557.55 4246.39,-564.39"/>
</g>
<!-- ECC/tfl&#45;book#144 -->
<g id="node55" class="node open">
<title>ECC/tfl&#45;book#144</title>
<g id="a_node55"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/144" xlink:title="ECC/tfl&#45;book#144&#10;Deploy Hybrid PoS&#10;protocol on public&#10;Testnet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="4843,-656 4691,-656 4691,-588 4843,-588 4843,-656"/>
<text text-anchor="middle" x="4767" y="-640.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#144</text>
<text text-anchor="middle" x="4767" y="-625.8" font-family="Times,serif" font-size="14.00">Deploy Hybrid PoS</text>
<text text-anchor="middle" x="4767" y="-610.8" font-family="Times,serif" font-size="14.00">protocol on public</text>
<text text-anchor="middle" x="4767" y="-595.8" font-family="Times,serif" font-size="14.00">Testnet</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#154&#45;&gt;ECC/tfl&#45;book#144 -->
<g id="edge71" class="edge">
<title>ECC/tfl&#45;book#154&#45;&gt;ECC/tfl&#45;book#144</title>
<path fill="none" stroke="black" d="M4655.1,-622C4663.5,-622 4672.1,-622 4680.5,-622"/>
<polygon fill="black" stroke="black" points="4680.7,-625.5 4690.7,-622 4680.7,-618.5 4680.7,-625.5"/>
</g>
<!-- ECC/tfl&#45;book#156 -->
<g id="node56" class="node open">
<title>ECC/tfl&#45;book#156</title>
<g id="a_node56"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/156" xlink:title="ECC/tfl&#45;book#156&#10;Finalize details of&#10;Hybrid PoS deployment on&#10;Mainnet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="5087,-656 4879,-656 4879,-588 5087,-588 5087,-656"/>
<text text-anchor="middle" x="4983" y="-640.8" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#156</text>
<text text-anchor="middle" x="4983" y="-625.8" font-family="Times,serif" font-size="14.00">Finalize details of</text>
<text text-anchor="middle" x="4983" y="-610.8" font-family="Times,serif" font-size="14.00">Hybrid PoS deployment on</text>
<text text-anchor="middle" x="4983" y="-595.8" font-family="Times,serif" font-size="14.00">Mainnet</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#144&#45;&gt;ECC/tfl&#45;book#156 -->
<g id="edge72" class="edge">
<title>ECC/tfl&#45;book#144&#45;&gt;ECC/tfl&#45;book#156</title>
<path fill="none" stroke="black" d="M4843.1,-622C4851.5,-622 4860,-622 4868.7,-622"/>
<polygon fill="black" stroke="black" points="4868.9,-625.5 4878.9,-622 4868.9,-618.5 4868.9,-625.5"/>
</g>
<!-- ECC/tfl&#45;book#143 -->
<g id="node60" class="node open">
<title>ECC/tfl&#45;book#143</title>
<g id="a_node60"><a xlink:href="https://github.com/Electric-Coin-Company/tfl-book/issues/143" xlink:title="ECC/tfl&#45;book#143&#10;Deploy a Hybrid PoS&#10;protocol on Mainnet" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="5287,-648.5 5123,-648.5 5123,-595.5 5287,-595.5 5287,-648.5"/>
<text text-anchor="middle" x="5205" y="-633.3" font-family="Times,serif" font-size="14.00">ECC/tfl&#45;book#143</text>
<text text-anchor="middle" x="5205" y="-618.3" font-family="Times,serif" font-size="14.00">Deploy a Hybrid PoS</text>
<text text-anchor="middle" x="5205" y="-603.3" font-family="Times,serif" font-size="14.00">protocol on Mainnet</text>
</a>
</g>
</g>
<!-- ECC/tfl&#45;book#156&#45;&gt;ECC/tfl&#45;book#143 -->
<g id="edge78" class="edge">
<title>ECC/tfl&#45;book#156&#45;&gt;ECC/tfl&#45;book#143</title>
<path fill="none" stroke="black" d="M5087.2,-622C5095.7,-622 5104.3,-622 5112.7,-622"/>
<polygon fill="black" stroke="black" points="5112.8,-625.5 5122.8,-622 5112.8,-618.5 5112.8,-625.5"/>
</g>
<!-- ECC/tfl&#45;book#149&#45;&gt;ECC/tfl&#45;book#147 -->
<g id="edge73" class="edge">
<title>ECC/tfl&#45;book#149&#45;&gt;ECC/tfl&#45;book#147</title>
<path fill="none" stroke="black" d="M3977.3,-662.74C3987.9,-662.61 3998.6,-662.47 4009.2,-662.34"/>
<polygon fill="black" stroke="black" points="4009.45,-665.84 4019.4,-662.21 4009.36,-658.84 4009.45,-665.84"/>
</g>
<!-- ECC/zebra&#45;tfl#8&#45;&gt;ECC/zebra&#45;tfl#10 -->
<g id="edge76" class="edge">
<title>ECC/zebra&#45;tfl#8&#45;&gt;ECC/zebra&#45;tfl#10</title>
<path fill="none" stroke="black" d="M3971.8,-512.49C3984.7,-514.32 3998,-516.21 4011,-518.06"/>
<polygon fill="black" stroke="black" points="4010.51,-521.52 4020.9,-519.47 4011.49,-514.59 4010.51,-521.52"/>
</g>
<!-- ECC/zebra&#45;tfl#9 -->
<g id="node59" class="node open">
<title>ECC/zebra&#45;tfl#9</title>
<g id="a_node59"><a xlink:href="https://github.com/Electric-Coin-Company/zebra-tfl/issues/9" xlink:title="ECC/zebra&#45;tfl#9&#10;Merge Hybrid PoS&#10;implementation into Zebra&#10;behind a feature flag" target="_blank">
<polygon fill="#c2e0c6" stroke="black" points="4221,-488 4013,-488 4013,-420 4221,-420 4221,-488"/>
<text text-anchor="middle" x="4117" y="-472.8" font-family="Times,serif" font-size="14.00">ECC/zebra&#45;tfl#9</text>
<text text-anchor="middle" x="4117" y="-457.8" font-family="Times,serif" font-size="14.00">Merge Hybrid PoS</text>
<text text-anchor="middle" x="4117" y="-442.8" font-family="Times,serif" font-size="14.00">implementation into Zebra</text>
<text text-anchor="middle" x="4117" y="-427.8" font-family="Times,serif" font-size="14.00">behind a feature flag</text>
</a>
</g>
</g>
<!-- ECC/zebra&#45;tfl#8&#45;&gt;ECC/zebra&#45;tfl#9 -->
<g id="edge77" class="edge">
<title>ECC/zebra&#45;tfl#8&#45;&gt;ECC/zebra&#45;tfl#9</title>
<path fill="none" stroke="black" d="M3971.8,-481.15C3982,-479.23 3992.4,-477.27 4002.8,-475.32"/>
<polygon fill="black" stroke="black" points="4003.52,-478.75 4012.7,-473.46 4002.23,-471.87 4003.52,-478.75"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>