X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=TODO;h=f1044716992ab939fcadb3e1de06fa859bfd2e0f;hb=1152a709e8783e8c0c879b7f407d26ea141a1e4e;hp=7d591bd42e6104d1b4694878c9c9e6ef8418781a;hpb=d175a8b7f6720f5f51524fb26041cb08cea4753b;p=oweals%2Fgnunet.git diff --git a/TODO b/TODO index 7d591bd42..f10447169 100644 --- a/TODO +++ b/TODO @@ -1,83 +1,10 @@ -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 - (async peerinfo would not be right; certainly not with the - current API) + (async peerinfo would not be right; certainly not with the current API) * UTIL: - - scheduler should change OS process priority based on task priority; - should make better use of task priorities in general - 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 - - implement DV transport plugin - - implement testcases - - implement performance tests -* STATISTICS: - - does not seem to work with timeouts (especially if service is not running) + [On W32, we need to select after calling socket before doing connect etc.] * TOPOLOGY: - needs more testing (especially F2F topology) - needs to re-try connecting after disconnect (currently, it @@ -108,22 +35,54 @@ away), in order in which they will likely be done: more balanced load) - check if new HELLO learned is different from old HELLO before resetting entire state! +* 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 * 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! +* TBENCH: [MW] + - good to have for transport/DV evaluation! +* DV: [Nate] + - 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 * 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 "gtk_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"? +* SETUP: + - design & implement new setup tool 0.9.0pre2: * TRACEKIT: [MW] - good to have for DV/DHT evaluation! * DHT: [Nate] - - implement DHT service (needs DV, DATACACHE) - - implement DHT library + - implement DHT service - implement testcases - implement performance tests * TRANSPORT: @@ -138,6 +97,8 @@ away), in order in which they will likely be done: 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 @@ -244,6 +205,9 @@ Optimizations: * 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: @@ -255,3 +219,4 @@ Minor features: - add stats (# bytes available, # bytes used, # PUTs, # GETs, # GETs satisfied) * FS: - support inline data in directories for recursive file downloads (fs_download) +