X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=doc%2Fstructure.dot;h=a8493b8a76016bc2f7de3247b4d3e5fc72d57fbf;hb=cea95af17bb3bfaf65224d0ecd2db2308e333764;hp=657b91a38479d504aea633b955413bcf66c98bc2;hpb=5140bd05677e696e7890c8613c050baf79c9166d;p=oweals%2Fgnunet.git diff --git a/doc/structure.dot b/doc/structure.dot index 657b91a38..a8493b8a7 100644 --- a/doc/structure.dot +++ b/doc/structure.dot @@ -4,56 +4,85 @@ // diamond = library // black line = dependency // blue line = extension via plugin +// red line = possibly useful // dashed = in planning +// this is what we have...o digraph dependencies { splines = true; + voting [shape=house]; + voting -> consensus; + voting -> identity; + voting -> cadet; + voting -> secretsharing; + secretsharing -> consensus; + fs [shape=house]; fs -> dht; fs -> core; fs -> datastore; - fs -> stream; - fs -> ats [style=dashed]; + fs -> cadet; + fs -> ats; fs -> block [style=dotted,color=blue]; - exit -> mesh; + fs -> identity; + exit [shape=box]; + exit -> cadet; exit -> tun; - vpn -> mesh; + exit -> dnsstub; + vpn -> cadet; + vpn -> regex; vpn -> tun; pt [shape=house]; - pt -> mesh; + pt -> cadet; pt -> vpn; pt -> dns; - dns -> mesh; + pt -> dnsparser; + dv -> ats; dns -> tun; + dns -> dnsstub; gns [shape=house]; gns -> namestore; gns -> dns; gns -> dht; - gns -> stream [style=dashed]; gns -> block [style=dotted,color=blue]; -// psycd [style=dashed,shape=house]; -// psycd -> mesh [style=dashed]; - stream [shape=diamond]; - stream -> mesh; - stream -> lockmanager; + gns -> revocation; + gns -> vpn; + gns -> dnsparser; + gns -> dnsstub; + gns -> identity; + revocation -> core; + revocation -> set; + namestore -> identity; + namestore -> gnsrecord; + dnsparser -> gnsrecord [style=dotted,color=blue]; + conversation -> gnsrecord [style=dotted,color=blue]; + gns -> gnsrecord [style=dotted,color=blue]; dht -> core; dht -> nse; dht -> block; dht -> datacache; - dht -> ats [style=dashed]; + dht -> peerinfo; + dht -> hello; nse -> core; + regex -> block [style=dotted,color=blue]; block [shape=diamond]; datacache [shape=diamond]; - mesh -> core [weight=2]; - mesh -> dht; - mesh -> regex; - mesh -> block [color=blue]; - mesh -> ats [style=dashed]; - regex [shape=diamond]; + cadet -> core [weight=2]; + cadet -> dht; + cadet -> block [style=dotted,color=blue]; + conversation [shape=house]; + conversation -> cadet; + conversation -> gns; + conversation -> identity; + conversation -> speaker; + conversation -> microphone; + speaker [shape=diamond]; + microphone [shape=diamond]; + regex -> dht; core -> transport; - core -> peerinfo; topology [shape=box]; + topology -> peerinfo; topology -> transport; topology -> core; topology -> hello; @@ -62,46 +91,148 @@ splines = true; hostlist -> peerinfo; hostlist -> hello; transport -> ats; - transport -> hello; + transport -> hello; transport -> peerinfo; transport -> nat; transport -> fragmentation; - dv [style=dashed,shape=egg,layer=core]; - dv -> transport [style=dashed,color=blue]; - dv -> core [style=dashed]; - dv -> consensus; - consensus -> dv [style=invis]; // force dv below consensus - consensus -> mesh; - core -> dv [style=invis]; // force dv below core + dv [shape=egg]; + dv -> transport [color=blue,style=dotted]; + dv -> core; + dv -> set; + consensus -> set; + consensus -> cadet; + scalarproduct -> set; + scalarproduct -> cadet; + set -> cadet; peerinfo -> hello; fragmentation [shape=diamond]; hello [shape=diamond]; nat [shape=diamond]; tun [shape=diamond]; + dnsparser [shape=diamond]; + dnsstub [shape=diamond]; +} + + +// this is what we have, excluding libs +digraph dependencies_no_libs { +splines = true; - subgraph STREAM { - stream; lockmanager; - } - subgraph DHT { - dht; nse; datacache; block; - } - subgraph MESH { - mesh; regex; - } - subgraph TRANSPORT { - transport; dv; peerinfo; hello; nat; ats; - } - subgraph CORE { - core; hostlist; topology; - } - subgraph FS { - fs; datastore; - } - subgraph GNS { - gns; namestore; - } - subgraph VPN { - vpn; pt; exit; - } + voting [shape=house]; + voting -> consensus; + voting -> identity; + voting -> cadet; + voting -> secretsharing; + secretsharing -> consensus; + fs [shape=house]; + fs -> dht; + fs -> core; + fs -> datastore; + fs -> cadet; + fs -> ats; + fs -> identity; + exit [shape=box]; + exit -> cadet; + vpn -> cadet; + vpn -> regex; + pt [shape=house]; + pt -> cadet; + pt -> vpn; + pt -> dns; + dv -> ats; + gns [shape=house]; + gns -> namestore; + gns -> dns; + gns -> dht; + gns -> revocation; + gns -> vpn; + gns -> identity; + gns -> gnsrecord; + revocation -> core; + revocation -> set; + namestore -> identity; + dht -> core; + dht -> nse; + dht -> peerinfo; + nse -> core; + cadet -> core [weight=2]; + cadet -> dht; + conversation [shape=house]; + conversation -> cadet; + conversation -> gns; + conversation -> identity; + regex -> dht; + core -> transport; + topology [shape=box]; + topology -> peerinfo; + topology -> transport; + topology -> core; + hostlist [shape=box]; + hostlist -> core; + hostlist -> peerinfo; + transport -> ats; + transport -> peerinfo; + dv [shape=egg]; + dv -> transport [color=blue,style=dotted]; + dv -> core; + dv -> set; + consensus -> set; + consensus -> cadet; + scalarproduct -> set; + scalarproduct -> cadet; + set -> cadet; +} + + +// this is what might happen... +digraph plan { +splines = true; + +// // secushare roadmap: + secushare [shape=house,style=dashed]; + psyc [style=dashed]; + social -> psyc [style=dashed]; + psyc -> psycstore [style=dashed]; + psycstore; + social [style=dashed]; + secushare -> social [style=dashed]; + secushare -> voting [style=dashed,color=red]; + secushare -> gns [style=dashed]; + secushare -> fs [style=dashed,color=red]; + secushare -> reuters [style=dashed,color=red]; + secushare -> identity [style=dashed,color=red]; + secushare -> messaging [style=dashed,color=red]; + secushare -> conversation [style=dashed,color=red]; + psyc -> multicast [style=dashed]; + +// // reuters roadmap: + reuters [shape=house,style=dashed]; + scalarproduct [style=dashed]; + reuters -> scalarproduct [style=dashed]; + reuters -> identity [style=dashed]; + scalarproduct -> set [style=dashed]; + scalarproduct -> cadet [style=dashed]; + messaging [style=dashed]; + messaging -> regex [style=dashed]; + messaging -> cadet [style=dashed]; + messaging -> dht [style=dashed]; + reuters -> messaging [style=dashed,color=red]; + reuters -> multicast [style=dashed,color=red]; + reuters -> cadet [style=dashed,color=red]; + reuters -> core [style=dashed,color=red]; + + +// // core roadmap: + dht -> ats [style=dashed,color=red]; + cadet -> ats [style=dashed,color=red]; + vpn -> multicast [style=dashed,color=red]; + exit -> multicast [style=dashed,color=red]; + multicast [style=dashed]; + multicast -> cadet [style=dashed]; + + fs [shape=house]; + gns [shape=house]; + conversation [shape=house]; + exit [shape=box]; }