X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=TODO;h=28ee222599c0f40a1bd79a60d34fe4dcdd44a53d;hb=9ff5a5b4713dfefc3b42b66fb3865b1435667a77;hp=8c97584cca7620b0378ec5041ff9d8fe31b074c7;hpb=0a217a8df1657b4334b55b0e4a6c7837a8dbcfd9;p=oweals%2Fgnunet.git diff --git a/TODO b/TODO index 8c97584cc..28ee22259 100644 --- a/TODO +++ b/TODO @@ -1,46 +1,76 @@ PHASE #1: (Goal: settle key design questions) -Core: -* API review: should "bpm" and "last_activity" arguments be - included in the ClientEventHandler? -* Internal: topology -* Internal: bandwidth allocation (inbound limits, trust) -* Internal: advertising (propagate other peers' HELLOs, find new ones) -* Internal: bootstrapping - => bootstrap should use plugins, possible multiple at the same time! - Util: -* Should "server" argument be given in event callbacks? -* consider adding "get_time" to "configuration" API - - -PHASE #2: (Goal: recover basic core functionality) +* improve disk API [Nils] +* Windows: use events instead of pipes to signal select()s [Nils] +* only connect() sockets that are ready (select()) + [Nils: I'm not sure what you mean by this; fresh sockets are always + ready for connect(), just 'write' after connect needs select AFAIK; + please clarify. --Christian] + +TESTCASES WANTED: +For these functions, it would be nice if we had testcases ("make check") +that would cause them to be executed and check that they are working: +* gnunet-service-peerinfo: + - change_host_trust / flush_trust + - remove_garbage / + - discard_hosts_helper / cron_clean_data_hosts +* gnunet-service-transport: + - try_unvalidated_addresses + - lookup_address_callback + - lookup_hello_callback + - plugin_env_lookup_address + - notify_clients_disconnect + - list_validated_addresses + - cleanup_validation + - disconnect_neighbour + - handle_set_quota +* plugin_transport_tcp.c: + - tcp_plugin_cancel + - tcp_plugin_address_pretty_printer / append_port + - tcp_plugin_set_receive_quota + - delayed_done +* transport_api: + - GNUNET_TRANSPORT_set_qutoa / send_set_quota + - hello_wait_timeout + - transmit_ready + - transmit_timeout + - remove_from_any_list / remove_neighbour + - GNUNET_TRANSPORT_notify_transmit_ready_cancel +* core_api: + - timeout_request + - solicit_traffic / copy_and_free + - GNUNET_CORE_peer_configure / produce_configure_message +* gnunet-service-core: + - update_window + - find_client + - handle_client_request_configure + - set_key_retry_task + - align_and_deliver + - handle_transport_notify_disconnect +* hostlist (everything) +* topology (everything) + + + +PHASE #2: (Goal: recover basic file-sharing functionality) Datastores: * implement sqlite-based sqstore/datastore service - + implement library (talks to service) + implement service (datastore + talks to plugin) + + implement library (talks to service) + implement sqlite plugin (talks to DB) + + fix testcases (make them use CPS, complete their inner workings...) * implement sqlite-based dstore services + + design API + implement library (talks to service) + implement service (talks to plugin) + implement sqlite plugin (talks to DB) Applications: -* implement hostlist service (need to bootstrap!) * DHT, DV * FS / fs-libs -Databases: -* mysql & postgres backend - -Transports: -* UDP backend (need LIBRARY to support (de)fragmentation!) -* HTTP backend -* Testing: - + Testcases for set_quota, timeouts, disconnects, transmit_ready_cancel - + Better coverage of gnunet-service-transport (hello validation) - + direct test of plugins compliance to plugin API PHASE #3: (Goal: ready for pre-release) [completion-goal: end of 2009] @@ -52,15 +82,29 @@ PHASE #3: (Goal: ready for pre-release) [completion-goal: end of 2009] * tracekit * vpn +Transports: +* UDP backend (need LIBRARY to support (de)fragmentation!) +* HTTP backend +* Testing: + + Testcases for set_quota, timeouts, disconnects, transmit_ready_cancel + + Better coverage of gnunet-service-transport (hello validation) + + direct test of plugins compliance to plugin API + +Databases: +* sqlite, mysql & postgres backend + Minor TODO items: +* UTIL: + - crypto_hash: use libgcrypt (supports SHA-512 since 2003) + - container_bloomfilter: improve efficiency (see FIXME) * SERVER: - inefficient memmove * TRANSPORT: - transport_api: support forcing disconnects through low quotas! - - API: consider having core provide priority and possibly - deadline information for each message + (required for working F2F support!) + - API: consider having core provide deadline information for each message (likely important for DV plugin which wants to loop back!) - implement transport API to pretty-print transport address + transport_api extension (API extension!) @@ -105,6 +149,8 @@ Minor TODO items: - implement exponential back-off for service restarts - better tracking of which config changes actually need to cause process restarts by ARM. - have way to specify dependencies between services (to manage ARM restarts better) + - client-API is inefficient since it opens a TCP connection per service that is started + (instead of re-using connections). * PEERINFO: - have gnunet-peerinfo print actual host addresses again - add option to gnunet-peerinfo to modify trust value @@ -116,6 +162,11 @@ Minor TODO items: * GAP improvements: - active reply route caching design & implementation of service, gap extension! +* HOSTLIST: + - implement advertising of hostlist URL + - implement learning of hostlist URLs + + => PRE-RELEASE @@ -147,4 +198,17 @@ Stuff to remember: Test coverage: -* UTIL: 75%, 4914 out of 6463 +* UTIL : 78.7% +* HELLO : 93.7% +* ARM : 69.9% +* RESOLVER : 60.4% +* STATISTICS: 82.8% +* PEERINFO : 71.5% +* TRANSPORT : 70.9% +* CORE : 65.8% +=================== +* TOTAL : 74.9% + +Not yet tested: +* HOSTLIST : 0.0% +* TOPOLOGY : 0.0%