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