Author: grothoff Date: 2008-02-16 17:29:58 -0700 (Sat, 16 Feb 2008) New Revision: 6333
Modified: GNUnet-docs/WWW/hacking_afs.php3 GNUnet-docs/WWW/hacking_application.php3 GNUnet-docs/WWW/hacking_testcases.php3 GNUnet-docs/WWW/hacking_threading.php3 GNUnet-docs/WWW/todo Log: docs Modified: GNUnet-docs/WWW/hacking_afs.php3 =================================================================== --- GNUnet-docs/WWW/hacking_afs.php3 2008-02-17 00:16:22 UTC (rev 6332) +++ GNUnet-docs/WWW/hacking_afs.php3 2008-02-17 00:29:58 UTC (rev 6333) @@ -7,17 +7,17 @@ H2("The File-Sharing code in GNUnet"); afslogo(); P(); -W("The file-sharing code falls roughly into five main groups: the ECRS encoding, the SQSTORE database, the FS module, GAP and DHT routing and the user interface(s)."); +W("The file-sharing code falls roughly into five main groups: the ECRS encoding, the SQSTORE database, the FS module, DHT routing and the user interface(s)."); W("The ECRS code is responsible for breaking the file into blocks, encoding, decoding and verification of these blocks, inserting and requesting blocks and other fundamental functions."); W("The SQSTORE database services are responsible for storing the blocks."); W("The user interface consists of a shared library (FSUI) that does the actual work and several user interfaces (gnunet-insert, gnunet-gtk) which provide a way for the user to access the functionality provided by FSUI."); -W("The GAP and DHT routing services are responsible for deciding which peers should receive which queries (and where to send replies back to)."); -W("The major difference between GAP and DHT is that GAP is expected to achieve anonymity whereas DHT is mostly concerned with performance."); +W("The DHT routing services are responsible for deciding which peers should receive which queries (and where to send replies back to) for non-anonymous routing."); +W("Anonymous routing is integrated into the FS module."); +W("The FS module also provides communication with clients (the client side is done by the FSLIB helper library), tracking of requests, planning of anonymous routing, content migration and management of the SQSTORE (with help of the DATASTORE module)."); +W("The FS module selects between anonymous and DHT routing services depending on the desired level of anonymity."); W("The user interface code consists mostly of straight-forward wrappers around the FSUI and ECRS libraries."); W("For a description of the user interface from the point of the user, see the %s.", intlink_("user_afs.php3", "File-sharing user documentation")); -W("The FS module is what holds the file-sharing system together, connecting ECRS, the SQSTORE, the local clients and the routing services."); -W("The FS module selects between the GAP and DHT routing services depending on the desired level of anonymity."); P(); H3("libgnunet_ecrs"); @@ -34,8 +34,6 @@ H3("The GAP Module"); W("The %s provides the code for anonymous routing of file-sharing requests."); extlink_("doxygen/html/gap_8c.html", "gap module")); -W("GAP queues requests and keeps track of the previous node on the path for sending replies."); -W("GAP uses the blockstore provided by the file-sharing module to communicate replies to local clients, to migrate content and to verify that replies match the queries (ECRS verification)."); P(); H3("The SQStore Module"); @@ -46,12 +44,15 @@ ANCHOR("fs");H3("FS application module"); W("The code in this directory contains the shared library (or plugin) that gnunetd loads in order to participate in (anonymous) file sharing."); -W("It uses GAP or RPC for routing requests and the SQStore to store information about shared files."); +W("FS queues requests and keeps track of the previous node on the path for sending replies."); W("The FS module itself is responsible for deciding which content should be stored locally."); +W("FS uses the DATASTORE module to store data, to lookup queries and for content migration."); +W("FS also manages on-demand encoded data."); +W("The ECRS_CORE library is used by FS and ECRS to verify that replies match the queries (ECRS verification)."); +W("FS uses the DHT for non-anonymous routing."); W("The decision is based on the frequency and priority of requests for the content and the available diskspace."); -W("A %s is used to reduce the number of accesses to the database.", +W("A %s is used (by the DATASTORE module) to reduce the number of accesses to the SQSTORE module.", extlink_("download/bloomfilter.ps", "bloomfilter")); -W("Content migration is also controlled by the FS module."); P(); ANCHOR("FSUI");H3("libgnunet_fsui"); Modified: GNUnet-docs/WWW/hacking_application.php3 =================================================================== --- GNUnet-docs/WWW/hacking_application.php3 2008-02-17 00:16:22 UTC (rev 6332) +++ GNUnet-docs/WWW/hacking_application.php3 2008-02-17 00:29:58 UTC (rev 6333) @@ -52,7 +52,7 @@ W("Do not use <tt>fork()</tt> or similar functions."); echo "</li>"; echo "<li>"; -W("Use <tt>PTHREAD_SLEEP()</tt> instead of <tt>sleep()</tt>."); +W("Use <tt>GNUNET_thread_sleep()</tt> instead of <tt>sleep()</tt>."); echo "</li>"; echo "<li>"; W("Use <tt>DIR_SEPARATOR</tt> and <tt>DIR_SEPARATOR_STR</tt> instead of plain slashes."); @@ -61,7 +61,7 @@ W("Use the uppercase macros defined in <tt>platform.h</tt> (for example, <tt>CHDIR()</tt> instead of <tt>chdir()</tt>, <tt>CONNECT()</tt> instead of <tt>connect()</tt>)."); echo "</li>"; echo "<li>"; -W("Use <tt>disk_file_open()</tt> instead of <tt>open()</tt>"); +W("Use <tt>GNUNET_disk_file_open()</tt> instead of <tt>open()</tt>"); echo "</li>"; echo "<li>"; W("If an I/O function is missing in <tt>platform.h</tt>, ask the GNUnet developers."); Modified: GNUnet-docs/WWW/hacking_testcases.php3 =================================================================== --- GNUnet-docs/WWW/hacking_testcases.php3 2008-02-17 00:16:22 UTC (rev 6332) +++ GNUnet-docs/WWW/hacking_testcases.php3 2008-02-17 00:29:58 UTC (rev 6333) @@ -55,10 +55,10 @@ W("The following code illustrates spawning and killing a <tt>gnunetd</tt> process from a testcase:"); EP(); PRE("pid_t daemon; \n" . - "daemon = os_daemon_start(NULL, cfg, \"peer.conf\", NO);\n" . + "daemon = GNUNET_daemon_start(NULL, cfg, \"peer.conf\", NO);\n" . "/* put actual testcode here */\n" . "if (daemon != -1) {\n" . - " if (YES != os_daemon_stop(NULL, daemon))\n" . + " if (YES != GNUNET_daemon_stop(NULL, daemon))\n" . " DIE_STRERROR(\"kill\");\n" . "}\n"); BP(); Modified: GNUnet-docs/WWW/hacking_threading.php3 =================================================================== --- GNUnet-docs/WWW/hacking_threading.php3 2008-02-17 00:16:22 UTC (rev 6332) +++ GNUnet-docs/WWW/hacking_threading.php3 2008-02-17 00:29:58 UTC (rev 6333) @@ -16,7 +16,7 @@ W("The core may call registered callback handlers at any time, and also concurrently."); W("The application modules are responsible for synchronizing access to their internal state properly."); echo "</strong>"; -W("In practice, client code will use <tt>MUTEX_CREATE</tt> in initializers and then guard access to mutable global shared state using <tt>MUTEX_LOCK</tt> and <tt>MUTEX_UNLOCK</tt>."); +W("In practice, client code will use <tt>GNUNET_mutex_create</tt> in initializers and then guard access to mutable global shared state using <tt>GNUNET_mutex_lock</tt> and <tt>GNUNET_mutex_unlock</tt>."); echo "</li><li><strong>"; W("In order to avoid deadlocks, code that was called via callback from the core may not invoke methods on the core while holding locks of the application."); echo "</strong>"; @@ -67,7 +67,7 @@ echo "<ul><li>"; W("You should never use <tt>pthread_detach</tt>."); W("There is hardly ever a good reason for it, and it can be the source of subtle bugs."); -W("Write a shutdown-sequence for your code and make sure to use <tt>pthread_join</tt> on all created threads."); +W("Write a shutdown-sequence for your code and make sure to use <tt>GNUNET_thread_join</tt> on all created threads."); echo "</li></ul>"; include("html_footer.php3"); ?> \ No newline at end of file Modified: GNUnet-docs/WWW/todo =================================================================== --- GNUnet-docs/WWW/todo 2008-02-17 00:16:22 UTC (rev 6332) +++ GNUnet-docs/WWW/todo 2008-02-17 00:29:58 UTC (rev 6333) @@ -1,6 +1,6 @@ NEW content to be written: -1) TCP6, UDP6, HTTP -2) P2P tbench, tracekit +1) All CS protocols +2) P2P tbench 3) CS tbench, tracekit 4) Internal Service APIs (stats, identity, pingpong, rpc, traffic, transport, dht) 5) application library APIs (fs, ecrs, fsui, getoption, stats, traffic, dht) _______________________________________________ GNUnet-SVN mailing list GNUnet-SVN@gnu.org http://lists.gnu.org/mailman/listinfo/gnunet-svn