-Implementable right now (but not necessarily important), with caveats
-(unavailable components that will limit what can be implemented right
-away), in order in which they will likely be done:
-* TESTING [Nate]
-* DV [Nate]
-* DHT [Nate]
-* TBENCH [MW]
-* TRACEKIT [MW]
-* FRAGMENTATION [Ji Lu]
-* HTTP transport [Matthias]
-* UPNP [Milan]
-* ARM [Safey]
-* FS [CG]
-* SETUP
-* MySQL / Postgres plugins (datastore, datacache)
-
-0.9.0pre0 [April]:
-* CORE: [CG]
- - "Forcing disconnect of XXX due to inactivity" -- can happen every few MS!?
- (disconnect does not really succeed, or what?)
- Also, core does not seem to actually decrement the number of active
- sessions even if no connections exist for a while! (likely related...)
- - transport reports bw quota violations on slow systems (core or
- transport issue?)
-* DATASTORE: [CG]
- - utilization can (easily, restart?) go out of control (very large), causing
- content expiration job to go crazy and delete everything!
-* FS: [CG]
- - gnunet-publish uses 'NULL' for the file name when
- publishing a directory (!)
- - on some systems, keyword search does not find locally published content
- (need testcase of command-line tools! - also good to cover getopt API!)
- [could be related to datastore issue above!]
- - 2-peer download is still too slow (why?)
- - advanced FS API parts
- + pick correct filenames for recursive downloads (mkdir, .gnd)
- + support recursive download even if filename is NULL and we hence
- do not generate files on disk (use temp_filename)
- + bound parallelism (# fs downloads)
- + distinguish in performance tracking and event signalling between
- downloads that are actually running and those that are merely in the queue
- + gnunet-service-fs (hot-path routing, load-based routing, nitpicks)
- - [gnunet-service-fs.c:208]: member 'LocalGetContext::results_bf_size' is never used
- - [gnunet-service-fs.c:501]: member 'PendingRequest::used_pids_size' is never used
- - [gnunet-service-fs.c:654]: member 'ConnectedPeer::last_client_replies' is never used
- - [gnunet-service-fs.c:669]: member 'ConnectedPeer::avg_delay' is never used
- - [gnunet-service-fs.c:675]: member 'ConnectedPeer::avg_priority' is never used
- - [gnunet-service-fs.c:688]: member 'ConnectedPeer::pending_requests' is never used
- - [gnunet-service-fs.c:694]: member 'ConnectedPeer::last_p2p_replies_woff' is never used
- - [gnunet-service-fs.c:700]: member 'ConnectedPeer::last_client_replies_woff' is never used
-* WWW:
- - Get IPv6 hooked up
- - change DNS
-
0.9.0pre1:
* PEERINFO:
- trust: need *fast* way to check/update trust in peers
- only connect() sockets that are ready (select()) [Nils]
[On W32, we need to select after calling socket before
doing connect etc.]
-* HELLO: [CG]
- - need function to test "equivalency" of HELLOs (or integrate with "merge"?); use in PEERINFO
* SETUP:
- design & implement new setup tool
* TBENCH: [MW]
- good to have for transport/DV evaluation!
* DV: [Nate]
- - write DV API
- - implement DV service
- - implement DV library
+ - write DV API (need to move declarations from dv_api.c to gnunet_dv_service.h!)
+ - implement DV service
+ - implement DV library (looks done)
- implement DV transport plugin
- implement testcases
- implement performance tests
- check if new HELLO learned is different from old HELLO
before resetting entire state!
* FS: [CG]
- - datastore reservation (publishing)
- - search: availability probes
+ - support recursive download even if filename is NULL and we hence
+ do not generate files on disk (use temp_filename)
+ - bound parallelism (# fs downloads)
+ - distinguish in performance tracking and event signalling between
+ downloads that are actually running and those that are merely in the queue
- persistence support (publish, unindex, search, download)
- active migration support (in fs or in datastore or new daemon?)
+ - gnunet-service-fs (hot-path routing, load-based routing, nitpicks)
+ - [gnunet-service-fs.c:208]: member 'LocalGetContext::results_bf_size' is never used
+ - [gnunet-service-fs.c:501]: member 'PendingRequest::used_pids_size' is never used
+ - [gnunet-service-fs.c:654]: member 'ConnectedPeer::last_client_replies' is never used
+ - [gnunet-service-fs.c:669]: member 'ConnectedPeer::avg_delay' is never used
+ - [gnunet-service-fs.c:675]: member 'ConnectedPeer::avg_priority' is never used
+ - [gnunet-service-fs.c:688]: member 'ConnectedPeer::pending_requests' is never used
+ - [gnunet-service-fs.c:694]: member 'ConnectedPeer::last_p2p_replies_woff' is never used
+ - [gnunet-service-fs.c:700]: member 'ConnectedPeer::last_client_replies_woff' is never used
- GAP improvements:
+ active reply route caching design & implementation of service; gap extension!
+* DATASTORE:
+ - API lacks cancellation methods (needed? or is disconnect enough?);
+ may also want to integrate request queuing here instead of gnunet-service-fs_drq.c
* GNUNET-GTK:
- - how to integrate scheduler with GTK event loop!?
+ - use g_main_context_set_poll_func to integrate GTK with GNUnet Scheduler!? (YUCK!)
+ - OR: add scheduler API to enable integration with GTK main loop instead of doing our own select
+ - use g_main_context_pending, g_main_context_query / g_main_context_check / g_main_context_dispatch
+ and NEVER g_main_loop_run (can this be done? might be the clean way to do this! But how
+ to integrate this with "tak_main"? Docu says:
+ "It's OK to use the GLib main loop directly instead of gtk_main(), though it involves
+ slightly more typing. See GMainLoop in the GLib documentation."
+ => so maybe it "just works"?
0.9.0pre2:
* TRACEKIT: [MW]
- good to have for DV/DHT evaluation!
* DHT: [Nate]
- - implement DHT service (needs DV, DATACACHE)
+ - implement DHT service
- implement DHT library
- implement testcases
- implement performance tests
debug output, detect random vs. deterministic crashes)
- shutdown sequence?
* FS: [CG]
+ - datastore reservation (publishing)
+ - search: availability probes
- location URIs (publish, search, download)
- non-anonymous FS service (needs DHT)
+ DHT integration for search
* HOSTLIST:
- 'server' uses 'GNUNET_PEERINFO_iterate', should probably switch to notification API
(for more instant / up-to-date hostlists at lower cost) [OPTIMIZATION]
+* DATASTORE (?):
+ - check for duplicates on insertion (currently, same content is frequently
+ stored again [seen with KBLOCKS and SBLOCKS]!)
Minor features:
* TCP:
- add stats (# bytes available, # bytes used, # PUTs, # GETs, # GETs satisfied)
* FS:
- support inline data in directories for recursive file downloads (fs_download)
+