first hack at topology -- incomplete
[oweals/gnunet.git] / TODO
diff --git a/TODO b/TODO
index e1ee511eb17bb9d713ff063e03f60be899415b87..e6a664a1468e1f0ee49bd8f0560d0472eef2cd36 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,16 +1,24 @@
 PHASE #1: (Goal: settle key design questions)
 
-Core:
-* API review: should "bpm" and "last_activity" arguments be 
-  included in the ClientEventHandler?
-* Internal: topology
-* Internal: advertising (propagate other peers' HELLOs, find new ones)
-* Internal: bootstrapping
-  => bootstrap should use plugins, possible multiple at the same time!
+Hostlist:
+* hostlist server (MHD-side)
+* hostlist client (CURL-side); monitoring of number of active connections (to establish need for bootstrapping)
+* hostlist server URL advertising & learning via P2P
+
+Topology:
+* Selecting peers from peerinfo for connects; blacklisting
+* Managing connections, F2F configuration obedience, rejecting prohibited connections
+* Forwarding of known HELLOs to neighbours (advertising)
+  [ Inbound HELLOs are processed by transport, right?  
+    But what about inbound encrypted HELLOs? ]
+
+ARM:
+* Make sure ARM supports daemons (non-service background processes, see hostlist/topology)
 
 Util:
-* consider adding "get_time" to "configuration" API
 * improve disk API [Nils]
+* Windows: use events instead of pipes to signal select()s [Nils]
+* only connect() sockets that are ready (select())
 
 TESTCASES WANTED:
 For these functions, it would be nice if we had testcases ("make check")
@@ -54,7 +62,7 @@ that would cause them to be executed and check that they are working:
   - handle_transport_notify_disconnect
 
 
-PHASE #2: (Goal: recover basic core functionality)
+PHASE #2: (Goal: recover basic file-sharing functionality)
 
 Datastores:
 * implement sqlite-based sqstore/datastore service
@@ -72,15 +80,7 @@ Applications:
 * FS / fs-libs
 
 Databases:
-* mysql & postgres backend
-
-Transports:
-* UDP backend (need LIBRARY to support (de)fragmentation!)
-* HTTP backend
-* Testing:
-  +  Testcases for set_quota, timeouts, disconnects, transmit_ready_cancel
-  + Better coverage of gnunet-service-transport (hello validation)
-  + direct test of plugins compliance to plugin API
+* have ONE backend working
 
 
 PHASE #3: (Goal: ready for pre-release) [completion-goal: end of 2009]
@@ -92,6 +92,17 @@ PHASE #3: (Goal: ready for pre-release) [completion-goal: end of 2009]
 * tracekit
 * vpn
 
+Transports:
+* UDP backend (need LIBRARY to support (de)fragmentation!)
+* HTTP backend
+* Testing:
+  +  Testcases for set_quota, timeouts, disconnects, transmit_ready_cancel
+  + Better coverage of gnunet-service-transport (hello validation)
+  + direct test of plugins compliance to plugin API
+
+Databases:
+* sqlite, mysql & postgres backend
+
 
 
 Minor TODO items:
@@ -99,8 +110,7 @@ Minor TODO items:
   - inefficient memmove
 * TRANSPORT:
   - transport_api: support forcing disconnects through low quotas!
-  - API: consider having core provide priority and possibly
-    deadline information for each message
+  - API: consider having core provide deadline information for each message
     (likely important for DV plugin which wants to loop back!)
   - implement transport API to pretty-print transport address 
     + transport_api extension (API extension!)