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")
- 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]
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
- 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
* 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
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%