aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO150
1 files changed, 79 insertions, 71 deletions
diff --git a/TODO b/TODO
index 369528688..c6906eef6 100644
--- a/TODO
+++ b/TODO
@@ -3,6 +3,7 @@
3 - only connect() sockets that are ready (select()) [Nils] 3 - only connect() sockets that are ready (select()) [Nils]
4 [On W32, we need to select after calling socket before doing connect etc.] 4 [On W32, we need to select after calling socket before doing connect etc.]
5* CORE: 5* CORE:
6 - derived key generation [Nils]
6 - Jun 27 11:51:54 core-7670 ERROR Assertion failed at gnunet-service-core.c:3616. 7 - Jun 27 11:51:54 core-7670 ERROR Assertion failed at gnunet-service-core.c:3616.
7 (transport notified us that we connected to ourselves!!!) 8 (transport notified us that we connected to ourselves!!!)
8 - transport-level disconnect (i.e. TCP) does not cause core-level 9 - transport-level disconnect (i.e. TCP) does not cause core-level
@@ -12,36 +13,34 @@
12 => may have been fixed with instant-notification of disconnect 13 => may have been fixed with instant-notification of disconnect
13 to core on session-oriented connection hick-up; not perfect but 14 to core on session-oriented connection hick-up; not perfect but
14 likely good enough until we get ATS going; still should be tested... 15 likely good enough until we get ATS going; still should be tested...
15 => "peers connected (transport)" now instantly goes to ZERO (core statistic), 16` => "peers connected (transport)" now instantly goes to ZERO (core statistic),
16 but "established sessions" stays up... 17 but "established sessions" stays up...
17 - derived key generation [Nils] 18 * PWNAT: [Nate/MW/Nils]
18* PWNAT: [Nate/MW/Nils]
19 - W32 port 19 - W32 port
20* GNUNET-GTK: [CG] 20* GNUNET-GTK: [CG]
21 - bugs: 21 - handle 'lost parent' case for recursive downloads (need to move children!)
22 + handle 'lost parent' case for recursive downloads (need to move children!)
23 22
240.9.0pre3: 230.9.0pre3:
25* Determine RC bugs and fix those! 24* Determine RC bugs and fix those (release should have no known real bugs)
26* DATASTORE: [LT] 25* DATASTORE: [LT]
27 - GNUNET_DATASTORE_cancel method not tested [LT] 26 - GNUNET_DATASTORE_cancel method not tested [LT]
28* TESTING: [Nate] 27* TESTING: [Nate]
29 - test basic peer re-configure 28 - test basic peer re-configure
30 - consider changing API for peer-group termination to 29* TOPOLOGY: [Nate]
31 call continuation when done
32* TOPOLOGY:
33 - needs more testing (especially F2F topology) & transport blacklisting 30 - needs more testing (especially F2F topology) & transport blacklisting
31* TRANSPORT-TCP [MW]:
32 - should use hash map to look up sessions
34* NAT/UPNP: [MW] 33* NAT/UPNP: [MW]
35 - finalize API design 34 - finalize API design
36 - code clean up 35 - code clean up
37 - testing 36 - testing
38 - integration with transport service 37 - integration with transport service
39* MYSQL database backends: [CG] 38 - also do UPnP-based (external) IP detection
40 - datacache 39 (Note: build library always, build UPnP service when dependencies like libxml2 are available)
41* FS: [CG] 40* FS: [CG]
42 - library: 41 - library:
43 + reconstruct IBLOCKS from DBLOCKS if possible (during download; see FIXME in fs_download) 42 + reconstruct IBLOCKS from DBLOCKS if possible (during download; see FIXME in fs_download)
44 + add support for pushing "already seen" search results to FS service for bloomfilter (can wait) 43 + add support for pushing "already seen" search results to FS service for bloomfilter
45 + use different 'priority' for probe downloads vs. normal downloads 44 + use different 'priority' for probe downloads vs. normal downloads
46 - service: 45 - service:
47 + trust: do not charge when "idle" / load considerations (migration, routing) 46 + trust: do not charge when "idle" / load considerations (migration, routing)
@@ -56,25 +55,26 @@
56 + download 55 + download
57 + search 56 + search
58 + unindex 57 + unindex
59* ARM: [CG/Safey] 58 - re-implement gnunet-auto-share
60 - better tracking of which config changes actually need to cause process restarts by ARM.
61 - handle gnunet-arm -k in combination with auto-start magic (what is the right thing here?)
62 - discover dependencies between services
63* GNUNET-GTK: 59* GNUNET-GTK:
64 - optimize meta-data for directories in 'add_dir_at_iter' 60 - optimize meta-data for directories in 'add_dir_at_iter'
65 - add progress dialog for 'add_dir_at_iter' scan (can take a while...)
66 - finish publish dialog details: 61 - finish publish dialog details:
67 + normalize keywords (edit subdialog) 62 + normalize keywords (edit subdialog)
68 + set/view previews (edit subdialog) 63 + set/view previews (edit subdialog)
69 - add tool bar
70 - implement download by URI dialog; figure out where to display those downloads! 64 - implement download by URI dialog; figure out where to display those downloads!
71 - figure out where in the GUI we should show active uploads/unindex operations and allow aborts 65 - figure out where in the GUI we should show active uploads/unindex operations and allow aborts
72 - implement unindex operation (use dialog with all indexed files for selection) 66 - implement unindex operation (use dialog with all indexed files for selection)
73 - do meaningful update to status line (starting up, peer running, #connections, shutdown, ...)
74 - events: 67 - events:
75 + search error 68 + search error
76 + publish error 69 + publish error
77 + unindex error 70 + unindex error
71* POSTGRES database backends: [CG]
72 - datacache
73 - datastore
74* ARM: [CG/Safey]
75 - better tracking of which config changes actually need to cause process restarts by ARM.
76 - handle gnunet-arm -k in combination with auto-start magic (what is the right thing here?)
77 - discover dependencies between services
78* MONKEY: [Safey] 78* MONKEY: [Safey]
79 - better crash management (attach debugging support, capture and analyze 79 - better crash management (attach debugging support, capture and analyze
80 debug output, detect random vs. deterministic crashes) 80 debug output, detect random vs. deterministic crashes)
@@ -82,38 +82,26 @@
82 - '-f FILENAME' option to write report to file instead of e-mail (for testing!) 82 - '-f FILENAME' option to write report to file instead of e-mail (for testing!)
83 83
840.9.0: 840.9.0:
85* new webpage: 85* Determine RC bugs and fix those (release should have no known real bugs)
86* new webpage: [BL]
86 - convert documentation pages to books 87 - convert documentation pages to books
87 - update books (especially for developers) 88 - update books (especially for developers)
88 - make a NICE download page and figure out how to enable developers to publish TGZs nicely 89 - make a NICE download page and figure out how to enable developers to publish TGZs nicely
89 - port "contact" page 90 - port "contact" page
90 - add content type for "todo" items? 91 - add content type for "todo" items
91* POSTGRES database backends: [CG] 92* SETUP: [CG]
92 - datacache
93 - datastore
94* Determine RC bugs and fix those!
95* SETUP:
96 - design & implement new setup tool 93 - design & implement new setup tool
97* TBENCH: [MW] 94* TBENCH: [MW]
98 - good to have for transport/DV evaluation! 95 - good to have for transport/DV evaluation!
99* TRACEKIT: [MW] 96* TRACEKIT: [MW]
100 - good to have for DV/DHT evaluation! 97 - good to have for DHT evaluation!
101* DV:
102 - performance tests
103* DHT: [Nate] 98* DHT: [Nate]
104 - performance tests 99 - performance tests
105* STATISTICS:
106 - test notification-based statistics API [LT]
107 - implement statistics GUI
108* PEERINFO: [NN]
109 - move peerinfo to new GUI?
110 - extend peer dialog with green-yellow-red connectivity status lights
111 - extend peer dialog with country flags and names
112 100
1130.9.x: 1010.9.1:
114* TRANSPORT: [MW] 102* TRANSPORT: [MW]
115 - WiFi transport backend [DB] 103 - WiFi transport backend [DB]
116 - SMTP transport backend 104 - implement gnunet-transport (transport configurator / tester)
117 - Implement method of learning our external addresses from 105 - Implement method of learning our external addresses from
118 other peers; need some kind of threshold-based 106 other peers; need some kind of threshold-based
119 scheme, limiting both the total number of addresses that we accept 107 scheme, limiting both the total number of addresses that we accept
@@ -129,50 +117,70 @@
129 a way to easily "veto" addresses off the list! 117 a way to easily "veto" addresses off the list!
130 => If MiM attacker uses vetoed address, blacklist the specific IP for 118 => If MiM attacker uses vetoed address, blacklist the specific IP for
131 the presumed neighbour! 119 the presumed neighbour!
132 - implement gnunet-transport (transport configurator / tester)
133 - UPnP-based IP detection
134 (Note: build library always, build service when libxml2/etc. are available)
135* DV:
136 - proper bandwidth allocation
137* FS: [CG]
138 - Remove KBlocks in gnunet-unindex (see discussion with Kenneth Almquist on gnunet-devs in 9/2009)
139* PEERINFO: [NN]
140 - expire 'ancient' HELLOs (those without valid addresses AND that
141 we have not 'used' (for their public keys) in a while; need a way
142 to track actual 'use')
143 - make sue we also trigger notifications whenever HELLOs expire
144* VPN [PT]
145* UTIL: [CG]
146 - allow limiting UNIX socket access by UID/GID
147
148
149
150Optimizations:
151* TCP:
152 - should use hash map to look up sessions
153* STATISTICS:
154 - should use BIO instead of mmap
155* TRANSPORT:
156 - need to periodically probe latency/transport cost changes & possibly switch transport 120 - need to periodically probe latency/transport cost changes & possibly switch transport
157 - should use hash map to look up Neighbours (service AND plugins!) 121 - should use hash map to look up Neighbours (service AND plugins!)
122* DV: [Nate]
123 - proper bandwidth allocation
124 - performance tests
158* PEERINFO: 125* PEERINFO:
159 - merge multiple HELLOs of the same peer in the transmission queue 126 - merge multiple HELLOs of the same peer in the transmission queue
160 (theoretically reduces overhead; bounds message queue size) 127 (theoretically reduces overhead; bounds message queue size)
161 - merge multiple iteration requests over "all" peers in the queue 128 - merge multiple iteration requests over "all" peers in the queue
162 (theoretically reduces overhead; bounds messgae queue size) 129 (theoretically reduces overhead; bounds messgae queue size)
163* FS: 130* STATISTICS: [CG]
164 - use different queue prioritization for probe-downloads vs. normal downloads (!?) 131 - should use BIO instead of mmap
132* FS: [CG]
133 - Remove KBlocks in gnunet-unindex (see discussion with Kenneth Almquist on gnunet-devs in 9/2009)
134 - use different queue prioritization for probe-downloads vs. normal downloads
135* UTIL: [CG]
136 - allow limiting UNIX socket access by UID/GID
137* GNUNET-GTK: [CG]
138 - add tool bar
139 - do meaningful update to status line (starting up, peer running, #connections, shutdown, ...)
140 - add progress dialog for 'add_dir_at_iter' scan (can take a while...)
141 - NS list in search dialog should use colors to offset our own namespaces from the others
142 - right-clicking on NS list in search dialog should open menu that allows
143 * viewing full meta data
144 * deletion of namespace info
165 145
166Minor features: 1460.9.2:
147* PEERINFO: [NN]
148 - expire 'ancient' HELLOs (those without valid addresses AND that
149 we have not 'used' (for their public keys) in a while; need a way
150 to track actual 'use')
151 - make sue we also trigger notifications whenever HELLOs expire
167* TCP: 152* TCP:
168 - repeatedly resolve hostname and look up interfaces to determine our own IP 153 - repeatedly resolve hostname and look up interfaces to determine our own IP
169 - [./transport/plugin_transport_tcp.c:391]: (style) struct or union member 'Plugin::address_update_task' is never used (related to issue above) 154 - [./transport/plugin_transport_tcp.c:391]: (style) struct or union member 'Plugin::address_update_task' is never used (related to issue above)
170* TRANSPORT: 155* TRANSPORT:
171 - [./transport/gnunet-service-transport.c:173]: (style) struct or union member 'TransportPlugin::rebuild' is never used (related to TCP not refreshing external addresses?) 156 - [./transport/gnunet-service-transport.c:173]: (style) struct or union member 'TransportPlugin::rebuild' is never used (related to TCP not refreshing external addresses?)
157 - WiFi transport backend
158 * nice signal strength adjustment [MW]
159 * energy cost in ATS [MW]
172* BLOCKS: 160* BLOCKS:
173 - testcase would be nice... 161 - testcase would be nice
174* GNUNET-GTK: 162 - generic block support for DHT
175 - NS list in search dialog should use colors to offset our own namespaces from the others 163* STATISTICS:
176 - right-clicking on NS list in search dialog should open menu that allows 164 - test notification-based statistics API [LT]
177 * viewing full meta data 165 - implement statistics GUI (=> start from gnunet-gtk by button!)
178 * deletion of namespace info 166* PEERINFO: [NN]
167 - move peerinfo to new GUI (=> start from gnunet-gtk by button!)
168 - extend peer dialog with green-yellow-red connectivity status lights
169 - extend peer dialog with country flags and names
170
1710.9.3:
172* SMTP transport backend:
173 - sending (SMTP/SMTPS)
174 - receiving (IMAP/IMAPS/POP?)
175 - rate limiting
176 - improved batching
177 - resource limit integration with ATS
178* VPN [PT]
179 - DNS hijacking
180 - DNS exit
181 - TCP entry/exit
182 - UDP entry/exit
183 - internal services
184 - integration with DHT routing
185 - optimized routes (beyond DHT/DV)
186 - "DNS" .gnunet