aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO181
1 files changed, 80 insertions, 101 deletions
diff --git a/TODO b/TODO
index 1ba71ab18..a460da778 100644
--- a/TODO
+++ b/TODO
@@ -1,77 +1,55 @@
1Implementable right now (but not necessarily important), with caveats 1Implementable right now (but not necessarily important), with caveats
2(unavailable components that will limit what can be implemented right 2(unavailable components that will limit what can be implemented right
3away), in order in which they will likely be done: 3away), in order in which they will likely be done:
4* TESTING-TESTBED [Nate] 4* TESTING [Nate]
5* SETUP
6* DV [Nate] 5* DV [Nate]
7* TBENCH 6* DHT [Nate]
8* TRACEKIT 7* TBENCH [MW]
8* TRACEKIT [MW]
9* FRAGMENTATION [Ji Lu] 9* FRAGMENTATION [Ji Lu]
10* HTTP transport 10* HTTP transport [Matthias]
11* MySQL / Postgres plugins (datastore, datacache)
12* UPNP [Milan] 11* UPNP [Milan]
13* ARM [Safey] 12* ARM [Safey]
14* FS [Christian] 13* FS [CG]
14* SETUP
15* MySQL / Postgres plugins (datastore, datacache)
15 16
160.9.0pre0: 170.9.0pre0 [April]:
17* CORE: 18* CORE: [CG]
18 - "Forcing disconnect of XXX due to inactivity" -- can happen every few MS!? 19 - "Forcing disconnect of XXX due to inactivity" -- can happen every few MS!?
19 (disconnect does not really succeed, or what?) 20 (disconnect does not really succeed, or what?)
20 Also, core does not seem to actually decrement the number of active 21 Also, core does not seem to actually decrement the number of active
21 sessions even if no connections exist for a while! (likely related...) 22 sessions even if no connections exist for a while! (likely related...)
22 - transport reports bw quota violations on big-endian systems (core or 23 - transport reports bw quota violations on slow systems (core or
23 transport issue?) 24 transport issue?)
24* DATASTORE: 25* DATASTORE: [CG]
25 - utilization can (easily, restart?) go out of control (very large), causing 26 - utilization can (easily, restart?) go out of control (very large), causing
26 content expiration job to go crazy and delete everything! 27 content expiration job to go crazy and delete everything!
27* FS: 28* FS: [CG]
28 - gnunet-publish cannot be aborted using CTRL-C 29 T gnunet-publish cannot be aborted using CTRL-C
29 - on some systems, keyword search does not find locally published content 30 - on some systems, keyword search does not find locally published content
30 (need testcase of command-line tools! - also good to cover getopt API!) 31 (need testcase of command-line tools! - also good to cover getopt API!)
31 [could be related to datastore issue above!] 32 [could be related to datastore issue above!]
32 - 2-peer download is still too slow (why?) 33 - 2-peer download is still too slow (why?)
33 - advanced FS API parts 34 - advanced FS API parts
34 + search: SBlocks, NBlocks, probes, notify FS-service of known results 35 T gnunet-download (directory-file download [easy])
35 + gnunet-publish (URI args) 36 T fs_download (recursive download; bounded parallelism)
36 + gnunet-download (directory) 37 T indexing: index-failure-cleanup [easy]
37 + gnunet-search (options, incl. namespace search)
38 + gnunet-download (many options)
39 + gnunet-directory (man page, options)
40 + gnunet-pseudonym (listing of namespaces, advertisement uris, testing)
41 + gnunet-service-fs (remove failing on-demand blocks, hot-path routing, 38 + gnunet-service-fs (remove failing on-demand blocks, hot-path routing,
42 load-based routing, nitpicks) 39 load-based routing, nitpicks)
43 + indexing: index-failure-cleanup 40 - [gnunet-service-fs.c:208]: member 'LocalGetContext::results_bf_size' is never used
44 - implement adv. FS testcases 41 - [gnunet-service-fs.c:501]: member 'PendingRequest::used_pids_size' is never used
45 - [./fs/gnunet-service-fs.c:208]: (style) struct or union member 'LocalGetContext::results_bf_size' is never used 42 - [gnunet-service-fs.c:654]: member 'ConnectedPeer::last_client_replies' is never used
46 - [./fs/gnunet-service-fs.c:501]: (style) struct or union member 'PendingRequest::used_pids_size' is never used 43 - [gnunet-service-fs.c:669]: member 'ConnectedPeer::avg_delay' is never used
47 - [./fs/gnunet-service-fs.c:654]: (style) struct or union member 'ConnectedPeer::last_client_replies' is never used 44 - [gnunet-service-fs.c:675]: member 'ConnectedPeer::avg_priority' is never used
48 - [./fs/gnunet-service-fs.c:669]: (style) struct or union member 'ConnectedPeer::avg_delay' is never used 45 - [gnunet-service-fs.c:688]: member 'ConnectedPeer::pending_requests' is never used
49 - [./fs/gnunet-service-fs.c:675]: (style) struct or union member 'ConnectedPeer::avg_priority' is never used 46 - [gnunet-service-fs.c:694]: member 'ConnectedPeer::last_p2p_replies_woff' is never used
50 - [./fs/gnunet-service-fs.c:688]: (style) struct or union member 'ConnectedPeer::pending_requests' is never used 47 - [gnunet-service-fs.c:700]: member 'ConnectedPeer::last_client_replies_woff' is never used
51 - [./fs/gnunet-service-fs.c:694]: (style) struct or union member 'ConnectedPeer::last_p2p_replies_woff' is never used
52 - [./fs/gnunet-service-fs.c:700]: (style) struct or union member 'ConnectedPeer::last_client_replies_woff' is never used
53* WWW: 48* WWW:
54 - Get IPv6 hooked up 49 - Get IPv6 hooked up
55 - change DNS 50 - change DNS
56 51
570.9.0pre1: 520.9.0pre1:
58* Module features to implement:
59 - tbench (RC-pre1)
60 + good to have for DV evaluation! [MW]
61 - DV (RC-pre1)
62 + write DV API
63 + implement DV service [Nate & CG]
64 + implement DV library [Nate]
65 + implement DV transport plugin [Nate & CG]
66 + implement testcases [Nate]
67 + implement performance tests [Nate]
68* SETUP:
69 - design & implement new setup tool
70* GUIs to implement:
71 - gtk (RC-pre1)
72 + how to integrate scheduler with GTK event loop!
73* STATISTICS:
74 - does not seem to work with timeouts (especially if service is not running)
75* PEERINFO: 53* PEERINFO:
76 - trust: need *fast* way to check/update trust in peers 54 - trust: need *fast* way to check/update trust in peers
77 (async peerinfo would not be right; certainly not with the 55 (async peerinfo would not be right; certainly not with the
@@ -82,17 +60,21 @@ away), in order in which they will likely be done:
82 - only connect() sockets that are ready (select()) [Nils] 60 - only connect() sockets that are ready (select()) [Nils]
83 [On W32, we need to select after calling socket before 61 [On W32, we need to select after calling socket before
84 doing connect etc.] 62 doing connect etc.]
85* FS: 63* HELLO: [CG]
86 - datastore reservation (publishing) 64 - need function to test "equivalency" of HELLOs (or integrate with "merge"?); use in PEERINFO
87 - persistence support (publish, unindex, search, download) 65* SETUP:
88 - download: management/bounding of parallel downloads (for recursive dl.) 66 - design & implement new setup tool
89 - non-anonymous FS service (needs DHT) 67* TBENCH: [MW]
90 + basic DHT integration 68 - good to have for transport/DV evaluation!
91 + CS-DHT-functions (DHT-put of LOC) 69* DV: [Nate]
92 + P2P-functions (DHT-get) 70 - write DV API
93 - active migration support (in fs or in datastore or new daemon?) 71 - implement DV service
94 - GAP improvements: 72 - implement DV library
95 + active reply route caching design & implementation of service; gap extension! 73 - implement DV transport plugin
74 - implement testcases
75 - implement performance tests
76* STATISTICS:
77 - does not seem to work with timeouts (especially if service is not running)
96* TOPOLOGY: 78* TOPOLOGY:
97 - needs more testing (especially F2F topology) 79 - needs more testing (especially F2F topology)
98 - needs to re-try connecting after disconnect (currently, it 80 - needs to re-try connecting after disconnect (currently, it
@@ -110,37 +92,40 @@ away), in order in which they will likely be done:
110 disconnect-reconnect events and the implicit whitelisting 92 disconnect-reconnect events and the implicit whitelisting
111 that might happen here; that's not so bad since we will 93 that might happen here; that's not so bad since we will
112 re-blacklist on pre-connect attempts anyway, so this is 94 re-blacklist on pre-connect attempts anyway, so this is
113 a minor issue). 95 a minor issue; OTOH, we might want to be more explicit about
96 allowing/forbidding connects on pre-connect to avoid
97 entering connect attempts to just be blacklisted shortly afterwards).
114 - the code uses the term 'blacklist' for both peers that are forbidden 98 - the code uses the term 'blacklist' for both peers that are forbidden
115 to connect (i.e. F2F mode) as well as peers that we currently 99 to connect (i.e. F2F mode) as well as peers that we currently
116 won't try to actively connect to ourselves (since we just tried); 100 won't try to actively connect to ourselves (since we just tried);
117 This is confusing. We need two distinct terms. 101 This is confusing. We need two distinct terms (greylist?).
118 - move code to use hash table instead of linked list 102 - move code to use hash table instead of linked list
119 - instead of periodically discarding blacklisted entries, 103 - instead of periodically discarding blacklisted entries,
120 simply add task that is triggered at the right time (earlier free, 104 simply add task that is triggered at the right time (earlier free,
121 more balanced load) 105 more balanced load)
122 - check if new HELLO learned is different from old HELLO 106 - check if new HELLO learned is different from old HELLO
123 before resetting entire state! 107 before resetting entire state!
124* HELLO: 108* FS: [CG]
125 - need function to test "equivalency" of HELLOs (or integrate with "merge"?); use in PEERINFO 109 - datastore reservation (publishing)
110 - search: availability probes
111 - persistence support (publish, unindex, search, download)
112 - active migration support (in fs or in datastore or new daemon?)
113 - GAP improvements:
114 + active reply route caching design & implementation of service; gap extension!
115* GNUNET-GTK:
116 - how to integrate scheduler with GTK event loop!?
126 117
1270.9.0pre2: 1180.9.0pre2:
128* Module features to implement: 119* TRACEKIT: [MW]
129 - tracekit (RC-pre2) 120 - good to have for DV/DHT evaluation!
130 + good to have for DV/DHT evaluation! 121* DHT: [Nate]
131 - DHT (RC-pre2) 122 - implement DHT service (needs DV, DATACACHE)
132 + implement DHT service (needs DV, DATACACHE) 123 - implement DHT library
133 + implement DHT library 124 - implement testcases
134 + implement testcases 125 - implement performance tests
135 + implement performance tests 126* TRANSPORT:
136* GUIs to implement: 127 - HTTP backend [MW]
137 - fuse (RC-pre2) 128* ARM: [Safey]
138* Plugins to implement:
139 - UDP backend (RC-pre2)
140 + Fragmentation library
141 + actual plugin
142 - HTTP backend (RC-pre2)
143* ARM:
144 - need to get rid of synchronous API for service starts (cause all kinds of problems) 129 - need to get rid of synchronous API for service starts (cause all kinds of problems)
145 [=> eliminate for need to tell ARM about service starts most of the time!] [Safey] 130 [=> eliminate for need to tell ARM about service starts most of the time!] [Safey]
146 - better tracking of which config changes actually need to cause process restarts by ARM. 131 - better tracking of which config changes actually need to cause process restarts by ARM.
@@ -149,8 +134,12 @@ away), in order in which they will likely be done:
149 - better crash management (attach debugging support, capture and analyze 134 - better crash management (attach debugging support, capture and analyze
150 debug output, detect random vs. deterministic crashes) 135 debug output, detect random vs. deterministic crashes)
151 - shutdown sequence? 136 - shutdown sequence?
152* FS: 137* FS: [CG]
153 - location URIs (publish, search, download) 138 - location URIs (publish, search, download)
139 - non-anonymous FS service (needs DHT)
140 + DHT integration for search
141 + CS-DHT-functions (DHT-put of LOC)
142 + P2P-functions (DHT-get)
154 - collection API & tests 143 - collection API & tests
155 + gnunet-pseudonym (collection support) 144 + gnunet-pseudonym (collection support)
156 - implement FS performance tests 145 - implement FS performance tests
@@ -159,28 +148,20 @@ away), in order in which they will likely be done:
159 + search 148 + search
160 + unindex 149 + unindex
161 150
162
1630.9.0pre3: 1510.9.0pre3:
164* GUIs to implement:
165 - qt (RC-pre3)
166 + see discussions @ FISL about integration with event loop!
167* Determine RC bugs and fix those! 152* Determine RC bugs and fix those!
168* TESTING: 153* TESTING: [Nate]
169 - modify configuration to allow controlling connections for non-local starts 154 - modify configuration to allow controlling connections for non-local starts
170 - testbed creation with topology (needs working F2F topology) [Nate] 155 - testbed creation with topology (needs working F2F topology)
171 - testbed with churn [Nate] 156 - testbed with churn
172 - implement testcases for distributed testing [Nate] 157 - implement testcases for distributed testing
173 - test basic peer re-configure [Nate] 158 - test basic peer re-configure
174 - test topology creation [Nate] 159 - test topology creation
175 - test churn generation [Nate] 160 - test churn generation
176 - consider changing API for peer-group termination to 161 - consider changing API for peer-group termination to
177 call continuation when done 162 call continuation when done
178 163
179
1800.9.0: 1640.9.0:
181* Documentation
182 - update man pages
183 - update webpage documentation
184* new webpage: 165* new webpage:
185 - expand bibliography 166 - expand bibliography
186 - convert documentation pages to books 167 - convert documentation pages to books
@@ -190,20 +171,18 @@ away), in order in which they will likely be done:
190 enable developers to publish TGZs nicely 171 enable developers to publish TGZs nicely
191 - port "contact" page 172 - port "contact" page
192 - add content type for "todo" items? 173 - add content type for "todo" items?
193 - DNS activation 174* Plugins to implement: [CG]
194* Plugins to implement:
195 - MySQL database backends 175 - MySQL database backends
196 + datacache 176 + datacache
197 + datastore 177 + datastore
198 - Postgres database backends 178 - Postgres database backends
199 + datacache 179 + datacache
200 + datastore 180 + datastore
201 - vpn 181* VPN
202* Determine RC bugs and fix those! 182* Determine RC bugs and fix those!
203 183
204
2050.9.x: 1840.9.x:
206* TRANSPORT: 185* TRANSPORT: [MW]
207 - SMTP transport backend 186 - SMTP transport backend
208 - HTTPS transport backend 187 - HTTPS transport backend
209 + improved HTTPS support in MHD 188 + improved HTTPS support in MHD
@@ -226,11 +205,11 @@ away), in order in which they will likely be done:
226 - implement gnunet-transport (transport configurator / tester) 205 - implement gnunet-transport (transport configurator / tester)
227 - UPnP-based IP detection 206 - UPnP-based IP detection
228 (Note: build library always, build service when libxml2/etc. are available) 207 (Note: build library always, build service when libxml2/etc. are available)
229* FS: 208* FS: [CG]
230 - Remove KBlocks in gnunet-unindex (see discussion with Kenneth Almquist on gnunet-devs in 9/2009) 209 - Remove KBlocks in gnunet-unindex (see discussion with Kenneth Almquist on gnunet-devs in 9/2009)
231 - Allow checking of presence of search results and/or content via command-line tools 210 - Allow checking of presence of search results and/or content via command-line tools
232 (add options to gnunet-search / gnunet-download to limit search to local peer) 211 (add options to gnunet-search / gnunet-download to limit search to local peer)
233* PEERINFO: 212* PEERINFO: [CG]
234 - expire 'ancient' HELLOs (those without valid addresses AND that 213 - expire 'ancient' HELLOs (those without valid addresses AND that
235 we have not 'used' (for their public keys) in a while; need a way 214 we have not 'used' (for their public keys) in a while; need a way
236 to track actual 'use') 215 to track actual 'use')