gnunet-handbook

The GNUnet Handbook
Log | Files | Refs

gnunet-arch-full.svg (23686B)


      1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
      2 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
      3  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
      4 <!-- Generated by graphviz version 9.0.0 (20230911.1827)
      5  -->
      6 <!-- Title: dependencies Pages: 1 -->
      7 <svg width="1090pt" height="692pt"
      8  viewBox="0.00 0.00 1089.75 692.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
      9 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 688)">
     10 <title>dependencies</title>
     11 <polygon fill="white" stroke="none" points="-4,4 -4,-688 1085.75,-688 1085.75,4 -4,4"/>
     12 <!-- secretsharing -->
     13 <g id="node1" class="node">
     14 <title>secretsharing</title>
     15 <ellipse fill="none" stroke="black" cx="810.19" cy="-594" rx="59.54" ry="18"/>
     16 <text text-anchor="middle" x="810.19" y="-588.95" font-family="Times,serif" font-size="14.00">secretsharing</text>
     17 </g>
     18 <!-- consensus -->
     19 <g id="node2" class="node">
     20 <title>consensus</title>
     21 <ellipse fill="none" stroke="black" cx="810.19" cy="-522" rx="48.28" ry="18"/>
     22 <text text-anchor="middle" x="810.19" y="-516.95" font-family="Times,serif" font-size="14.00">consensus</text>
     23 </g>
     24 <!-- secretsharing&#45;&gt;consensus -->
     25 <g id="edge1" class="edge">
     26 <title>secretsharing&#45;&gt;consensus</title>
     27 <path fill="none" stroke="black" d="M810.19,-575.7C810.19,-568.41 810.19,-559.73 810.19,-551.54"/>
     28 <polygon fill="black" stroke="black" points="813.69,-551.62 810.19,-541.62 806.69,-551.62 813.69,-551.62"/>
     29 </g>
     30 <!-- cadet -->
     31 <g id="node7" class="node">
     32 <title>cadet</title>
     33 <ellipse fill="none" stroke="black" cx="714.19" cy="-378" rx="30.37" ry="18"/>
     34 <text text-anchor="middle" x="714.19" y="-372.95" font-family="Times,serif" font-size="14.00">cadet</text>
     35 </g>
     36 <!-- consensus&#45;&gt;cadet -->
     37 <g id="edge41" class="edge">
     38 <title>consensus&#45;&gt;cadet</title>
     39 <path fill="none" stroke="black" d="M792.27,-504.96C781.79,-494.99 768.79,-481.54 759.19,-468 745.49,-448.71 733.6,-424.65 725.48,-406.42"/>
     40 <polygon fill="black" stroke="black" points="728.72,-405.09 721.54,-397.3 722.3,-407.87 728.72,-405.09"/>
     41 </g>
     42 <!-- set -->
     43 <g id="node26" class="node">
     44 <title>set</title>
     45 <ellipse fill="none" stroke="black" cx="867.19" cy="-450" rx="27" ry="18"/>
     46 <text text-anchor="middle" x="867.19" y="-444.95" font-family="Times,serif" font-size="14.00">set</text>
     47 </g>
     48 <!-- consensus&#45;&gt;set -->
     49 <g id="edge40" class="edge">
     50 <title>consensus&#45;&gt;set</title>
     51 <path fill="none" stroke="black" d="M823.69,-504.41C830.88,-495.59 839.84,-484.58 847.76,-474.86"/>
     52 <polygon fill="black" stroke="black" points="850.38,-477.18 853.98,-467.21 844.96,-472.76 850.38,-477.18"/>
     53 </g>
     54 <!-- fs -->
     55 <g id="node3" class="node">
     56 <title>fs</title>
     57 <ellipse fill="none" stroke="black" cx="151.19" cy="-450" rx="27" ry="18"/>
     58 <text text-anchor="middle" x="151.19" y="-444.95" font-family="Times,serif" font-size="14.00">fs</text>
     59 </g>
     60 <!-- dht -->
     61 <g id="node4" class="node">
     62 <title>dht</title>
     63 <ellipse fill="none" stroke="black" cx="425.19" cy="-306" rx="27" ry="18"/>
     64 <text text-anchor="middle" x="425.19" y="-300.95" font-family="Times,serif" font-size="14.00">dht</text>
     65 </g>
     66 <!-- fs&#45;&gt;dht -->
     67 <g id="edge2" class="edge">
     68 <title>fs&#45;&gt;dht</title>
     69 <path fill="none" stroke="black" d="M164.57,-433.89C184.88,-411.27 222.96,-370.15 240.19,-360 286.76,-332.58 348.34,-318.65 387.37,-312.11"/>
     70 <polygon fill="black" stroke="black" points="387.89,-315.57 397.22,-310.55 386.8,-308.66 387.89,-315.57"/>
     71 </g>
     72 <!-- core -->
     73 <g id="node5" class="node">
     74 <title>core</title>
     75 <ellipse fill="none" stroke="black" cx="397.19" cy="-162" rx="27" ry="18"/>
     76 <text text-anchor="middle" x="397.19" y="-156.95" font-family="Times,serif" font-size="14.00">core</text>
     77 </g>
     78 <!-- fs&#45;&gt;core -->
     79 <g id="edge3" class="edge">
     80 <title>fs&#45;&gt;core</title>
     81 <path fill="none" stroke="black" d="M156.26,-431.9C169.6,-389.68 209.51,-279.32 279.19,-216 302.53,-194.78 335.79,-180.89 361.05,-172.67"/>
     82 <polygon fill="black" stroke="black" points="362.06,-176.03 370.58,-169.74 360,-169.34 362.06,-176.03"/>
     83 </g>
     84 <!-- datastore -->
     85 <g id="node6" class="node">
     86 <title>datastore</title>
     87 <ellipse fill="none" stroke="black" cx="44.19" cy="-378" rx="44.19" ry="18"/>
     88 <text text-anchor="middle" x="44.19" y="-372.95" font-family="Times,serif" font-size="14.00">datastore</text>
     89 </g>
     90 <!-- fs&#45;&gt;datastore -->
     91 <g id="edge4" class="edge">
     92 <title>fs&#45;&gt;datastore</title>
     93 <path fill="none" stroke="black" d="M132.55,-436.81C117.02,-426.65 94.54,-411.94 76.15,-399.91"/>
     94 <polygon fill="black" stroke="black" points="78.24,-397.1 67.96,-394.55 74.41,-402.95 78.24,-397.1"/>
     95 </g>
     96 <!-- fs&#45;&gt;cadet -->
     97 <g id="edge5" class="edge">
     98 <title>fs&#45;&gt;cadet</title>
     99 <path fill="none" stroke="black" d="M176.04,-442.52C190.34,-438.99 208.68,-434.78 225.19,-432 389.69,-404.29 587.88,-388.01 672.55,-381.85"/>
    100 <polygon fill="black" stroke="black" points="672.73,-385.34 682.46,-381.14 672.23,-378.36 672.73,-385.34"/>
    101 </g>
    102 <!-- transport -->
    103 <g id="node8" class="node">
    104 <title>transport</title>
    105 <ellipse fill="none" stroke="black" cx="339.19" cy="-90" rx="43.67" ry="18"/>
    106 <text text-anchor="middle" x="339.19" y="-84.95" font-family="Times,serif" font-size="14.00">transport</text>
    107 </g>
    108 <!-- fs&#45;&gt;transport -->
    109 <g id="edge6" class="edge">
    110 <title>fs&#45;&gt;transport</title>
    111 <path fill="none" stroke="black" d="M144.27,-432.28C134.07,-406.06 116.19,-353.46 116.19,-307 116.19,-307 116.19,-307 116.19,-233 116.19,-151.97 222.23,-115.17 288.07,-100.13"/>
    112 <polygon fill="black" stroke="black" points="288.56,-103.61 297.58,-98.06 287.07,-96.77 288.56,-103.61"/>
    113 </g>
    114 <!-- identity -->
    115 <g id="node9" class="node">
    116 <title>identity</title>
    117 <ellipse fill="none" stroke="black" cx="288.19" cy="-378" rx="39.07" ry="18"/>
    118 <text text-anchor="middle" x="288.19" y="-372.95" font-family="Times,serif" font-size="14.00">identity</text>
    119 </g>
    120 <!-- fs&#45;&gt;identity -->
    121 <g id="edge7" class="edge">
    122 <title>fs&#45;&gt;identity</title>
    123 <path fill="none" stroke="black" d="M172.29,-438.22C193.67,-427.29 227.11,-410.2 252.6,-397.19"/>
    124 <polygon fill="black" stroke="black" points="253.96,-400.42 261.27,-392.75 250.78,-394.18 253.96,-400.42"/>
    125 </g>
    126 <!-- dht&#45;&gt;core -->
    127 <g id="edge23" class="edge">
    128 <title>dht&#45;&gt;core</title>
    129 <path fill="none" stroke="black" d="M411.44,-290.07C403.23,-280.1 393.57,-266.25 389.19,-252 383.12,-232.27 385.52,-209 389.23,-191.21"/>
    130 <polygon fill="black" stroke="black" points="392.6,-192.14 391.5,-181.61 385.79,-190.53 392.6,-192.14"/>
    131 </g>
    132 <!-- nse -->
    133 <g id="node20" class="node">
    134 <title>nse</title>
    135 <ellipse fill="none" stroke="black" cx="425.19" cy="-234" rx="27" ry="18"/>
    136 <text text-anchor="middle" x="425.19" y="-228.95" font-family="Times,serif" font-size="14.00">nse</text>
    137 </g>
    138 <!-- dht&#45;&gt;nse -->
    139 <g id="edge24" class="edge">
    140 <title>dht&#45;&gt;nse</title>
    141 <path fill="none" stroke="black" d="M425.19,-287.7C425.19,-280.41 425.19,-271.73 425.19,-263.54"/>
    142 <polygon fill="black" stroke="black" points="428.69,-263.62 425.19,-253.62 421.69,-263.62 428.69,-263.62"/>
    143 </g>
    144 <!-- datacache -->
    145 <g id="node21" class="node">
    146 <title>datacache</title>
    147 <ellipse fill="none" stroke="black" cx="517.19" cy="-234" rx="47.26" ry="18"/>
    148 <text text-anchor="middle" x="517.19" y="-228.95" font-family="Times,serif" font-size="14.00">datacache</text>
    149 </g>
    150 <!-- dht&#45;&gt;datacache -->
    151 <g id="edge25" class="edge">
    152 <title>dht&#45;&gt;datacache</title>
    153 <path fill="none" stroke="black" d="M442.49,-291.83C455.25,-282.13 472.91,-268.69 487.86,-257.31"/>
    154 <polygon fill="black" stroke="black" points="489.7,-260.31 495.54,-251.47 485.46,-254.74 489.7,-260.31"/>
    155 </g>
    156 <!-- peerstore -->
    157 <g id="node22" class="node">
    158 <title>peerstore</title>
    159 <ellipse fill="none" stroke="black" cx="541.19" cy="-18" rx="44.7" ry="18"/>
    160 <text text-anchor="middle" x="541.19" y="-12.95" font-family="Times,serif" font-size="14.00">peerstore</text>
    161 </g>
    162 <!-- dht&#45;&gt;peerstore -->
    163 <g id="edge26" class="edge">
    164 <title>dht&#45;&gt;peerstore</title>
    165 <path fill="none" stroke="black" d="M452.3,-304.15C486.96,-301.42 545.77,-290.94 573.19,-252 617.47,-189.1 579.24,-92.59 555.97,-46.01"/>
    166 <polygon fill="black" stroke="black" points="559.1,-44.43 551.4,-37.15 552.87,-47.64 559.1,-44.43"/>
    167 </g>
    168 <!-- core&#45;&gt;transport -->
    169 <g id="edge33" class="edge">
    170 <title>core&#45;&gt;transport</title>
    171 <path fill="none" stroke="black" d="M384.6,-145.81C377.36,-137.07 368.07,-125.87 359.79,-115.87"/>
    172 <polygon fill="black" stroke="black" points="362.59,-113.77 353.52,-108.3 357.2,-118.23 362.59,-113.77"/>
    173 </g>
    174 <!-- cadet&#45;&gt;dht -->
    175 <g id="edge29" class="edge">
    176 <title>cadet&#45;&gt;dht</title>
    177 <path fill="none" stroke="black" d="M686.21,-370.22C633.49,-357.45 519.49,-329.84 461.15,-315.71"/>
    178 <polygon fill="black" stroke="black" points="462.28,-312.38 451.74,-313.43 460.63,-319.19 462.28,-312.38"/>
    179 </g>
    180 <!-- cadet&#45;&gt;core -->
    181 <g id="edge28" class="edge">
    182 <title>cadet&#45;&gt;core</title>
    183 <path fill="none" stroke="black" d="M711.87,-359.58C706.46,-326.23 689.82,-253.36 644.19,-216 612.54,-190.1 495.94,-173.81 434.94,-166.87"/>
    184 <polygon fill="black" stroke="black" points="435.7,-163.44 425.38,-165.81 434.93,-170.39 435.7,-163.44"/>
    185 </g>
    186 <!-- transport&#45;&gt;peerstore -->
    187 <g id="edge39" class="edge">
    188 <title>transport&#45;&gt;peerstore</title>
    189 <path fill="none" stroke="black" d="M371.64,-77.75C405.75,-65.93 459.6,-47.27 497.44,-34.16"/>
    190 <polygon fill="black" stroke="black" points="498.41,-37.53 506.71,-30.95 496.12,-30.91 498.41,-37.53"/>
    191 </g>
    192 <!-- exit -->
    193 <g id="node10" class="node">
    194 <title>exit</title>
    195 <ellipse fill="none" stroke="black" cx="795.19" cy="-450" rx="27" ry="18"/>
    196 <text text-anchor="middle" x="795.19" y="-444.95" font-family="Times,serif" font-size="14.00">exit</text>
    197 </g>
    198 <!-- exit&#45;&gt;cadet -->
    199 <g id="edge8" class="edge">
    200 <title>exit&#45;&gt;cadet</title>
    201 <path fill="none" stroke="black" d="M779.18,-435.17C767.8,-425.33 752.27,-411.91 739.25,-400.66"/>
    202 <polygon fill="black" stroke="black" points="741.71,-398.16 731.86,-394.27 737.13,-403.46 741.71,-398.16"/>
    203 </g>
    204 <!-- vpn -->
    205 <g id="node11" class="node">
    206 <title>vpn</title>
    207 <ellipse fill="none" stroke="black" cx="415.19" cy="-450" rx="27" ry="18"/>
    208 <text text-anchor="middle" x="415.19" y="-444.95" font-family="Times,serif" font-size="14.00">vpn</text>
    209 </g>
    210 <!-- vpn&#45;&gt;cadet -->
    211 <g id="edge9" class="edge">
    212 <title>vpn&#45;&gt;cadet</title>
    213 <path fill="none" stroke="black" d="M436.16,-438.06C441,-435.82 446.2,-433.65 451.19,-432 527.64,-406.66 620.81,-391.37 673.22,-384.12"/>
    214 <polygon fill="black" stroke="black" points="673.45,-387.62 682.89,-382.81 672.52,-380.68 673.45,-387.62"/>
    215 </g>
    216 <!-- regex -->
    217 <g id="node12" class="node">
    218 <title>regex</title>
    219 <ellipse fill="none" stroke="black" cx="422.19" cy="-378" rx="31.39" ry="18"/>
    220 <text text-anchor="middle" x="422.19" y="-372.95" font-family="Times,serif" font-size="14.00">regex</text>
    221 </g>
    222 <!-- vpn&#45;&gt;regex -->
    223 <g id="edge10" class="edge">
    224 <title>vpn&#45;&gt;regex</title>
    225 <path fill="none" stroke="black" d="M416.92,-431.7C417.65,-424.41 418.51,-415.73 419.33,-407.54"/>
    226 <polygon fill="black" stroke="black" points="422.81,-407.91 420.33,-397.61 415.85,-407.21 422.81,-407.91"/>
    227 </g>
    228 <!-- regex&#45;&gt;dht -->
    229 <g id="edge32" class="edge">
    230 <title>regex&#45;&gt;dht</title>
    231 <path fill="none" stroke="black" d="M422.93,-359.7C423.24,-352.41 423.61,-343.73 423.96,-335.54"/>
    232 <polygon fill="black" stroke="black" points="427.46,-335.76 424.39,-325.62 420.46,-335.46 427.46,-335.76"/>
    233 </g>
    234 <!-- zonemaster -->
    235 <g id="node13" class="node">
    236 <title>zonemaster</title>
    237 <ellipse fill="none" stroke="black" cx="360.19" cy="-522" rx="53.4" ry="18"/>
    238 <text text-anchor="middle" x="360.19" y="-516.95" font-family="Times,serif" font-size="14.00">zonemaster</text>
    239 </g>
    240 <!-- zonemaster&#45;&gt;dht -->
    241 <g id="edge13" class="edge">
    242 <title>zonemaster&#45;&gt;dht</title>
    243 <path fill="none" stroke="black" d="M359.56,-503.74C359.1,-473.37 361,-408.93 382.19,-360 386.94,-349.03 394.63,-338.47 402.2,-329.7"/>
    244 <polygon fill="black" stroke="black" points="404.72,-332.13 408.9,-322.39 399.56,-327.4 404.72,-332.13"/>
    245 </g>
    246 <!-- namestore -->
    247 <g id="node14" class="node">
    248 <title>namestore</title>
    249 <ellipse fill="none" stroke="black" cx="283.19" cy="-450" rx="49.3" ry="18"/>
    250 <text text-anchor="middle" x="283.19" y="-444.95" font-family="Times,serif" font-size="14.00">namestore</text>
    251 </g>
    252 <!-- zonemaster&#45;&gt;namestore -->
    253 <g id="edge11" class="edge">
    254 <title>zonemaster&#45;&gt;namestore</title>
    255 <path fill="none" stroke="black" d="M342.33,-504.76C332.51,-495.84 320.15,-484.61 309.28,-474.72"/>
    256 <polygon fill="black" stroke="black" points="311.82,-472.3 302.07,-468.17 307.11,-477.48 311.82,-472.3"/>
    257 </g>
    258 <!-- namecache -->
    259 <g id="node15" class="node">
    260 <title>namecache</title>
    261 <ellipse fill="none" stroke="black" cx="512.19" cy="-450" rx="52.38" ry="18"/>
    262 <text text-anchor="middle" x="512.19" y="-444.95" font-family="Times,serif" font-size="14.00">namecache</text>
    263 </g>
    264 <!-- zonemaster&#45;&gt;namecache -->
    265 <g id="edge12" class="edge">
    266 <title>zonemaster&#45;&gt;namecache</title>
    267 <path fill="none" stroke="black" d="M390.95,-506.83C414.1,-496.17 446.05,-481.46 471.35,-469.81"/>
    268 <polygon fill="black" stroke="black" points="472.74,-473.02 480.36,-465.66 469.81,-466.66 472.74,-473.02"/>
    269 </g>
    270 <!-- namestore&#45;&gt;identity -->
    271 <g id="edge22" class="edge">
    272 <title>namestore&#45;&gt;identity</title>
    273 <path fill="none" stroke="black" d="M284.42,-431.7C284.94,-424.41 285.56,-415.73 286.15,-407.54"/>
    274 <polygon fill="black" stroke="black" points="289.64,-407.84 286.86,-397.61 282.65,-407.34 289.64,-407.84"/>
    275 </g>
    276 <!-- gns -->
    277 <g id="node16" class="node">
    278 <title>gns</title>
    279 <ellipse fill="none" stroke="black" cx="553.19" cy="-594" rx="27" ry="18"/>
    280 <text text-anchor="middle" x="553.19" y="-588.95" font-family="Times,serif" font-size="14.00">gns</text>
    281 </g>
    282 <!-- gns&#45;&gt;dht -->
    283 <g id="edge15" class="edge">
    284 <title>gns&#45;&gt;dht</title>
    285 <path fill="none" stroke="black" d="M560.78,-576.57C573.56,-546.4 595.84,-480.79 573.19,-432 549.27,-380.5 492.53,-342.56 456.66,-322.69"/>
    286 <polygon fill="black" stroke="black" points="458.5,-319.71 448.03,-318.06 455.19,-325.88 458.5,-319.71"/>
    287 </g>
    288 <!-- gns&#45;&gt;identity -->
    289 <g id="edge19" class="edge">
    290 <title>gns&#45;&gt;identity</title>
    291 <path fill="none" stroke="black" d="M526.18,-592.34C477.7,-590.11 373.92,-580.56 298.19,-540 258.01,-518.48 242.77,-510.04 225.19,-468 219.01,-453.24 218.43,-446.51 225.19,-432 231.36,-418.74 242.67,-407.61 254.01,-399.03"/>
    292 <polygon fill="black" stroke="black" points="256.02,-401.9 262.21,-393.3 252.01,-396.16 256.02,-401.9"/>
    293 </g>
    294 <!-- gns&#45;&gt;vpn -->
    295 <g id="edge17" class="edge">
    296 <title>gns&#45;&gt;vpn</title>
    297 <path fill="none" stroke="black" d="M530.25,-583.97C510.27,-575.17 481.55,-560.19 462.19,-540 445.28,-522.37 432.82,-497.46 425,-478.48"/>
    298 <polygon fill="black" stroke="black" points="428.28,-477.26 421.38,-469.22 421.76,-479.81 428.28,-477.26"/>
    299 </g>
    300 <!-- gns&#45;&gt;namecache -->
    301 <g id="edge18" class="edge">
    302 <title>gns&#45;&gt;namecache</title>
    303 <path fill="none" stroke="black" d="M550.46,-575.7C547.38,-557.59 541.8,-528.44 534.19,-504 531.54,-495.5 528.06,-486.47 524.65,-478.33"/>
    304 <polygon fill="black" stroke="black" points="527.92,-477.07 520.73,-469.28 521.49,-479.85 527.92,-477.07"/>
    305 </g>
    306 <!-- dns -->
    307 <g id="node17" class="node">
    308 <title>dns</title>
    309 <ellipse fill="none" stroke="black" cx="498.19" cy="-522" rx="27" ry="18"/>
    310 <text text-anchor="middle" x="498.19" y="-516.95" font-family="Times,serif" font-size="14.00">dns</text>
    311 </g>
    312 <!-- gns&#45;&gt;dns -->
    313 <g id="edge14" class="edge">
    314 <title>gns&#45;&gt;dns</title>
    315 <path fill="none" stroke="black" d="M540.98,-577.46C534.07,-568.67 525.28,-557.48 517.46,-547.53"/>
    316 <polygon fill="black" stroke="black" points="520.22,-545.38 511.29,-539.68 514.72,-549.71 520.22,-545.38"/>
    317 </g>
    318 <!-- revocation -->
    319 <g id="node18" class="node">
    320 <title>revocation</title>
    321 <ellipse fill="none" stroke="black" cx="670.19" cy="-522" rx="49.82" ry="18"/>
    322 <text text-anchor="middle" x="670.19" y="-516.95" font-family="Times,serif" font-size="14.00">revocation</text>
    323 </g>
    324 <!-- gns&#45;&gt;revocation -->
    325 <g id="edge16" class="edge">
    326 <title>gns&#45;&gt;revocation</title>
    327 <path fill="none" stroke="black" d="M572.77,-581.28C589.88,-571.05 615.11,-555.95 635.61,-543.69"/>
    328 <polygon fill="black" stroke="black" points="637.15,-546.84 643.93,-538.71 633.56,-540.84 637.15,-546.84"/>
    329 </g>
    330 <!-- revocation&#45;&gt;core -->
    331 <g id="edge20" class="edge">
    332 <title>revocation&#45;&gt;core</title>
    333 <path fill="none" stroke="black" d="M662.09,-503.95C650.4,-477.72 630.19,-425.61 630.19,-379 630.19,-379 630.19,-379 630.19,-305 630.19,-258.03 610.67,-244.31 573.19,-216 532.22,-185.06 473.25,-172.08 435.07,-166.7"/>
    334 <polygon fill="black" stroke="black" points="435.8,-163.27 425.43,-165.46 434.9,-170.21 435.8,-163.27"/>
    335 </g>
    336 <!-- setu -->
    337 <g id="node19" class="node">
    338 <title>setu</title>
    339 <ellipse fill="none" stroke="black" cx="685.19" cy="-450" rx="27" ry="18"/>
    340 <text text-anchor="middle" x="685.19" y="-444.95" font-family="Times,serif" font-size="14.00">setu</text>
    341 </g>
    342 <!-- revocation&#45;&gt;setu -->
    343 <g id="edge21" class="edge">
    344 <title>revocation&#45;&gt;setu</title>
    345 <path fill="none" stroke="black" d="M673.89,-503.7C675.47,-496.32 677.36,-487.52 679.13,-479.25"/>
    346 <polygon fill="black" stroke="black" points="682.53,-480.1 681.2,-469.58 675.69,-478.63 682.53,-480.1"/>
    347 </g>
    348 <!-- setu&#45;&gt;cadet -->
    349 <g id="edge46" class="edge">
    350 <title>setu&#45;&gt;cadet</title>
    351 <path fill="none" stroke="black" d="M692.06,-432.41C695.26,-424.68 699.16,-415.27 702.79,-406.52"/>
    352 <polygon fill="black" stroke="black" points="705.99,-407.93 706.58,-397.35 699.52,-405.25 705.99,-407.93"/>
    353 </g>
    354 <!-- nse&#45;&gt;core -->
    355 <g id="edge27" class="edge">
    356 <title>nse&#45;&gt;core</title>
    357 <path fill="none" stroke="black" d="M418.55,-216.41C415.41,-208.57 411.58,-198.99 408.04,-190.13"/>
    358 <polygon fill="black" stroke="black" points="411.3,-188.86 404.34,-180.88 404.8,-191.46 411.3,-188.86"/>
    359 </g>
    360 <!-- conversation -->
    361 <g id="node23" class="node">
    362 <title>conversation</title>
    363 <ellipse fill="none" stroke="black" cx="737.19" cy="-666" rx="58" ry="18"/>
    364 <text text-anchor="middle" x="737.19" y="-660.95" font-family="Times,serif" font-size="14.00">conversation</text>
    365 </g>
    366 <!-- conversation&#45;&gt;cadet -->
    367 <g id="edge30" class="edge">
    368 <title>conversation&#45;&gt;cadet</title>
    369 <path fill="none" stroke="black" d="M790.36,-658.38C820.87,-651.75 857.34,-638.5 879.19,-612 930.52,-549.72 951.95,-496.31 903.19,-432 885.33,-408.44 804.87,-392.47 754.87,-384.63"/>
    370 <polygon fill="black" stroke="black" points="755.69,-381.21 745.28,-383.17 754.64,-388.13 755.69,-381.21"/>
    371 </g>
    372 <!-- conversation&#45;&gt;gns -->
    373 <g id="edge31" class="edge">
    374 <title>conversation&#45;&gt;gns</title>
    375 <path fill="none" stroke="black" d="M701.71,-651.5C668.5,-638.87 619.23,-620.13 586.68,-607.74"/>
    376 <polygon fill="black" stroke="black" points="588.33,-604.63 577.74,-604.34 585.84,-611.17 588.33,-604.63"/>
    377 </g>
    378 <!-- topology -->
    379 <g id="node24" class="node">
    380 <title>topology</title>
    381 <ellipse fill="none" stroke="black" cx="188.19" cy="-234" rx="43.67" ry="18"/>
    382 <text text-anchor="middle" x="188.19" y="-228.95" font-family="Times,serif" font-size="14.00">topology</text>
    383 </g>
    384 <!-- topology&#45;&gt;core -->
    385 <g id="edge36" class="edge">
    386 <title>topology&#45;&gt;core</title>
    387 <path fill="none" stroke="black" d="M221.3,-221.91C259.85,-209 323.24,-187.77 362.46,-174.63"/>
    388 <polygon fill="black" stroke="black" points="363.52,-177.97 371.89,-171.47 361.3,-171.33 363.52,-177.97"/>
    389 </g>
    390 <!-- topology&#45;&gt;transport -->
    391 <g id="edge35" class="edge">
    392 <title>topology&#45;&gt;transport</title>
    393 <path fill="none" stroke="black" d="M205.21,-216.99C231.86,-191.93 283.56,-143.31 314.36,-114.35"/>
    394 <polygon fill="black" stroke="black" points="316.46,-117.18 321.35,-107.77 311.67,-112.08 316.46,-117.18"/>
    395 </g>
    396 <!-- topology&#45;&gt;peerstore -->
    397 <g id="edge34" class="edge">
    398 <title>topology&#45;&gt;peerstore</title>
    399 <path fill="none" stroke="black" d="M193.51,-215.68C204.77,-182.16 234.28,-108.55 286.19,-72 317.97,-49.62 422.07,-33.39 487.03,-25.15"/>
    400 <polygon fill="black" stroke="black" points="487.28,-28.65 496.78,-23.94 486.42,-21.7 487.28,-28.65"/>
    401 </g>
    402 <!-- hostlist -->
    403 <g id="node25" class="node">
    404 <title>hostlist</title>
    405 <ellipse fill="none" stroke="black" cx="734.19" cy="-234" rx="37.53" ry="18"/>
    406 <text text-anchor="middle" x="734.19" y="-228.95" font-family="Times,serif" font-size="14.00">hostlist</text>
    407 </g>
    408 <!-- hostlist&#45;&gt;core -->
    409 <g id="edge37" class="edge">
    410 <title>hostlist&#45;&gt;core</title>
    411 <path fill="none" stroke="black" d="M704.41,-222.52C697.19,-220.19 689.46,-217.86 682.19,-216 594.73,-193.68 489.94,-176.62 435.02,-168.41"/>
    412 <polygon fill="black" stroke="black" points="435.67,-164.96 425.26,-166.96 434.64,-171.89 435.67,-164.96"/>
    413 </g>
    414 <!-- hostlist&#45;&gt;peerstore -->
    415 <g id="edge38" class="edge">
    416 <title>hostlist&#45;&gt;peerstore</title>
    417 <path fill="none" stroke="black" d="M722.89,-216.52C701.78,-186.26 654.11,-120.52 606.19,-72 595.37,-61.05 582.4,-50.1 570.9,-41.02"/>
    418 <polygon fill="black" stroke="black" points="573.31,-38.46 563.26,-35.11 569.02,-44 573.31,-38.46"/>
    419 </g>
    420 <!-- set&#45;&gt;cadet -->
    421 <g id="edge44" class="edge">
    422 <title>set&#45;&gt;cadet</title>
    423 <path fill="none" stroke="black" d="M845.51,-438.7C840.79,-436.47 835.83,-434.15 831.19,-432 803.41,-419.15 771.78,-404.84 748.42,-394.34"/>
    424 <polygon fill="black" stroke="black" points="749.93,-391.18 739.37,-390.27 747.06,-397.56 749.93,-391.18"/>
    425 </g>
    426 <!-- scalarproduct -->
    427 <g id="node27" class="node">
    428 <title>scalarproduct</title>
    429 <ellipse fill="none" stroke="black" cx="1021.19" cy="-522" rx="60.56" ry="18"/>
    430 <text text-anchor="middle" x="1021.19" y="-516.95" font-family="Times,serif" font-size="14.00">scalarproduct</text>
    431 </g>
    432 <!-- scalarproduct&#45;&gt;cadet -->
    433 <g id="edge43" class="edge">
    434 <title>scalarproduct&#45;&gt;cadet</title>
    435 <path fill="none" stroke="black" d="M1025.18,-503.84C1028.72,-483.92 1030.91,-451.32 1013.19,-432 979.18,-394.95 829.78,-383.68 755.88,-380.35"/>
    436 <polygon fill="black" stroke="black" points="756.35,-376.87 746.21,-379.95 756.06,-383.86 756.35,-376.87"/>
    437 </g>
    438 <!-- seti -->
    439 <g id="node28" class="node">
    440 <title>seti</title>
    441 <ellipse fill="none" stroke="black" cx="977.19" cy="-450" rx="27" ry="18"/>
    442 <text text-anchor="middle" x="977.19" y="-444.95" font-family="Times,serif" font-size="14.00">seti</text>
    443 </g>
    444 <!-- scalarproduct&#45;&gt;seti -->
    445 <g id="edge42" class="edge">
    446 <title>scalarproduct&#45;&gt;seti</title>
    447 <path fill="none" stroke="black" d="M1010.53,-504.05C1005.31,-495.73 998.9,-485.54 993.1,-476.32"/>
    448 <polygon fill="black" stroke="black" points="996.23,-474.71 987.94,-468.11 990.3,-478.44 996.23,-474.71"/>
    449 </g>
    450 <!-- seti&#45;&gt;cadet -->
    451 <g id="edge45" class="edge">
    452 <title>seti&#45;&gt;cadet</title>
    453 <path fill="none" stroke="black" d="M955.3,-439.17C949.18,-436.63 942.49,-434.04 936.19,-432 873.73,-411.74 799.13,-395.5 754.26,-386.57"/>
    454 <polygon fill="black" stroke="black" points="754.94,-383.14 744.46,-384.64 753.6,-390.01 754.94,-383.14"/>
    455 </g>
    456 <!-- rps -->
    457 <g id="node29" class="node">
    458 <title>rps</title>
    459 <ellipse fill="none" stroke="black" cx="315.19" cy="-234" rx="27" ry="18"/>
    460 <text text-anchor="middle" x="315.19" y="-228.95" font-family="Times,serif" font-size="14.00">rps</text>
    461 </g>
    462 <!-- rps&#45;&gt;core -->
    463 <g id="edge47" class="edge">
    464 <title>rps&#45;&gt;core</title>
    465 <path fill="none" stroke="black" d="M331.39,-219.17C343.07,-209.2 359.05,-195.56 372.34,-184.21"/>
    466 <polygon fill="black" stroke="black" points="374.53,-186.94 379.87,-177.78 369.99,-181.61 374.53,-186.94"/>
    467 </g>
    468 </g>
    469 </svg>