enable RR option for HELLO gets in DHT
[oweals/gnunet.git] / doc / structure.dot
index 657b91a38479d504aea633b955413bcf66c98bc2..e244d20b8262d43d0c84a4c4a81ea5f982d2674e 100644 (file)
@@ -4,56 +4,86 @@
 // 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;
-  gns [shape=house];
-  gns -> namestore;
+  dns -> dnsstub;
+  zonemaster [shape=house];
+  zonemaster -> namestore;
+  zonemaster -> dht;
   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 +92,184 @@ 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];
+
+  secushare [shape=house,style=dashed];
+  multicast [style=dashed];
+  psyc [style=dashed];
+  social -> psyc [style=dashed];
+  social -> gns [style=dashed];
+  psyc -> psycstore [style=dashed];
+  psycstore;
+  social [style=dashed];
+  secushare -> social [style=dashed];
+  secushare -> identity [style=dashed];
+  psyc -> multicast [style=dashed];
+  multicast -> cadet [style=dashed];
+
+  reuters [shape=house,style=dashed];
+  reuters -> scalarproduct [style=dashed];
+
+  rps [style=dashed];
+  topology -> rps [style=dashed];
+  rps -> core [style=dashed];
+}
+
+
+// this is what we have, excluding libs and stores
+digraph dependencies_no_libs {
+splines = true;
+
+  voting [shape=house];
+  voting -> consensus;
+  voting -> identity;
+  voting -> cadet;
+  voting -> secretsharing;
+  secretsharing -> consensus;
+
+  fs [shape=house];
+  fs -> dht;
+  fs -> core;
+  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 -> dns;
+  gns -> dht;
+  gns -> revocation;
+  gns -> vpn;
+  gns -> identity;
+  revocation -> core;
+  revocation -> set;
+  dht -> core;
+  dht -> nse;
+  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 -> transport;
+  topology -> core;
+  hostlist [shape=box];
+  hostlist -> core;
+  transport -> ats;
+  dv [shape=egg];
+  dv -> transport [color=blue,style=dotted];
+  dv -> core;
+  dv -> set;
+  consensus -> set;
+  consensus -> cadet;
+  scalarproduct -> set;
+  scalarproduct -> cadet;
+  set -> cadet;
+
 
-  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;
-  }
+  secushare [shape=house,style=dashed];
+  multicast [style=dashed];
+  psyc [style=dashed];
+  social -> psyc [style=dashed];
+  social -> gns [style=dashed];
+  social [style=dashed];
+  secushare -> social [style=dashed];
+  secushare -> identity [style=dashed];
+  psyc -> multicast [style=dashed];
+  multicast -> cadet [style=dashed];
 
+  reuters [shape=house,style=dashed];
+  reuters -> scalarproduct [style=dashed];
+
+  rps [style=dashed];
+  topology -> rps [style=dashed];
+  rps -> core [style=dashed];
 }
+
+
+// this is what we have, excluding and details
+digraph dependencies_no_details {
+splines = true;
+
+  voting [shape=house];
+  voting -> consensus;
+  voting -> cadet;
+  voting -> secretsharing;
+  secretsharing -> consensus;
+
+  fs [shape=house];
+  fs -> dht;
+  fs -> core;
+  fs -> cadet;
+  vpn -> cadet;
+  vpn -> dht;
+  pt [shape=house];
+  pt -> cadet;
+  pt -> vpn;
+  gns [shape=house];
+  gns -> dht;
+  gns -> revocation;
+  gns -> vpn;
+  revocation -> core;
+  revocation -> set;
+  dht -> core;
+  dht -> nse;
+  nse -> core;
+  cadet -> core [weight=2];
+  cadet -> dht;
+  conversation [shape=house];
+  conversation -> cadet;
+  conversation -> gns;
+  core -> transport;
+  consensus -> set;
+  consensus -> cadet;
+  scalarproduct -> set;
+  scalarproduct -> cadet;
+  set -> cadet;
+
+
+  secushare [shape=house,style=dashed];
+  multicast [style=dashed];
+  psyc [style=dashed];
+  social -> psyc [style=dashed];
+  social -> gns [style=dashed];
+  social [style=dashed];
+  secushare -> social [style=dashed];
+  psyc -> multicast [style=dashed];
+  multicast -> cadet [style=dashed];
+
+  reuters [shape=house,style=dashed];
+  reuters -> scalarproduct [style=dashed];
+}
+
+