-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-TESTBED [Nate]
-* SETUP
-* DV [Nate]
-* TBENCH
-* TRACEKIT
-* FRAGMENTATION [Ji Lu]
-* HTTP transport
-* MySQL / Postgres plugins (datastore, datacache)
-* UPNP [Milan]
-* ARM [Safey]
-* FS [Christian]
-
-0.9.0pre0:
-* TRANSPORT:
- - TCP not used bi-directionally (especially important also for PONG!)
- Need a way for plugin to tell to service that it can *reliably* transmit
- PONGs. Need *good* way to ensure only one (plugin) session is active at
- any given point in time; need systematic way to periodically probe latency/
- transport cost changes
- - disconnect notifications from TCP not always as nice as we might want
- them to be (but how can we do this cleanly given that UDP is connectionless?)
- - implement transport API to pretty-print transport address
- + resolve cyclic dependency (gnunet-peerinfo -> transport_api -> peerinfo!)
- + gnunet-transport-service crashes when asked to resolve address (!)
- + asynchronous transport lookup and non-CPS iterator in peerinfo require
- some work to ensure printing in the proper order...
- - instantly filter addresses from *other* peers that
- are *equal* to our own address + port (i.e., localhost:2086). We
- no longer filter those for outgoing (helps with loopback testing
- and keeps the code clean), but we should filter strictly *impossible*
- incoming addresses! This is for efficiency, not correctness.
- - [./transport/gnunet-service-transport.c:173]: (style) struct or union member 'TransportPlugin::rebuild' is never used
- - [./transport/plugin_transport_tcp.c:391]: (style) struct or union member 'Plugin::address_update_task' is never used
-* CORE:
- - SET_KEY is triggered every 2.5 minutes (after session is up); should
- just do PING (not SET_KEY + PING)
- - "Forcing disconnect of XXX due to inactivity" -- can happen every few MS!?
- (disconnect does not really succeed, or what?)
-* HELLO:
- - need function to test "equivalency" of HELLOs; use in topology!
-* FS:
- - GAP improvements:
- + active reply route caching design & implementation of service,
- gap extension!
- - gnunet-publish cannot be aborted using CTRL-C
- - on some systems, keyword search does not find locally published content
- (need testcase of command-line tools!)
- - 2-peer download is still too slow (why?)
- - advanced FS API parts
- + namespaces: fundamental namespace API
- + search: SBlocks, KSBlocks, probes, notify FS-service of known results
- + collection
- + location URIs (publish, search, download)
- + indexing: index-failure-cleanup
- + download: management/bounding of parallel downloads (for recursive dl.)
- + datastore reservation (publishing)
- + gnunet-publish (URI args)
- + gnunet-download (directory)
- + gnunet-search (options, incl. namespace search)
- + gnunet-download (many options)
- + gnunet-directory (man page, options)
- + gnunet-pseudonym (all of it)
- + gnunet-service-fs (remove failing on-demand blocks, hot-path routing, load-based routing, nitpicks)
- - implement adv. FS testcases
- + getopt API
- + insert: sblocks, loc uris
- + download: loc uris
- + search: sblocks, skblocks, loc uris
- + namespaces
- + collection
- - implement FS performance tests
- + insert
- + download
- + search
- + unindex
- - [./fs/gnunet-service-fs.c:208]: (style) struct or union member 'LocalGetContext::results_bf_size' is never used
- - [./fs/gnunet-service-fs.c:501]: (style) struct or union member 'PendingRequest::used_pids_size' is never used
- - [./fs/gnunet-service-fs.c:654]: (style) struct or union member 'ConnectedPeer::last_client_replies' is never used
- - [./fs/gnunet-service-fs.c:669]: (style) struct or union member 'ConnectedPeer::avg_delay' is never used
- - [./fs/gnunet-service-fs.c:675]: (style) struct or union member 'ConnectedPeer::avg_priority' is never used
- - [./fs/gnunet-service-fs.c:688]: (style) struct or union member 'ConnectedPeer::pending_requests' is never used
- - [./fs/gnunet-service-fs.c:694]: (style) struct or union member 'ConnectedPeer::last_p2p_replies_woff' is never used
- - [./fs/gnunet-service-fs.c:700]: (style) struct or union member 'ConnectedPeer::last_client_replies_woff' is never used
-
-* WWW:
- - Get IPv6 hooked up
- - change DNS
-