diff options
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 181 |
1 files changed, 80 insertions, 101 deletions
@@ -1,77 +1,55 @@ | |||
1 | Implementable right now (but not necessarily important), with caveats | 1 | Implementable 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 |
3 | away), in order in which they will likely be done: | 3 | away), 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 | ||
16 | 0.9.0pre0: | 17 | 0.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 | ||
57 | 0.9.0pre1: | 52 | 0.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 | ||
127 | 0.9.0pre2: | 118 | 0.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 | |||
163 | 0.9.0pre3: | 151 | 0.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 | |||
180 | 0.9.0: | 164 | 0.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 | |||
205 | 0.9.x: | 184 | 0.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') |