fix
[oweals/gnunet.git] / TODO
diff --git a/TODO b/TODO
index e6a664a1468e1f0ee49bd8f0560d0472eef2cd36..28ee222599c0f40a1bd79a60d34fe4dcdd44a53d 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,24 +1,12 @@
 PHASE #1: (Goal: settle key design questions)
 
-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:
 * improve disk API [Nils]
 * Windows: use events instead of pipes to signal select()s [Nils]
 * only connect() sockets that are ready (select())
+  [Nils: I'm not sure what you mean by this; fresh sockets are always
+   ready for connect(), just 'write' after connect needs select AFAIK;
+   please clarify. --Christian]
 
 TESTCASES WANTED:
 For these functions, it would be nice if we had testcases ("make check")
@@ -60,27 +48,29 @@ that would cause them to be executed and check that they are working:
   - set_key_retry_task
   - align_and_deliver
   - handle_transport_notify_disconnect
+* hostlist (everything)
+* topology (everything)
+
 
 
 PHASE #2: (Goal: recover basic file-sharing functionality)
 
 Datastores:
 * implement sqlite-based sqstore/datastore service
-  + implement library (talks to service)
   + implement service (datastore + talks to plugin)
+  + implement library (talks to service)
   + implement sqlite plugin (talks to DB)
+  + fix testcases (make them use CPS, complete their inner workings...)
 * implement sqlite-based dstore services
+  + design API
   + implement library (talks to service)
   + implement service (talks to plugin)
   + implement sqlite plugin (talks to DB)
 
 Applications:
-* implement hostlist service (need to bootstrap!)
 * DHT, DV
 * FS / fs-libs
 
-Databases:
-* have ONE backend working
 
 
 PHASE #3: (Goal: ready for pre-release) [completion-goal: end of 2009]
@@ -106,10 +96,14 @@ Databases:
 
 
 Minor TODO items:
+* UTIL:
+  - crypto_hash: use libgcrypt (supports SHA-512 since 2003)
+  - container_bloomfilter: improve efficiency (see FIXME)
 * SERVER:
   - inefficient memmove
 * TRANSPORT:
   - transport_api: support forcing disconnects through low quotas!
+    (required for working F2F support!)
   - 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 
@@ -155,6 +149,8 @@ Minor TODO items:
   - implement exponential back-off for service restarts
   - better tracking of which config changes actually need to cause process restarts by ARM.
   - have way to specify dependencies between services (to manage ARM restarts better)
+  - client-API is inefficient since it opens a TCP connection per service that is started
+    (instead of re-using connections).
 * PEERINFO:
   - have gnunet-peerinfo print actual host addresses again
   - add option to gnunet-peerinfo to modify trust value
@@ -166,6 +162,11 @@ Minor TODO items:
 * GAP improvements:
   - active reply route caching design & implementation of service,
     gap extension!
+* HOSTLIST:
+  - implement advertising of hostlist URL
+  - implement learning of hostlist URLs
+
+
 
 => PRE-RELEASE
 
@@ -197,4 +198,17 @@ Stuff to remember:
 
 
 Test coverage:
-* UTIL: 75%, 4914 out of 6463
+* UTIL      : 78.7%
+* HELLO     : 93.7%
+* ARM       : 69.9%
+* RESOLVER  : 60.4%
+* STATISTICS: 82.8%
+* PEERINFO  : 71.5%
+* TRANSPORT : 70.9%
+* CORE      : 65.8%
+===================
+* TOTAL     : 74.9%
+
+Not yet tested:
+* HOSTLIST  :  0.0%
+* TOPOLOGY  :  0.0%