Releasing GNUnet 0.9.0pre3. Instead of listing all that has changed, here is the short list of what is known NOT to work, in order of minor flaws to major issues, by module: * FS still has a few missing features, but largely works * DATASTORE is O(n) where it should be O(log n) for some operations * TRANSPORT-UDP does not work (only messages < 1500 bytes, no fragmentation) * TESTING does not support incremental HELLO changes * TRANSPORT ATS is not used for actual bandwidth assignment, important options to make it truly useful are still missing * NAT traversal partially works for TCP (ICMP-based method only) * MESH does not work (mock API emulates for VPN) * VPN is experimental * TRANSPORT-WLAN is experimental * CHAT is experimental, has known bugs and was not reviewed yet * MONKEY is highly experimental * FRAGMENTATION library is not implemented With this release we will finally start with a detailed accounting of changes in the ChangeLog. Thu Dec 23 23:33:05 CET 2010 Releasing GNUnet 0.9.0pre2. Thu Oct 7 20:51:05 CEST 2010 Removed dependency on GNU MP (GMP). The code now uses the libgcrypt MPI interface. Sat Jul 3 20:47:45 CEST 2010 Releasing GNUnet 0.9.0pre1. Wed Jun 23 16:34:38 CEST 2010 Added support for systemd-compatible passing of listen-sockets by ARM to services as well as systemd compatibility for gnunet-service-arm itself. At least for non-MINGW systems this should work. Sat Jun 5 18:08:39 CEST 2010 Added support for UNIX domain sockets, code also defaults to them when available. Sun May 2 13:49:10 CEST 2010 Fixed problem with platform-dependence of format for IP addresses in HELLOs for TCP and UDP transport. Reduced address length field in HELLOs to 16 bit (was 32 bit). These changes break transport compatibility. Fri Apr 16 18:19:05 CEST 2010 Nearly complete rewrite and new overall architecture. Many features are still missing, but basic system seems to be working again. Maybe time to again track major changes in the ChangeLog. Releasing 0.9.0pre0. Sun Feb 1 19:51:40 MST 2009 Fixed Mantis #1429 (struct padding could cause sizeof to be different on AMD64, using gcc-ism "packed" to avoid this problem). Sun Feb 1 00:37:16 MST 2009 Fixed problem in DHT client protocol that could cause PUT requests from clients to be (frequently) lost. Sun Nov 2 16:06:47 MST 2008 Fixed problem with MySQL disconnects in one module impacting MySQL correctness in another module (caused crashes). Sat Aug 16 00:18:34 CEST 2008 Improved keyword extraction Fixed expiration time of keywords Releasing 0.8.0b. Sun Jul 20 15:27:11 MDT 2008 Releasing 0.8.0a. Thu Jul 10 00:59:31 MDT 2008 Fixed bug where datastore resizing would not result in bloomfilter update during gnunet-update. Sat Jun 28 23:43:00 MDT 2008 Fixed bug preventing namespace advertisements from being processed. Sat Jun 14 00:54:39 MDT 2008 Releasing 0.8.0. Fri Jun 13 23:51:00 MDT 2008 GNUnet now compiles on OpenBSD. Wed Jun 11 22:17:09 MDT 2008 Made state of gnunet-auto-share persistent. Added support for multiple directories. Improved FSUI/ECRS APIs to reduce the number of threads needed for probing. Increased number of concurrent probes allowed. Sat Jun 7 17:54:49 MDT 2008 Simplified namespaces a lot. Shorter timeouts for trying to connect to gnunetd to prevent interactive apps from blocking too long when gnunetd is not running. Sun Jun 1 21:11:54 MDT 2008 Releasing 0.8.0pre1. Sun Jun 1 13:41:27 MDT 2008 Split of libgnunetpseudonym from libgnunetnamespace (with major API extension and changes). Tue May 6 04:10:02 MDT 2008 Added simple sanity check for [MODULES] values. Added "-s" and "-q" options to gnunet-peer-info. Thu Apr 24 00:05:17 MDT 2008 Simplified FSUI stop/abort/pause/resume API calls (no need to pass FSUI context anymore). Mon Apr 21 21:05:20 MDT 2008 Adding buffered IO for FSUI's serialize and deserialize code. Sun Apr 20 20:01:20 MDT 2008 Fixed bug in HTTP transport causing lonely messages (responses to GET) not to be delivered. Mon Mar 24 21:15:36 MDT 2008 Fixed various problems with downloading locally indexed large files (downloading large files from other peers should not have been a problem). Sun Mar 2 15:33:41 MST 2008 Added option to allow user to disable IPv6 support. Releasing 0.8.0pre0. Sat Mar 1 21:14:02 MST 2008 Fixed some dstore performance issues. Made transports alternate between trying IPv4 and IPv6 if both are available (since one of them maybe misconfigured). Mon Feb 25 23:25:48 MST 2008 Cleanup of the DNS code: removed GNUNET_IPvXAddress and GNUNET_PRIP; centralized all DNS lookup code in util/network/dns.c; improved IPv6 support for network-client code. Mon Feb 25 00:01:27 MST 2008 Added asynchronous search and download methods for ECRS library. FSUI now can do with only one thread per search or download (until now, we had two threads per search / download). Tue Feb 19 20:35:28 MST 2008 Updated database schemata to support O(1) operations even if there are N files under the same keywords. This breaks database backwards compatibility (and no migration code is provided). Mon Feb 18 19:47:37 MST 2008 Added new options -u and -s to gnunet-insert. Sat Feb 16 21:37:33 MST 2008 Implemented gnunet-auto-share for automatic sharing of directories. Thu Feb 14 01:02:32 MST 2008 Made HTTP transport work over IPv6 as well. Wed Feb 13 22:59:07 MST 2008 Modified mySQL and SQLite datastores to return diverse result sets during (partial) hash-based get iterations (should result in more diverse keyword result sets). Tue Feb 12 23:54:34 MST 2008 First shot at integrated hostlist HTTP server based on libmicrohttpd. Sat Feb 9 22:06:23 MST 2008 Minor changes to the ECRS/FSUI APIs for searches (no more timeouts and/or max-results). Clients who need these features could easily implement them directly (and they are not really useful to begin with). Also, the IPv4 and IPv6 protocols are being integrated so that we only listen to one port (running both IPv4 and IPv6 over the same port). This break transport compatibility, but given that we're breaking protocol compatibility for file-sharing already, this may actually be a bit of a good thing (since it will now be possible to tell if peers running the new GAP code are connected to other peers running the new GAP code). Sun Feb 3 13:17:09 MST 2008 Dramatic changes to the GAP implementation (breaking protocol compatibility). Essentially, we can save a few bytes in each reply. More importantly, the new code allows the searching client to specify a set of replies that are not desired (hopefully helping to dramatically increase the diversity of search replies obtained over time). Note that the actual encoding and databases are not affected (just P2P protocol). The update is not complete yet, but should compile. Tue Jan 8 20:07:20 MST 2008 Added option for testing ("make check") to use weak(er) PRNG for key generation (thanks to Werner Koch for pointing out how to do it). Thu Dec 22 20:10:37 MST 2007 Releasing GNUnet 0.7.3. Sun Dec 9 14:34:32 MST 2007 Implemented MySQL version of the dstore-module. This means that sqLite is now again truly optional. Sat Dec 8 15:15:53 MST 2007 Integrated F2F topology into main topology module (options are used to choose between F2F-only (old F2F), minimum number of friend connections (NEW) or entirely arbitrary connection set (default)). Thu Dec 6 20:51:17 MST 2007 The SMTP transport is working again. Thu Nov 22 20:49:16 MST 2007 United all libgnunetutil_*.so libraries into one big libgnunetutil.so library (eliminates issues for binary packagers and reduces file size by about 20%). Also made sure that all exported symbols start with "GNUNET_". Sat Sep 29 16:48:24 MDT 2007 Improved MySQL sqstore module performance. Releasing GNUnet 0.7.2c. Sat Sep 8 18:01:36 MDT 2007 HTTP transport seems finally ready. Sat Aug 25 23:58:21 MDT 2007 New and improved gnunet-setup GTK interface. Mon Jul 30 00:07:44 MDT 2007 Releasing GNUnet 0.7.2b. Sun Jul 29 01:53:32 MDT 2007 Fixing log rotation. Sat Jul 21 23:42:11 MDT 2007 Radical changes to MySQL implementation (trying to address certain scalability issues). Sat Jul 7 00:22:47 MDT 2007 Releasing GNUnet 0.7.2a. Fri Jul 6 22:54:52 MDT 2007 Fixed bugs in F2F topology code. Eliminated a few confusing LOG messages. Sun Jul 1 20:35:00 MDT 2007 Fixed issue with too many TCP connections being created. Reduced CPU overheads by increasing requirements for grouping of messages. Improved various error messages. Sat Jun 30 01:55:34 MDT 2007 Improved bloomfilter recomputation after quota change. Fixed bloomfilter size computation. You must run gnunet-update (will take a while). Fri Jun 29 00:56:03 MDT 2007 Avoid re-connecting shortly after connection was shutdown. Thu Jun 28 01:10:01 MDT 2007 Fixed high-latency problems for certain SQLite operations. Also improved SQLite performance (but not scalability) a bit. Resolved MySQL disconnect crash (gnunetd would crash if mysqld was stopped). Sat Jun 23 16:56:03 MDT 2007 Improved CPU consumption from content migration code by querying the DB less often, using the same content for more peers (at the expense of 1 MB extra memory utilization). Fixed a deadlock. Wed Jun 20 17:10:38 MDT 2007 Fixed bug in MySQL module. Sun Jun 17 00:09:13 MDT 2007 Releasing GNUnet 0.7.2. Sat Jun 16 04:43:20 MDT 2007 http transport is amost back, now needing the new libmicrohttpd. However, the code is still highly experimental and not ready for production use. Fri Jun 8 23:44:01 MDT 2007 Fixed bugs preventing namespace search from working. Also extended testcase to cover namespace search. Tue May 29 23:15:27 MDT 2007 Fixed a major bug which resulted in peers without traffic between them disconnecting (even if that session was their only connection). Fixed another major bug where nodes would not properly forward HELLOs from other peers (given certain common/default configuration options). Sun May 27 22:39:48 MDT 2007 Added new API gnunet_testing_lib.h to make it easier to write testcases that need to start gnunetd. API is now used everywhere and the ugly peer.conf files and directories are gone. Fixed a bug with inserting empty directories. Extended ECRS API to allow partial file download. Sat May 26 18:24:15 MDT 2007 Fixed bugs with testcases (changes in names and structure of options were not reflected in .conf files for various testcases). Fixed issues with command-line option handling (failed to override configuration file options). Fixed bogus nesting in GAP routing algorithm (caused random request drops). Fri May 25 12:23:38 MDT 2007 Finished extended URITRACK API. Renamed various (minor) libraries and function calls to get somewhat more consistent naming conventions. Sun Apr 15 22:15:37 MDT 2007 Implemented heuristic for better packing of gnunet-directories. Sun Mar 25 13:47:08 MDT 2007 Releasing GNUnet 0.7.1c. Wed Feb 28 15:29:05 MST 2007 Enabled abortion of gnunet-peer-info with CTRL-C. Mon Feb 26 19:19:29 MST 2007 Fixed handling of -d option by gnunet-download if -f option is not given. Sat Feb 24 15:43:14 MST 2007 Fixed various bugs related to content expiration. Completed message coverage in stats implementation. Fri Feb 23 17:55:46 MST 2007 Fixed potential deadlock during download shutdown sequence. Thu Feb 15 21:54:15 MST 2007 Added support for IO load detection. Sun Feb 11 13:53:13 MST 2007 Releasing GNUnet 0.7.1b. Thu Feb 8 13:21:34 MST 2007 Updating gettext to 0.16.1. Minor bugfix in build process (#1180, #1181). Minor bugfix in gnunet-search (#1179). Sun Jan 28 02:43:37 MST 2007 Improving support for multiple choice configuration items in gnunet-setup. Sat Jan 27 16:02:02 MST 2007 Changing $-expansion for interpretation of configuration file (again). Also, now the base-path for gnunetd defaults to "/var/lib/gnunet" instead of "/var/lib/GNUnet". Tue Jan 23 19:48:37 MST 2007 Fixed problem with split-extractor keywords not being used for uploads. Tue Jan 16 21:43:26 MST 2007 Expanded transport APIs to avoid building messages for transmission just to have them rejected by blocking TCPs with full transmission queues (happened quite a bit). Mon Jan 8 22:21:15 MST 2007 Making computation of send buffer permuations more efficient (in terms of calling weak_randomi) by only computing permuations over the actually selected messages. Mon Jan 8 21:34:02 MST 2007 Forcing -O3 for crypto library (performance critical). Enforcing message queue limit for daemon (somehow got lost on the way to 0.7.1, was responsible for high CPU load). Fixing cron job deletion in core (clean shutdown). Sun Dec 31 23:56:31 MST 2006 ncurses may need "-lm" in order to link. Releasing GNUnet 0.7.1a. Sat Dec 30 00:21:49 MST 2006 DHT routing now seems to work (not integrated with file-sharing, only for gnunet-dht-query). Fri Dec 29 09:38:53 MST 2006 Added UPnP support to GNUnet (IPv4 only, #843). Thu Dec 28 21:22:10 MST 2006 Hostname resolution with gnunet-peer-info implemented (#1076). Proper linking of gnunet-pseudonym (#1161). Drop group permissions when changing user (#1162). gnunet-download support for directory files implemented (#1013). Thu Dec 28 20:44:45 MST 2006 Hopefully fixing build problems on certain systems with unusual installation of iconv. Tue Dec 26 20:54:03 MST 2006 Added additional gnunet-gtk options to client configuration specification file. Sun Dec 24 18:06:04 MST 2006 Limit memory utilization by select write queue. Improved select write buffering (fewer malloc/free operations and less copying). Sat Dec 23 22:12:17 MST 2006 Updated various man pages and some configuration documentation. Fixed TCP transport (did not work with NAT if port was set to 0). Fixed verbose option for gnunet-transport-check. Updated hostlist scripts in contrib/ to reflect new protocol IDs. Allow aborting of gnunet-transport-check with CTRL-C. Allow testing of bi-directional transports behind NAT with gnunet-transport-check. Fri Dec 22 19:21:25 MST 2006 Added option to set maximum number of file descriptors (convenience for OS X users where the default is too low). Releasing GNUnet 0.7.1. Thu Dec 21 20:03:07 MST 2006 Fixed gnunet-insert "-e" option. Fixed various crashes in client code. Improved OS X portability. Tue Dec 19 19:03:48 MST 2006 Allowing GNUnet (without gnunet-setup) to be build on systems without guile. Sun Dec 17 16:54:33 MST 2006 Various improvements for OS X portability. CPU load detection fix for Solaris. Sat Dec 16 11:42:13 MST 2006 Bugfixes in collection library (gnunet-pseudonym). Mon Dec 11 21:11:54 MST 2006 Implemented ncurses/dialog based gnunet-setup wizard. Releasing GNUnet 0.7.1pre2. Sun Dec 10 00:36:11 MST 2006 Fixed load calculation code. More aggressive utilization of available resources. Mon Dec 4 13:24:12 MST 2006 Releasing GNUnet 0.7.1pre1. Wed Nov 29 22:20:26 MST 2006 Fixed various bugs with (de)serialization of FSUI state and closing searches with associated downloads. Extended FSUI test suite. Mon Nov 27 08:51:46 MST 2006 Added conversion of ECRS error messages to FSUI error event messages. Sun Nov 19 00:20:14 MST 2006 Improved error handling. gnunetd now can communicate text error messages to clients (not just error codes). Wed Nov 15 23:17:36 MST 2006 Fixed expiration time setting. Improved bias of migration towards valuable content. Releasing GNUnet 0.7.1pre0. Wed Nov 1 20:58:44 MST 2006 Fixed MySQL database size underreporting. Wed Nov 1 13:09:53 MST 2006 Fixed some problems with index creation in sqlite datastore (discovered with new sqlite benchmarking code). Performance should improve significantly (observed was a factor of 4-10 depending on database size and operation). Thu Oct 19 23:44:24 MDT 2006 Completed huge update to FSUI API (not fully debugged). Major changes include: * clients can associate pointer with each action * abort methods can cancel action (but do not stop everything) * upload and unindex operations can now be suspended and resumed * cleaned up naming conventions Thu Sep 14 23:44:17 MDT 2006 Breaking UDP transport protocol compatibility -- some fields have to be switched around to make it work with the new select code. Expect to see some warnings when interacting with 0.7.0 peers. Tue Sep 5 21:28:25 PDT 2006 Switched ncurses interface of gnunet-setup to use external dialog library (new dependency!). Fri Aug 18 00:01:37 PDT 2006 Swiched http bootstrap mechanism to using libcurl (new dependency!). Sat May 20 08:37:02 PDT 2006 Releasing GNUnet 0.7.0e. Sun May 14 02:51:15 PDT 2006 Major gnunet-setup GTK code cleanup (now uses libglade). Sat May 13 19:35:49 PDT 2006 Made headers more C++ friendly. Wed May 10 22:11:17 PDT 2006 Fixing bug that could result in hanging the UDP transport; found by Luigi Auriemma (thanks!). Sat May 6 00:17:59 PDT 2006 Releasing GNUnet 0.7.0d. Fri May 5 01:33:42 PDT 2006 Fixed bug with priorities of IBlocks of uploaded content (priority was left at zero, making those blocks be possibly discarded rather quickly once the datastore filled up). Tue May 2 00:01:25 PDT 2006 Fixed bug in gap where the tracking of query origins for optimizing routing paths lacked a simple assignment of the query origin (found by code inspection). As a result, routing performance should improve further. Also fixed small memory leak in gap and reduced memory consumption by fixing Mantis #1058. Sat Apr 22 13:50:39 PDT 2006 Fixed bug in util/cron.c where stopCron() would wait for an unnecessary sleep to complete. Sat Mar 18 12:54:11 PST 2006 Releasing GNUnet 0.7.0c. Thu Mar 16 22:14:01 PST 2006 Fixing various routing problems (resulting in better utilization of bandwidth by routing more content and less queries). Wed Mar 15 00:00:14 PST 2006 Fixing various content migration bugs (one that disabled it, one that made it unlikely that migration was even tried, and then various crashes in formerly dead code). Mon Jan 23 19:04:17 PST 2006 Added Swedish translation. Sun Jan 1 21:35:59 PST 2006 Reduced amount of hashing done to be O(n) and not O(n^2) for n local search results (for example, for 100 results, this can make the difference between hashing 200 MB and hashing 20 MB). Sat Dec 31 17:02:37 PST 2005 Added support for using -k multiple times in gnunet-pseudonym. Wen Dec 28 00:22:54 CET 2005 Fixed deadlock in http transport. Fri Dec 23 17:17:18 PST 2005 Releasing GNUnet 0.7.0b. Sat Nov 19 16:00:16 PST 2005 Releasing GNUnet 0.7.0a. Fri Oct 7 15:28:02 PDT 2005 Fixing Mantis #946. Thu Sep 15 23:56:39 PDT 2005 Fixed various gcc 4.0 warnings. Sun Aug 28 15:29:56 PDT 2005 Releasing GNUnet 0.7.0. Sun Aug 28 01:46:26 PDT 2005 Updated German translation. Tue Aug 23 00:45:57 PDT 2005 Fixed undersynchronization that may result in segv if pending download was cancelled. Mon Aug 22 00:37:11 PDT 2005 Made "UPDATE" use a prepared statement in MySQL datastore. Sun Aug 21 23:08:57 PDT 2005 Fixed bugs causing unnecessary long delays for downloads from loopback. Also now bypassing routing table for loopback download (faster, avoids pollution of the routing table when not needed). Sun Aug 21 18:42:14 PDT 2005 Fixed memory leak in gnunet-insert -R. Improved memory utilization by SQlite dramatically (see discussion on gnunet-developers). Sat Aug 20 21:04:28 PDT 2005 Fixed (rare) segmentation fault in insertion code. Sat Aug 20 19:31:10 PDT 2005 Yet another tiny bug -- but one that hangs gnunetd; fixed in pre6a. Sat Aug 20 13:51:01 PDT 2005 Releasing 0.7.0pre6. Sat Aug 20 12:51:27 PDT 2005 Changed sqlite data format to avoid encoding-decoding (breaks compatibility with previous datastores, in particular since conversion code is NOT provided). The page size was also increased, rendering the database files incompatible, too. Thu Aug 18 21:18:28 PDT 2005 Made quotations match GNU standards. Wed Aug 17 20:05:19 PDT 2005 Fixed bug that would prevent P2P messages from being transmitted under certain (common) circumstances. Mon Aug 15 00:08:47 PDT 2005 Bugfest. Fixed various bugs in MySQL, fragmentation, core and fs (see Mantis for more details). Mon Jul 18 01:03:05 CEST 2005 Alpha-rename fest. Releasing 0.7.0pre5. Sun Jul 17 13:49:40 CEST 2005 Fixed problems with struct alignment on 64-bit AMDs. Fixed recently introduced memory leak. Fixed various compiler warnings. Sat Jul 16 23:55:31 CEST 2005 Fixed various minor problems with platforms without gettext/NLS support and for 64-bit size_ts. Also fixed a couple of other compiler warnings. Cleaned up connection.c code. Mon Jul 11 14:41:18 CEST 2005 Fixed tiny memory leak in http_bootstrap. Mon Jul 11 02:22:24 CEST 2005 Fixed long-standing problems in statuscalls wrt network load estimates, leading to too-high bandwidth consumption on average. Fixed minor memory leaks. Fixed far too often session-key exchange (was done also for sessions that were already up). Thu Jul 7 15:22:21 CEST 2005 Fixed bug in identity, missing ntohs for protocol ID. Fixed bug in topology, wrong calculation of saturation. Wed Jul 6 22:34:30 CEST 2005 Fixed bugs in core with respect to possible infinite recursion caused by fragmentation callbacks. Also differenciated between fatal transport sends and transient transport sends. Cleanup of some APIs. Sat Jul 2 17:21:07 CEST 2005 Fixed bugs in gnunet-pseudonym (listing of namespaces), FSUI (double-free for namespace creation), cleaned up APIs and implemented clearing of completed downloads (FSUI). Releasing 0.7.0pre4. Fri Jul 1 15:08:42 CEST 2005 Added statistics for transports and other connection- related functions. Prevented core from dropping messages just because transport is (temporarily) blocked. Made transport selection in identity random again where necessary. Thu Jun 30 20:05:15 CEST 2005 Added cache for KBlocks (can speed up insertion speed for recursive inserts quite a bit). Thu Jun 30 13:52:17 CEST 2005 Enabled IPv6 by default. Fixed various minor bugs. Tue Jun 28 13:41:58 UTC 2005 Fixed various open FIXMEs, including error handling, bad performance and some memory leaks (gnunet-tools only, not in gnunetd). Mon Jun 27 17:21:09 CEST 2005 Fixed double-free segfault. Fixed problem with session timeout not happening. Fixed issue with too lazy slot reclaim for reconnect. Made reconnect scanning more incremental (1/10th of the work every 500ms instead of full work every 5s). Fixed memory leak in advertisement processing. Sun Jun 26 18:21:17 CEST 2005 Plenty of bugfixes everywhere, gnunet-setup works now. Releasing 0.7.0pre3. Sat Jun 11 11:25:24 EST 2005 Fixed various problems with recursive upload (thread stack size too small, wrong filenames passed around, wrong list of filenames updated). Sat Apr 2 01:54:23 EST 2005 Various bugfixes, some of them critical (segfaults, protocol errors (resulting in failures to connect), old version of configuration file would be generated if configuration was missing, gnunet-insert would not properly work with multiple keywords (-k and -K options)). Releasing 0.7.0pre2. Thu Mar 31 21:38:06 EST 2005 Releasing 0.7.0pre1. Tue Mar 8 14:45:55 EST 2005 OpenSSL cannot fully support SHA-512. Eliminated as an option (not necessary, GPL incompatible, trouble, work to maintain -- in summary: not worth it). Sat Mar 5 00:33:51 EST 2005 Changing hash algorithm to SHA-512. Changing symcipher algorithm to AES-256. Sun Feb 27 21:59:31 EST 2005 All unit testcases pass. Releasing 0.7.0pre0. Sat Feb 12 17:35:08 EST 2005 Fixed mysql-test. Changed MySQL to use prepared statements, avoids conversion (mysql_escape_string) and is faster on the server-side, too. Wed Dec 15 20:47:40 EST 2004 Removed support for password encryption of namespace keys. Hardly used and adds hardly any security. Encrypt /home if you need this, would be more effective anyway. Fri Nov 26 06:27:12 EST 2004 Sessionkey exchange works now, at least with OpenSSL. There seems to be some quirk in some version of libcrypt with respect to RSA encryption. Anyway, it is a heisenbug (sometimes RSA decryption does not result in what was originally encrypted), but I have the feeling this problem existed already in 0.6.5 -- and it is now detected and does not occur all the time. Tue Nov 23 02:35:50 EST 2004 The CVS may look like it's compiling, but that's just because most of the service modules are not even attempted. And without those, nothing will work. But in good news, util, transport and server do compile now. Sun Nov 21 03:53:22 EST 2004 Starting to make incompatible changes. Once this is commited to CVS (which will only happen once at least some parts compile again), this version will no longer be compatible with any previously released version of GNUnet (and highly experimental). Do not yet use the new code on-line, do not expect it to work at all! Sun Nov 14 16:49:02 EST 2004 Debugged collections, seems to work (not that it looks pretty, but it basically works, the rest is UI work). Fixed deadlock in gnunet-gtk logging. Releasing GNUnet 0.6.5. Thu Nov 4 09:04:48 EST 2004 Added (highly experimental) support for collections. Sat Sep 25 22:29:48 EST 2004 Releasing GNUnet 0.6.4a. Sun Sep 19 23:39:04 EST 2004 Various code cleanups and minor bugfixes. Sun Aug 29 15:11:28 IST 2004 Releasing GNUnet 0.6.4. Tue Aug 24 20:59:14 IST 2004 Significant enhancements to namespaces. A namespace can now be annotated with meta-data at the time that it is created. Sat Aug 21 01:00:06 IST 2004 Adding GNU gettext support to configure. Thu Aug 19 01:26:55 IST 2004 Migrating gnunet-gtk to GTK 2.0 (tested with 2.4). Mon Aug 16 00:30:59 IST 2004 Removed gcry. Added dependency on GNU MP library (libgmp) for kblocks. Tue Aug 3 17:57:43 IST 2004 Fixed bugs in gnunet-update. Fixed segfault in AFS startup. Fixed warnings in gnunet-peer-info/gnunetd. Fixed packaging error (not all of util/gcry included in distribution). Releasing GNUnet 0.6.3a. Mon Aug 2 20:06:07 IST 2004 Releasing GNUnet 0.6.3. Sun Aug 1 01:31:19 IST 2004 Changed most places from HexName to the new, shorter EncName. Pushed URIs for namespaces and keyword searches into more widespread use. Replaced all occurences of sprintf with SNPRINTF (to obtain extra bounds check). Sun Jul 11 13:54:01 IST 2004 Moved testcases for libgnunet_util to util/ directory. Made DB testcases in afs/module/ run for each available database and not just the one configured in /etc/gnunet.conf. Fri Jun 25 21:05:59 IST 2004 Releasing GNUnet 0.6.2b (resolves various minor bugs). Wed May 5 17:34:39 EST 2004 Releasing GNUnet 0.6.2a (resolves libgcrypt and packageing issues, improved gtk-statistics, other minor bugfixes). Fri Apr 30 21:36:23 EST 2004 Fixed synchronization problem in cron (only relevant for parallel downloading). Releasing GNUnet 0.6.2. Mon Apr 26 21:13:45 EST 2004 Added support to gnunet-check to convert file index database to new design. Removed support for pre 0.6.1b bloomfilter conversion (would have been too messy to support both). Added old-version check to gnunetd startup to make updates more systematic in the future (not perfect, though). Mon Apr 26 19:27:29 EST 2004 Recursive insertion of directories with gnunet-gtk now works including the progress bar. Sun Apr 25 18:24:55 EST 2004 Global changes to fix bug #698. The fix is still incomplete with respect to pthread.h specific structs. Sun Apr 25 15:20:29 EST 2004 Fixed compile error in IPv6 transports. Fri Apr 23 23:38:01 EST 2004 Added recursive insertion of directories to gnunet-gtk. Progress-bar does not work yet, also libextractor is always used (no option to turn it off). Fri Apr 23 21:49:18 EST 2004 Removed need to specify _protocol in configuration file (shorter is better). Wed Apr 21 23:32:36 EST 2004 Added code to bound priority used by clients by twice the average priority of requests from other peers that are routed at the moment. That prevents clients from exposing themselves with excessively high priorities (and also avoids giving too much credit/trust needlessly). Tue Apr 20 22:27:19 EST 2004 Added possibility of using a link instead of making a copy if gnunetd and the insert-client both run on the same machine. Tue Apr 20 00:00:58 EST 2004 Added network transparency for indexing files (by copying them to a GNUnet(d) specific directory). This breaks unindexing (for files indexed with previous versions) and forces the user to make a copy of the file. In the near future we should resolve this problem by allowing the use of a link. Sun Apr 18 17:24:34 EST 2004 Adding recursive, parallel download of directories to gnunet-download Sun Apr 18 01:57:32 EST 2004 gnunet-transport-check can now be used to check external connectivity (with other peers). Sat Apr 17 17:46:19 EST 2004 Reduced memory consuption for AFS insertion and download. Sat Apr 10 21:17:46 EST 2004 Implemented statistics-plot in gnunet-gtk based on gnome-system-monitor code. Fri Apr 9 22:01:51 EST 2004 Added support for libextractor > 0.2.7. Fri Apr 9 0:29:20 EST 2004 Completed --help conversion. Wed Mar 31 15:40:51 EST 2004 Releasing 0.6.1d. Tue Mar 30 22:42:13 EST 2004 Integrated gnunet-pseudonym-create, -delete and -list into gnunet-pseudonym as well as gnunet-directory-list, -emptydb and -print into gnunet-directory. Tue Mar 2 10:46:01 EST 2004 Fixing bug preventing download for indexed files <= 1k. Sat Feb 28 03:43:34 EST 2004 Releasing 0.6.1c. Sat Feb 21 06:16:47 EST 2004 Modified requestmanager to improve performance at the end of the download. Thu Feb 19 00:48:33 EST 2004 Fixed integer underflow possibly causing slow download performance. Sun Feb 15 15:17:05 EST 2004 Fixed weak key failures with libgcrypt. Sun Feb 15 13:14:44 EST 2004 New routing code (untested) commited. Sun Feb 15 11:58:10 EST 2004 Fixing problem with 64-bit size_t on alpha (#655). Sat Jan 31 04:32:33 EST 2004 Releasing 0.6.1b. Fri Jan 23 00:00:09 EST 2004 Fixed indexed content being overwritten by migrated content Thu Jan 22 19:27:33 EST 2004 Fixed integer-overflow problems in statuscalls. Fixed missing ttl/priority adjustment for NS-Queries. Fixed bug in routing that would let very old queries survive. Thu Jan 15 23:14:54 EST 2004 Fixed size of super-bloomfilter (was factor of 32 to small). Fixed option -r of gnunet-check (would not increment bloom filters to appropriate value). Wed Dec 31 17:07:40 EST 2003 Fixed various routing and bandwidth allocation problems. Releasing 0.6.1a. Wed Dec 24 00:00:00 EST 2003 Releasing 0.6.1. Fri Dec 19 00:57:29 EST 2003 NAT transport passes tests. Sat Dec 13 00:16:41 EST 2003 Added NAT transport. Thu Oct 16 19:20:29 EST 2003 Added greedy knapsack heuristic for use by CPU-overloaded systems. Mon Oct 13 22:36:45 EST 2003 Improved gnunet-gtk code that forks of gnunetd (some extra checking, use fork-exec instead of system(), pass configuration file as argument). Sun Oct 12 03:42:55 EST 2003 Split bandwidth montoring into up and downstream. Why stop sending replies merely because we *receive* traffic!? Also reduced frequency of HELO exchange. Added more statistics (traffic by type). Fri Oct 10 02:05:13 EST 2003 Fixed bug that wasted a lot of CPU time. Better CPU usage control by making knapsack solving (frequency and problem size) dependent on CPU load. Thu Oct 9 14:29:35 EST 2003 Releasing 0.6.0a. Sun Oct 5 21:35:23 EST 2003 GNUnet 0.6.0 released. Sat Oct 4 12:54:55 EST 2003 Fixed bug in timer code (discovered in testcase). Added extensive testcases for platform dependent code. Fri Sep 19 01:38:00 EST 2003 Added code to allow namespace queries to return multiple results. Updates are now displayed in separate tabs. Wed Sep 17 23:54:15 EST 2003 Migrated libgcrypt code in util to comply with libgcrypt 1.1.43 (and it passes the tests just fine) Wed Sep 17 22:59:16 EST 2003 Fixed problems with updates in namespaces in the GTK code. Added boolean search capability (x AND y) to GTK search. Made namespace search frequency respect TTL delays. Thu Aug 21 19:42:57 EST 2003 GNUnet 0.5.5 released. Tue Aug 12 20:48:39 EST 2003 Support for namespaces with updates is there, but requires testing. Sun Jul 27 14:48:19 EST 2003 Added download summary window to gnunet-gtk. Fri Jul 25 14:15:37 CET 2003 Unioned gnunet-insert-multi and gnunet-insert-sblock into gnunet-insert. Thu Jun 26 23:22:12 EST 2003 Added draft support for directories. Thu Jun 26 23:21:41 EST 2003 GNUnet 0.5.4a released Sat Jun 14 19:21:41 EST 2003 Added support for HTTP-PROXY to download the hostlist. Wed May 29 01:13:15 EST 2003 Fixing some ugly bugs in connection.c that caused permanent connection-drop and connection-establish cycles (every 5 minutes). Sat May 24 03:12:42 EST 2003 Migrated subset of libgcrypt into GNUnet tree to use it instead of OpenSSL or libgcrypt. RSA in the new code is broken at the moment. Sun May 18 04:10:25 EST 2003 GNUnet 0.5.4 released. Sat May 10 21:39:35 EST 2003 Only download hostlist after a while if we were not able to connect (to reduce load on hostlist servers). Fri May 2 23:20:15 EST 2003 Added code to handle massive collisions in datastore (thousands of files under the same keyword). Sun Apr 27 23:52:12 EST 2003 GNUnet 0.5.3 released. Wed Apr 23 03:20:21 EST 2003 Build system cleanup, location of mysql, gdbm, tdb and db can now be specified. Mon Apr 21 01:54:24 EST 2003 Made random content selection with pIdx faster (do not read entire pidx files) and fully random (added code to weigh pidx files by number of entries). Sun Apr 20 23:25:45 EST 2003 Fixed double-free in TCP transport code (seems to have only had a real chance to occur under BSD in practice). Sat Apr 19 14:42:37 EST 2003 Replaced use of dlopen for plugins with the more portable ltdl from libtool. Thu Apr 17 20:36:42 EST 2003 Added synchronization to pIdx, also use truncate to remove last n entries instead of re-writing the entire file (much, much faster). Mon Apr 7 00:00:07 EST 2003 Implemented gnunet-delete. Sat Apr 5 15:55:31 EST 2003 Made directory database use 256 sub-directories (should increase speed a lot, with the new DB manager, this will result in at most 2048 files per directory). Mon Mar 31 16:51:24 EST 2003 gnunet-convert and gnunet-check compile again with the new DB code. Sun Mar 30 13:14:52 CET 2003 Added BSD DB (libdb) support. Sun Mar 23 04:04:38 EST 2003 Big gnunet-gtk cleanup. Tue Mar 18 01:52:18 EST 2003 Releasing 0.5.2a. Sun Mar 16 20:24:24 EST 2003 Caching of RSA signatures for HELOs reduced CPU usage dramatically, from an average of 31% to less than 5% on my machine. Sun Mar 16 01:21:16 EST 2003 Fixed locking problem and problem with TCP transport (bad set of sockets in select). Sat Mar 15 03:02:42 EST 2003 Fixed bug that copied wrong content (garbage) into replies for other peers. This one was introduced briefly before 0.5.2. Argh. Fri Feb 28 00:23:02 EST 2003 Fixed segfault in gnunet-gtk when closing search sub-window. Thu Feb 27 16:23:20 EST 2003 Releasing GNUnet 0.5.2. Mon Feb 24 00:28:52 EST 2003 Cleaning up the AFS routing code, also some tweaks to improve anonymity against an active attacker. Thu Feb 20 23:51:30 EST 2003 gnunet-tracekit works now nicely (and with dot). Also, GNUnet now attempts to locate a configuration file in /etc/gnunet.conf if ~/.gnunet/gnunet.conf does not exist (and nothing is specified on the command line). Wed Feb 12 23:21:44 EST 2003 Fixed deadlock between pingpong and connection module. Tue Feb 4 13:22:09 EST 2003 Releasing GNUnet 0.5.1(a). Tue Feb 4 04:05:58 EST 2003 RSA encryption of OpenSSL has been changed to pure PKCS #1 to achieve compatibility with libgcrypt. Mon Feb 3 18:46:54 EST 2003 RSA signature encoding has been changed from raw to PKCS #1 compatible encoding. This should help making the migration to libgcrypt easier in the future. RSA & libgcrypt are still not friends, but the GNUnet code should be mostly there. Fri Jan 31 10:40:01 EST 2003 gnunet-peer-info tool was added. This tool can prints information about all known peers and may be useful for diagnostics. Mon Jan 20 17:54:51 EST 2003 A large number of memory leaks got fixed thanks to the new automated scripts to find them. Thu Jan 16 00:49:20 EST 2003 Nearly finished removing dependencies on OpenSSL (using libgcrypt instead), $FOO-expansion in configuration parsing and RSA (public key crypto) are the only missing pieces. Mon Jan 13 01:53:45 EST 2003 Fixed deadlock in gnunetd (would stop processing messages). Sun Dec 27 13:34:11 CET 2002 Fixed segmentation fault that occured when number of known peers goes over 128. Sat Dec 21 16:27:11 CET 2002 Releasing GNUnet 0.5.0. Sat Dec 14 03:47:05 CET 2002 Bugfixes over bugfixes. Various memory leaks from gnunetd to gnunet-download, problems with bloomfilters and gnunet-check, enforcing storage limitations set by the user, fixes in the UDP, TCP and SMTP transports; better thread termination (avoid asynchronous cancellation). Not to mention the new tools gnunet-transport-check and gnunet-tbench for the evaulation of correctness and performance of the transport services. Wed Nov 6 22:49:24 EST 2002 Added load smoothing for network and CPU load such that we quickly adapt to increasing load, but slowly reduce the (effective) load value used in the policy if the load drops. This should help avoiding 0-1 policies where we always jump up and down between 100% load and no load, letting in one period all traffic through and in the next none. Wed Nov 6 00:31:39 EST 2002 Added port==0 for UDP and TCP transport as an option to indicate that the transport is to be used only to establish connections to other peers but not as a server-socket (that is, if the port is 0, other GNUnet peers can not connect to the local node's UDP or TCP port, but the local node can still use UDP (unidirectional) or TCP (even bi-directional) to talk to other peers. This is useful if a node is behind a NAT box and can not receive inbound traffic but is able to send messages to other peers (and in the case of TCP even receive messages if the local peer initiated the bi-directional connection). Currently, a peer must always provide at least one transport under which the peer can be "actively" reached since otherwise other peers will not keep the public key of that peer and thus not be able to complete the session key exchange. For NAT-box peers, SMTP might be a viable choice for that "active" protocol. Fri Oct 11 02:16:42 EST 2002 Added bloomfilter interface and calls to the BF from the AFS service implementation. Missing for working bloomfilter are calls from gnunet-insert to update the bloom-filter (top-CHK and super-queries) and the actual bloom-filter implementation. Tue Oct 8 20:35:45 EST 2002 TCP transport now works with only one thread (using select) instead of one thread per peer-connection. Fri Sep 27 02:24:52 EST 2002 New content encoding (still only 1k blocks, but with CHK style IBocks and GBlocks for aggressive content migration) now seems to work. Mon Sep 16 01:57:55 EST 2002 Implemented gnunet-chat, a demo-application for how to develop p2p applications on top of GNUnet. Sun Sep 15 22:48:28 EST 2002 Fixing (long standing) problem with segfaults under BSD due to stack overflow in threads. Sun Sep 15 02:04:52 EST 2002 TCP transport layer implementation seems to work now. gnunet.conf is now documented on the web. HELO exchange is fixed, so is the CS-connection whitelisting. Fri Sep 13 00:51:01 EST 2002 Update on the progress towards 0.4.9. What is missing? * new content encoding to facilitate: - content migration - discriminated routing (downloads vs. searches) - variable blocksize (?) - self-synchronizing stream encoding (?) * additional transport layers (SMTP, TCP, HTTP) * demo application (chat) for how to use the API * documentation on new gnunet.conf * known bugs: - Igor reports, HELO exchange is broken - David reports, CS-connection whitelisting is broken - rpm.spec is outdated (add GNUnet's dynamic libraries) What has been resolved so far: Major: * transport and application layer have been abstracted * dynamic loading of transports and applications is implemented * routing much faster since slots are freed earlier * querymanager is more intelligent in where to send queries (presumably, not tested) Refactoring: * configuration can store options from commandline * statistics is totally dynamic and can be extended * connection buffer does callbacks on applications to fill buffers with queries instead of noise, and the querymanager makes use of this Moving: * common/ is gone * gnettypes.h is gone * AFS specific code is all in AFS * renaming is also done Sun Aug 25 15:30:56 EST 2002 Moving work towards 0.4.9 to CVS. The major goals are: * independent transport layer (UDP, TCP, SMTP, HTTP, any of these should be possible in the future); also, the MTU may be defined differently by any one of them. * independent application layer. Anonymous File Sharing (AFS) should just be one application for the GNUnet core. Other minor goals and refactorings include: * configuration - we should be able to update dynamically options from the gnunet.conf file. E.g. by adding options from the command line * statistics - we should not have a hardwired fixed set of datapoints, the statistics module should be useful for any kind of statistics * noise reduction - the connection buffer should allow the use of intelligent applications that get notified if noise would be send and then can plug in useful data And then there is just moving stuff: * move "common/" to where it belongs (either applications or server) * gnettypes is bad if we want to seperate app specifcs and core. The typedefs should be placed where they are used * database does not belong in util, it's AFS specific * AFS: cleaner separation between database, encoding, protocol implementation, shell-tools and GUI code. And finally, renaming: * if we have TCP for peer-to-peer communications, we can't use "TCP" vs. "UDP" to distinguish p2p from client-server, thus: "UDP" becomes "p2p" and "TCP" becomes "CS". At least where they were used to distinguish node-to-node and client-server (gnunetd). Sun Aug 25 15:02:31 EST 2002 Releasing GNUnet 0.4.6. Thu Aug 22 01:31:21 EEST 2002 gnunet-gtk should now be able to perform multiple search and download operations simultaneously (atleast a couple). Tue Aug 20 23:11:10 EEST 2002 Fixed segfault in gnunet-search and gnunet-gtk which appeared when there was lots of results. Modified gnunetd to return more results at once if there is excess bandwidth. Sun Aug 18 23:57:10 EST 2002 Reworked the lookup-database. The old database got into trouble storing data when it was 6% full. Some simulations show that the new approach should manage 94% and should be about as fast (more CPU, presumably slightly fewer random disc accesses). This change is INCOMPATIBLE with 0.4.5. You *must* run "gnunet-check -a" before starting this new version of gnunetd in order to migrate to the new format. For database simulation and statistical numbers, see also src/historical/simula.c. Fri Aug 16 17:07:15 EST 2002 Releasing GNUnet 0.4.5. Fri Aug 16 16:43:39 EST 2002 Added feature that will allow the specification of multiple URLs for downloading the initial hostlist. Mon Aug 12 02:28:14 EST 2002 Fixed big problem in requestmanager that would make downloads *very* slow for no good reason at all (ttl increment in wrong place would make us defer the next request for more than twice as long as needed, plus some other minor bugs). Mon Aug 12 01:31:03 EST 2002 Fixed bug #347 (option "-H" to gnunet-clients for connecting to a remote gnunetd node). Mon Aug 12 01:10:17 EST 2002 Fixed bug #348 (no more scan of the entire database on startup, instead the databases (gdbm, tdb) contain an entry that gives the nubmer of entries). Note that this is not done for contentdatabase_directory. Sun Aug 11 17:00:03 EEST 2002 Crude file insertion capabilities added to gnunet-gtk gui. Thu Aug 8 19:13:34 EST 2002 Added progress bar / printing of insertion status to gnunet-insert (option "-V"). Thu Aug 8 19:02:33 EST 2002 Cleaning up code (establishing sessions, etc.) Thu Aug 8 18:03:05 EST 2002 Fixed bug #343 (overflow in stats) by moving to long long. Let's hope that __BYTE_ORDER is actually defined outside of netinet/in.h. Thu Aug 8 17:47:17 EST 2002 Fixed gnunetd segfaulting if gnunet.conf is not available. Also, recvfrom returning -1 with errno == EAGAIN was fixed earlier. Wed Jul 31 23:38:36 EST 2002 Released 0.4.4. Wed Jul 31 21:35:53 EST 2002 Fixed bug with TCP connection that would not free thread resources and eventually lead to gnunetd not being able to start new threads anymore (mantis: #339). Tue Jul 30 23:38:51 EST 2002 Fixed SIGHUP exiting. The main loop was exiting because recvfrom returned -1 with errno EINTR, which caused us to break out of the main loop. Also added gnunetd.pid file to simplify killing (or re-reading configuration of) the server. You must specify the PIDFILE in gnunet.conf! Tue Jul 30 20:38:47 EST 2002 Started writing code to enable re-reading of the configuration file whenever we receive a SIGHUP. Works, except that after we've read the new config file, gnunetd exits (unknown why). Mon Jul 29 18:52:23 EST 2002 Added shutdown code that terminates connection when SIGTERM is received (to avoid keeping lots of UDP traffic for the next couple of minutes from hosts that still believe we're up). Sat Jul 27 12:39:47 EST 2002 Added code to measure network load asymmetrically (useful for DSL users). Fri Jul 26 22:46:54 EST 2002 Released 0.4.3. Wed Jul 24 21:13:08 EST 2002 Fixed bug in locking and segfault (Linux tolerated, BSD crashed, both in connection.c), added logging service. Tue Jul 23 00:41:17 EST 2002 Made gnunetd fork like a nice deamon should. Also started to add a logging service. Sun Jul 21 20:39:20 EST 2002 Fixed issue with check_database (index checking too strict if content is available in database and on-demand encoded; also a bounds check was missing). Sun Jul 21 16:05:20 EST 2002 Fixed deadlock in heloexchange (knownhost requires recursive lock). Sun Jul 21 02:02:32 EST 2002 Improved routing table. Now does more dynamic memory allocation, reducing the fixed-size per slot from 700 to 56 bytes. Increased number of slots from 512 to 8092 (which is the optimal number for a 56 kbps modem connection). Sat Jul 20 23:57:06 EST 2002 Fixed bug that caused problems for files that were indexed and that had spaces in the filename. Wed Jul 17 22:50:24 EST 2002 Fixed bug that prohibited a transitive HELO exchange in many cases. Wed Jul 17 01:48:44 EST 2002 Fixed a couple of bugs in gnunet-check and the insertion-tools. Now gnunet-check seems to run like a charm. Running it to detect and fix problems in the GNUnet databases seems now recommendable :-). Note that you must stop gnunetd before running gnunet-check. Mon Jul 15 22:27:45 EST 2002 Added return values for insertion. If we run out of space (in particular for the fixed-size index database), we can now communicate the problem to the user. gnunet-check is now pretty much feature-complete, but it takes of course very, very long to run. There is now also a man-page for gnunet-check. Thu Jul 11 11:33:34 EST 2002 Added randomized order of blocks for the download (patch by I. Wronsky). Thu Jun 20 21:13:21 EST 2002 Added HANGUP, a message send if one side terminates the connection. Sending the message is optional, but it is nicer to have it. Also started on gnunet-check, a tool to check database consistency. Thu Jun 20 03:11:01 EST 2002 Improved handling of collisions in the hashes in the lookup module (uses no longer a linear scan on the collisions file but a hashtable for the collisions!). Tue Jun 18 20:29:38 EST 2002 Released GNUnet 0.4.2. Tue Jun 18 20:20:55 EST 2002 Fixed bugs in blacklisting IPs. Added feature to allow specification which networks are trusted enough to connect to the trusted TCP port (TCP/2086 no longer needs to be firewalled!). Tue Jun 18 02:35:53 EST 2002 Fixed problems with ttl (negative TTL queries were forwarded), also better flushing of buffers and fewer SKEY exchanges due to a now working implementation of the blacklist. A DNS lookup for the NAT-box-IP configuration was also added. Sun Jun 16 04:11:01 EST 2002 Added code to provide statistics (gnunet-stats). Incomplete. Sun Jun 9 22:56:02 EST 2002 Released GNUnet 0.4.1. Sat Jun 8 05:00:36 EST 2002 Several small bugfixes (list of shared files not updated on insertion, highest-bit of trust not interpreted as dirty, rpm dependency on libextractor added. Also many improvments to the build process. Wed Jun 5 17:01:58 EST 2002 Made sure that HELOs don't trigger Ping-Pong if we don't really learn anything new. Tue Jun 4 17:17:45 EST 2002 The port numbers were not in network-byte order. Fixing this is trivial, but it breaks compatibility with 0.4.0. Thanks to Rick Kennell for reporting the endianess issue. Mon Jun 3 20:35:47 EST 2002 Fixed bug with CRC not endian-converted in gnunet-gtk. Added mimetype and filename support to gnunet-gtk. Sun Jun 2 03:52:18 EST 2002 Released 0.4.0. Sat Jun 1 22:13:12 EST 2002 Added three-way handshake for SKEY exchange. Not tested. Sat Jun 1 16:55:18 EST 2002 Fixed potential DDoS problem where malicious hosts could trick GNUnet servers to repeatedly probe a non-partitipating host trying to establish a connection. I wonder how many other p2p systems are vulnerable. (Fix: after HELO, play PING-PONG). The endianess issues should be fixed throughout the system, but not tested on a real machine so far. Sat May 25 15:55:11 EST 2002 Moved to new CVS server. First changes towards 0.4.0: * mostly-big-endian * insert/index via TCP * bugfixes (mostly performance) Sat May 18 16:00:06 EST 2002 Added mimetype, filename and version number to RootNodes (mostly incompatible change!). Added automatic generic keyword and mime-type extraction via libextractor to gnunet-insert. Tue May 14 23:59:40 EST 2002 New storage database is starting to look good. We can now store the data in a directory (one file per block), a gdbm database, and presumably (not tested) in a tdb database. Sat May 11 22:10:56 EST 2002 Completed, deployed and tested the new TCPIO code. This changes the gnunetd-client protocol. Essentially, we convert the TCP stream into records with a length and type header. This should allow us to fix bug #212 and add other features in the future. The current change is really only changing the core TCP code and not anything around it. We should deploy some demultiplexing code later. Tue May 7 20:56:40 EST 2002 Added IP blacklisting (for virtual private networks). Sat May 4 14:08:23 EST 2002 Fixed bug with bad insertion of files smaller than 1k. Fri May 3 23:25:16 EST 2002 Added IP change detection (useful for dialup) [bug #272]. Added code to ensure that a HELO is life instantly after receiving it, fixing the 'unknown host, refusing SKEY problem' (bug #273). Other minor bugfixes (#274, #283). Sun Apr 14 22:36:03 EST 2002 Added option to allow NAT boxes not to exchange foreign HELOs and thus expose the private network. Fixed bug that all other hosts should in fact do this exchange. Sat Apr 13 11:02:59 EST 2002 Make sure that files are readable before returning TRUE in assertIsFile() Fri Apr 12 03:01:06 EST 2002 Added padding messages with random if maximum packet size is not reached. All encrypted packets now look absolutely uniform in size for a non-participating adversary (before, a host that had few queries may have sent packets that were less than the maximum size). Thu Apr 11 01:43:28 EST 2002 Added sequence numbers to protocol to defend against replay attacks (bug #185). Wed Apr 10 02:07:25 EST 2002 Bugfix gnunet-insert-mp3 (endless loop). Updated documentation. Mon Apr 8 00:07:15 EST 2002 Fixed endless-loop bug when activemigration is turned on (during startup). Fri Apr 5 02:03:13 EST 2002 Released 0.3.3. Fri Apr 5 00:33:42 EST 2002 gnunet-gtk, the gtk+ based GUI is now functional and has all the features of gnunet-search and gnunet-download, including boolean queries. In fact, it is a bit better than gnunet-download as it shows the progress of the download. The manpage for gnunet-gtk was updated. Minor bugfixes. Mon Mar 25 02:59:13 EST 2002 Changed writeFile to use a fourth parameter which is the desired permissions for the file. Files in data/hosts are now world-readable. Created man pages Mon Mar 18 17:56:52 EST 2002 Released 0.3.2. Sun Mar 17 10:47:51 EST 2002 Got rid of far too frequent key exchange attempts. Added expiration for very-long-dead host keys. Stopped forwarding of expired HELOs (receiver drops anyway). Wed Mar 14 05:46:20 EST 2002 Fixed some file location inconsistencies. All files are now in $HOME/GNUnet. RPM installation points to /var/GNUnet and the config file is ~/GNUnet/gnunet.conf Finished port to FreeBSD. This included mostly changes to src/util/statuscalls.c, but also several changes to the build system. Added a stat() call in the server code to make sure the config file exists before sending it to the OpenSSL conf code. Added getopt to source to fix portability issues. Changed FREEBSD defs to SOMEBSD, also changed in configure.in. Compiles and works on at least FreeBSD 4.5 and OpenBSD 3.0 Wed Mar 6 23:15:36 EST 2002 Added code for 'fast scan' of the database for content to discard (should be called partial scan). This improves the startup-time dramatically. Every source file got the GNU header. Tue Mar 5 22:42:36 EST 2002 Added option for *not* participating in content migration. Added timeout option to gnunet-search. gnunetd now periodically (1h) scans for new content, no restarting required. Mon Mar 4 23:21:51 EST 2002 Optimized routing and content migration. Distance of the hash to the identity of the local host is now taken into account for routing. Hosts give higher priority to content that is close to their identity (priority towards keeping it). If the network grows, this should significantly improve the performance. Also, the choice of the hosts for routing is now based on proximity (to the query), the activity level of the host and its credit ranking. Sun Mar 3 00:14:58 EST 2002 Implemented binary queries ("AND") for gnunet-search. Made sure that content is not downloaded again if already present (if there is other content, we overwrite). Fixed bug in gnunet-download (uninitialzied time-to-live). Sat Mar 2 01:57:37 EST 2002 Finished porting the download-code to C. Now files can be downloaded in using shell commands. No GUI though. Released GNUnet v0.3.1. Wed Feb 20 23:47:19 EST 2002 Big CVS moving operation. Sat Feb 16 23:17:27 EST 2002 Started migration to GNUnet. Sun Feb 3 01:20:37 EST 2002 Extracted crc32 method from zlib and put only that method into primitives. Reduces our memory footprint (if nobody else uses zlib) and we no longer depend no that library (always good). Sat Feb 2 22:56:32 EST 2002 Building final tarball for v0.3.0. Wed Jan 30 23:41:04 EST 2002 Created mp32gnet, a tool to automaticall index mp3 files using information from the mp3 header as keywords (title, artist, album, comments). The mp3 parsing code comes from the GPL tool mp3info. Tue Jan 29 17:36:48 EST 2002 Fixed bug with files that were not closed under certain circumstances and lead to an exhaustion of the number of concurrently open files. Mon Jan 21 23:34:44 EST 2002 Bumping version numbers to v0.3.0 (not yet released, needs some more testing to be on the safe side). Sun Jan 20 02:09:06 EST 2002 Content gathering now discards the least important content in favour of new, more important content (if there is not space for all content). The cron management is now used everywhere. The rpm, the init-script and the gproxy shell script have been revised. Sun Jan 13 23:17:58 EST 2002 Created cron management, replacing old control thread (allows for better timing of events). EvaluateContent now gets the priority of the query that the content had. Sun Jan 13 00:54:56 EST 2002 Improved choice in number of hosts to forward queries to (now dynamic, depending on priority, etc.) Removed many, many allocations in print statements which also caused memory leaks if active (see debugging.h). Added CRC checking of the root node in GProxy. Fixed problem with CRC in IBlocks for large files. Added dialog to GProxy to choose where to save the file. Sat Jan 5 14:25:31 EST 2002 Optimized routing table. Routing table is now a hashtable (collisions are handled by droping either the former or the new entry). Each bucket has it's own lock, the global semaphore is gone. The table has many more entries (we can afford that now that there is no longer a linear search). Wed Dec 26 19:30:41 CET 2001 Created v0.2.0 Tue Dec 25 21:24:18 CET 2001 Fixed TTL errors that made queries loop. Added host-evaluation to policy (drop packets from untrusted hosts under load). Found that CRC-errors are related to policy decisions ("drop"), cosmetic fix. Sun Nov 25 08:10:52 EST 2001 Added triple-hash functionality and on-demand encoding (lookup.c). Sat Nov 24 07:46:10 EST 2001 Added randomized choice of hosts for the hosttable. Thu Nov 22 04:57:57 EST 2001 Fixed another bunch of big bugs, tested, seems to work smoothly. Creating V0.1.0. Mon Nov 19 01:22:42 EST 2001: Fixed biggest (show-stopper) bugs. Creating V0.0.3 Fri Oct 26 02:20:00 EST 2001: Created ChangeLog. Report important changes here, report small changes to CVS only.