$Id: history.txt,v 1.36 2004/10/06 08:23:38 jrandom Exp $ 2004-10-06 jrandom * Implement an active queue management scheme on the TCP transports, dropping messages probabalistically as the queue fills up. The estimated queue capacity is determined by the rate at which messages have been sent to the peer (averaged at 1, 5, and 60m periods). As we exceed 1/2 of the estimated capacity, we drop messages throughout the queue probabalistically with regards to their size. This is based on RFC 2309's RED, with the minimum threshold set to 1/2 the estimated connection capacity. We may want to consider using a send rate and queue size measured across all connections, to deal with our own local bandwidth saturation, but we'll try the per-con metrics first. 2004-10-06 jrandom * Enable explicit disabling of the systray entirely for windows machines with strange configurations: add -Dsystray.disable=true to the java command line. (thanks mihi!) 2004-10-05 jrandom * Allow peers on the same LAN to communicate with each other safely even when they cannot talk to each other through the external address. 2004-10-05 jrandom * Display how much time is left before the graceful shutdown is complete. * Debug some improperly failed messages on timeout or disconnection. 2004-10-05 jrandom * Don't go into a fast busy if an I2PTunnel 'server' is explicitly killed (thanks mule!) * Handle some more error conditions regarding abruptly closing sockets (thanks Jonva!) 2004-10-04 jrandom * Update the shitlist to reject a peer for an exponentially increasing period of time (with an upper bounds of an hour). * Various minor stat and debugging fixes 2004-10-03 jrandom * Add a new stat logging component to optionally dump the raw stats to disk as they are generated, rather than rely upon the summarized data. By default, this is off, but the router property "stat.logFilters" can be set to a comma delimited list of stats (e.g. "client.sendAckTime") which will be written to the file "stats.log" (or whatever the property "stat.logFile" is set to). This can also log profile related stats, such as "dbResponseTime" or "tunnelTestResponseTime". 2004-10-02 jrandom * Assure that we quickly fail messages bound for shitlisted peers. * Address a race on startup where the first peer contacted could hang the router (thanks Romster!) * Only whine about an intermittent inability to query the time server once 2004-10-02 jrandom * Command line utility to verify a peer's reachability - simply run net.i2p.router.transport.tcp.ConnectionHandler hostname port# and it will print out whether that peer is reachable or not (using a simple verification handshake). * 2004-10-01 0.4.1.1 released 2004-10-01 jrandom * Handle partial reseeds, caused by seeds going away before the download completes (thanks Sugadude!) 2004-10-01 jrandom * Explicitly refuse IPv6 addresses, since only some peers support them and we want fully reachable peers. 2004-10-01 jrandom * Additional error handling for a variety of transport layer errors. * 2004-09-30 0.4.1 released (not backwards compatible) 2004-09-30 jrandom * Bundle the configuration necessary to run an eepsite out of the box with Jetty - simply edit ./eepsite/docroot/index.html and give people the key listed on the I2PTunnel configuration page, and its up. * Router console cleanup, and some (off by default) tunnels - smtp.postman.i2p (port 7659), pop.postman.i2p (port 7660), and irc.baffled.i2p (port 7661) 2004-09-29 jrandom * Always wipe the Jetty work directory on startup, so that web updates are reflected immediately (Jetty does not honor the cache across multiple executions) 2004-09-27 jrandom * Limit the number of connection tags saved to 10,000. This is a huge limit, but consumes no more than 1MB of RAM. For now, we drop them randomly after reaching that size, forcing those dropped peers to use a full DH negotiation. * HTML cleanup in the console. 2004-09-26 jrandom * Complete rewrite of the TCP transport with IP autodetection and low CPU overhead reconnections. More concise connectivity errors are listed on the /oldconsole.jsp as well. The IP autodetection works by listening to the first person who tells you what your IP address is when you have not defined one yourself and you have no other TCP connections. * Update to the I2NP message format to add transparent verification at the I2NP level (beyond standard TCP verification). * Remove a potential weakness in our AESEngine's safeEncrypt and safeDecrypt implementation (rather than verifying with E(H(key)), we now verify with E(H(iv))). * The above changes are NOT BACKWARDS COMPATIBLE. * Removed all of the old unused PHTTP code. * Refactor various methods and clean up some javadoc. 2004-09-21 jrandom * Have two tiers of hosts.txt files - the standard "hosts.txt" and the new "userhosts.txt". Updates to I2P will only overwrite the former, but values stored in the later take precedence. Both are queried on lookup. 2004-09-16 jrandom * Refactor the TCP transport to deal with changing identities gracefully, and to prevent some wasted effort by keeping track of what host+port combinations we are connected to (rather than just the identities). Also catch a few configuration errors earlier. * Removed no longer relevent methods from the Transport API that were exposing ideas that probably shouldn't be exposed. * Removed the 0.4.0.1 specific files from i2pupdate.zip (relating to script updates) 2004-09-13 jrandom * Update for the SDK reconnection to deal with overflow. * Web improvements (@ not # on the /logs.jsp [thanks ugha!] and fixed the rounding on lifetime bandwidth used [thanks gott!]). * 2004-09-08 0.4.0.1 released 2004-09-08 jrandom * Updated the "Active:" peer count to display the # of connections as well as the number of recently active router identities. * Implement some basic updating code - on startup, if there is a file named "i2pupdate.zip" in the I2P installation directory, extract it, delete it, then restart. * Added an ugly little script to allow launching the router on win9x machines without a dos box (using javaw to run a .bat file). * Logging updates. * Updated VERSION constants to 0.4.0.1 2004-09-08 hypercubus * Bugfix: Running the installer as a non-privileged user on Red Hat (and hopefully any other affected *nix systems) now properly discards non- essential directories after installation. * Support for Win9x in the installer and postinstall.bat. * Changed the name of the default installation directory on all platforms from "I2P" to "i2p" in the installer. * Changed "wrapper.conf" to "wrapper.config" for naming consistency with the other configuration files. 2004-09-07 cervantes: * Proxy recursion disabled by default (strict) * Password Authentication for session commands * Support for http://path?i2paddresshelper=BASE64 * Support for http://i2p/BASE64/path syntax 2004-09-07 jrandom * Make sure that peers placed in the 'fast' group are ones we both know how to reach and have been able to reach recently. These peers may still be placed in the 'high capacity' group however (though that group is only queried if the 'fast' group is too small) * Include some updates to the ProgileOrganizer's CLI. 2004-09-07 jrandom * Disable the timestamper by default for all applications except the router (enable via -Dtime.disabled=false) * Simplify the retrieval of the full destination with text based browsers. * Bundle the updated wrapper.config and hosts.txt in the i2pupdate.tar.bz2 2004-09-07 jrandom * Write the native libraries to the current directory when they are loaded from a resource, and load them from that file on subsequent runs (in turn, we no longer *cough* delete the running libraries...) * Added support for a graceful restart. * Added new pseudo-shutdown hook specific to the router, allowing applications to request tasks to be run when the router shuts down. We use this for integration with the service manager, since otherwise a graceful shutdown would cause a timeout, followed by a forced hard shutdown. * Made the capacity calculator a bit more dynamic by not outright ignoring the otherwise valid capacity data for a period with a single rejected tunnel (except for the 10 minute period). In addition, peers with an equal capacity are ordered by speed rather than by their hashes. * Cleaned up the SimpleTimer, addressing some threading and synchronization issues. * When an I2PTunnel client or httpclient is explicitly closed, destroy the associated session (unless there are other clients using it), and deal with a closed session when starting a new I2PTunnel instance. * Refactoring and logging. 2004-09-06 jrandom * Address a race condition in the key management code that would manifest itself as a corrupt router identity. * Properly clear old transport addresses from being displayed on the old console after soft restarts. * Properly refuse to load the client applications more than once in the same JVM. * Added support for a graceful restart (a graceful shutdown followed by a full JVM restart - useful for restarting client apps). * More defensive programming, HTML cleanup, logging * wrapper.config cleanup of duplicate lines 2004-09-04 jrandom * Added some basic guards to prevent multiple instances from running. Specifically, a file "router.ping" in the install directory which is written to once a minute - if that file exists and has been modified within the last minute, refuse to start up. In turn, adjust the service wrapper to wait a minute before restarting a crashed JVM. * Create a "work" directory in the I2P install dir which Jetty will use for all of its temporary files. * Tell the browser not to cache most of the router console's pages. 2004-09-04 jrandom * Update the SDK to automatically reconnect indefinitely with an exponential delay on retries (capped at 5 minutes). * 2004-09-03 0.4 released 2004-09-03 jrandom * Updated default wrapper.config to deal with the hard restart option * Include the history.txt in the /help.jsp page * HTML updates (wrapper.log, and no more unix scripts) * Updated VERSION constants to 0.4 2004-09-03 hypercubus * Bugfix: Installer launches postinstall.bat on WinNT/2K properly. * Temporarily removed install_i2p_service_unix and uninstall_i2p_service_unix from distribution packages. * postinstall.bat/postinstall.sh cleans installation directory of all files not applicable to the host OS. 2004-09-03 oOo * Added some filters to the HTTP request, replacing the User-Agent, Referrer, Via, and From headers, which helps until we have a more comprehensive filtering system. 2004-09-03 jrandom * Disabled the old listener on port 7655. 2004-09-02 jrandom * Cleaned up the base build.xml, adding a new target ("updater") which builds the file i2pupdate.tar.bz2 which can be safely extracted over existing installs. 2004-xx-xx jrandom * Implemented the new web architecture and router console * Implemented I2PTunnel web interface, and revamped startup process. * Revamped peer selection code to address skew. * Removed all temporary threads from the router and the SDK. * Bugfix dealing with timeouts and resends. * Integrated Iakin's jcpuid library and jbigi update, with modifications. 2004-xx-xx hypercubus * Implemented the new installation process. * Integrated systray * Integrated service manager 2004-xx-xx oOo * Implemented ?i2paddresshelper= hook * Many small bugfixes to the web interface, router, i2ptunnel, and core. 2004-xx-xx Nightblade * libSAM updates. 2004-xx-xx cervantes * Imported i2pProxy.pac proxy script in with the build. * 2004-08-20 0.3.4.3 released * 2004-08-12 0.3.4.2 released * 2004-08-08 0.3.4.1 released * 2004-07-29 0.3.4 released * 2004-07-23 0.3.3 released * 2004-07-16 0.3.2.3 released * 2004-07-14 0.3.2.2 released * 2004-07-11 0.3.2.1 released * 2004-07-07 0.3.2 released * 2004-06-25 0.3.1.5 released * 2004-05-23 0.3.1.4 released * 2004-05-20 0.3.1.3 released * 2004-05-13 0.3.1.2 released * 2004-05-07 0.3.1.1 released * 2004-04-30 0.3.1 released * 2004-04-20 0.3.0.4 released * 2004-04-04 0.3.0.3 released * 2004-03-30 0.3.0.2 released * 2004-03-25 0.3.0.1 released * 2004-03-21 0.3.0 released * 2004-03-10 0.2.5.4 released * 2004-03-04 0.2.5.3 released * 2004-02-28 0.2.5.2 released * 2004-02-27 0.2.5.1 released * 2004-02-25 0.2.5 released * 2004-02-19 0.2.4.2 released * 2004-02-15 0.2.4.1 released * 2004-02-14 0.2.4 released * 2004-01-27 0.2.3.6 released * 2004-01-21 0.2.3.5 released * 2004-01-14 0.2.3.4 released * 2003-12-29 0.2.3.3 released * 2003-12-27 0.2.3.2 released * 2003-12-25 0.2.3.1 released * 2003-12-13 0.2.3 released * 2003-12-01 0.2.2 released * 2003-11-18 0.2.1.1 released * 2003-11-12 0.2.1 released * 2003-11-09 0.2.0.3 released * 2003-11-08 0.2.0.2 released * 2003-11-03 0.2.0.1 released * 2003-11-01 0.2 released