I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
history.txt 102 KiB
Newer Older
  • Learn to ignore specific revisions
  • $Id: history.txt,v 1.296 2005/10/14 10:05:26 jrandom Exp $
    
    jrandom's avatar
    jrandom committed
    
    2005-10-14  jrandom
        * More explicit filter for linux/PPC building (thanks anon!)
    
        * Fixed Syndie's Sucker to not explicitly reference something only found
          in sun's JVM (thanks cervantes!)
    
    jrandom's avatar
    jrandom committed
    
    * 2005-10-14  0.6.1.3 released
    
    2005-10-14  jrandom
        * Added a key explaining peers.jsp a bit (thanks tethra!)
    
    jrandom's avatar
    jrandom committed
    
    2005-10-13  dust
        * Bundled dust's Sucker for pulling RSS/Atom content into SML, which can
          then be injected into Syndie with the Syndie CLI.
        * Bundled ROME and JDOM (BSD and Apache licensed, respectively) for
          RSS/Atom parsing.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-13  jrandom
        * SSU retransmission choke bugfix (== != !=)
        * Include initial transmissions in the retransmission choke, so that
          if we are already retransmitting a message, we won't send anything
          to that peer other than that message (or ACKs, if necessary)
    
    jrandom's avatar
    jrandom committed
    
    2005-10-12  jrandom
        * Choke SSU retransmissions to a peer while there is already a
          retransmission in flight to them.  This currently lets other initial
          transmissions through, since packet loss is often sporadic, but maybe
          this should block initial transmissions as well?
        * Display the retransmission bytes stat on peers.jsp (thanks bar!)
        * Filter QUIT messages in the I2PTunnelIRCClient proxy
    
    jrandom's avatar
    jrandom committed
    
    2005-10-11  jrandom
        * Piggyback the SSU partial ACKs with data packets.  This is backwards
          compatible.
        * Syndie RSS renderer bugfix, plus now include the full entry instead of
          just the blurb before the cut.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-11  jrandom
        * Piggyback the SSU explicit ACKs with data packets (partial ACKs aren't
          yet piggybacked).  This is backwards compatible.
        * SML parser cleanup in Syndie
    
    jrandom's avatar
    jrandom committed
    
    2005-10-10  dust
        * Implemented a new I2PTunnelIRCClient which locally filters inbound and
          outbound IRC commands for anonymity and security purposes, removing all
          CTCP messages except ACTION, as well as stripping the hostname from the
          USER message (while leaving the nick and 'full name').  The IRC proxy
          doesn't use this by default, but you can enable it by creating a new 
          "IRC proxy" tunnel on the web interface, or by changing the tunnel type
          to "ircclient" in i2ptunnel.config.
    
    2005-10-10  jrandom
        * I2PTunnel http client config cleanup and stats
        * Minor SSU congestion tweaks and stats
        * Reduced netDb exploration period
    
    jrandom's avatar
    jrandom committed
    
    2005-10-09  jrandom
        * Syndie CLI cleanup for simpler CLI posting.  Usage shown with
          java -jar lib/syndie.jar
        * Beginnings of the Syndie logging cleanup
        * Delete corrupt Syndie posts
    
    jrandom's avatar
    jrandom committed
    
    2005-10-09  jrandom
        * Now that the streaming lib works reasonably, set the default inactivity 
          event to send a 0 byte keepalive payload, rather than disconnecting the
          stream.  This should cut the irc netsplits and help out with other long
          lived streams.  The default timeout is now less than the old timeout as
          well, so the keepalive will be sent before earlier builds fire their
          fatal timeouts.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-08  jrandom
        * Use the OS clock for stat timing, since it doesn't jump around (though
          still use the NTP'ed clock for display)
        * Added new DH stats
    
    jrandom's avatar
    jrandom committed
    
    * 2005-10-07  0.6.1.2 released
    
    2005-10-07  jrandom
        * Include the 1 second bandwidth usage on the console rather than the 
          1 minute rate, as the 1 second value doesn't have the 1m/5m quantization
          issues.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-07  jrandom
        * Allow the I2PTunnelHTTPServer to send back the first few packets of an
          HTTP response quicker, and initialize the streaming lib's cwin more 
          carefully.
        * Added a small web UI to the new Syndie scheduled updater.  If you log in
          as a user authorized to use the remote archive funtionality, you can
          request remote archives in your address book to be automatically pulled
          down by checking the "scheduled?" checkbox.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-05  jrandom
        * Allow the first few packets in the stream to fill in their IDs during
          handshake (thanks cervantes, Complication, et al!)  This should fix at 
          least some of the intermittent HTTP POST issues.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-04  jrandom
        * Syndie patch for single user remote archives (thanks nickless_head!)
        * Handle an invalid netDb store (thanks Complication!)
    
    jrandom's avatar
    jrandom committed
    
    2005-10-04  jrandom
        * Further reduction in unnecessary streaming packets.
    
    jrandom's avatar
    jrandom committed
    
    2005-10-03  jrandom
        * Properly reject unroutable IP addresses *cough*
    
    
    2005-10-03  rangarok
        * Changed default update delay to twelve hours, and enforced a minimum 
          delay of one hour.
    
    
    2005-10-03  ragnarok
        * Implemented a Syndie auto-updater.  It will automatically pull new posts
          from selected syndie archives.  To try it out, add 
          syndie.updateArchives=<comma seperated list of syndie archives> to your 
          syndie.config.  Archives must be specified as the full url to archive.txt
          (e.g. http://syndiemedia.i2p/archive/archive.txt).  By default, it checks
          for new posts every hour.  This can be modified by setting 
          syndie.updateDelay=<delay in hours> also in syndie.config. 
    
    jrandom's avatar
    jrandom committed
    
    * 2005-10-01  0.6.1.1 released
    
    
    2005-09-30  ragnarok
        * Implemented conditional get for syndie remote archive imports. 
    
    jrandom's avatar
    jrandom committed
    
    2005-09-30  jrandom
        * Killed three more streaming lib bugs, one of which caused excess packets
          to be transmitted (dupacking dupacks), one that was the root of many of
          the old hung streams (shrinking highest received), and another that was
          releasing data too soon.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-30  jrandom
        * Only allow autodetection of our IP address if we haven't received an
          inbound connection in the last two minutes.
        * Increase the default max streaming resends to 8 from 5 (and down from
          the earlier 10)
    
    jrandom's avatar
    jrandom committed
    
    
    ragnarok's avatar
    ragnarok committed
        * Export petnames from syndie to the router's petname db instead of 
          userhosts.txt.
    
    jrandom's avatar
    jrandom committed
    2005-09-29  jrandom
        * Support noreseed.i2p in addition to .i2pnoreseed for disabling automatic
          reseeding - useful on OSes that make it hard to create dot files.  
          Thanks Complication (and anon)!
        * Fixed the installer version string (thanks Frontier!)
        * Added cleaner rejection of invalid IP addresses, shitlist those who send
          us invalid IP addresses, verify again that we are not sending invalid IP
          addresses, and log an error if it happens. (Thanks Complication, ptm,
          and adab!)
    
    jrandom's avatar
    jrandom committed
    
    * 2005-09-29  0.6.1 released
    
    2005-09-29  jrandom
        * Let syndie users modify their metadata.
        * Reseed the router on startup if there aren't enough peer references 
          known locally.  This can be disabled by creating the file .i2pnoreseed
          in your home directory, and the existing detection and reseed handling
          on the web interface is unchanged.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-28  jrandom
        * Fix for at least some (all?) of the wrong stream errors in the streaming
          lib
    
    jrandom's avatar
    jrandom committed
    
    2005-09-27  jrandom
        * Properly suggest filenames for attachments in Syndie (thanks all!)
        * Fixed the Syndie authorization scheme for single user vs. multiuser
    
    jrandom's avatar
    jrandom committed
    
    2005-09-27  jrandom
        * I2PTunnel bugfix (thanks Complication!)
        * Increase the SSU cwin slower during congestion avoidance (at k/cwin^2 
          instead of k/cwin)
        * Limit the number of inbound SSU sessions being built at once (using
          half of the i2np.udp.maxConcurrentEstablish config prop)
        * Don't shitlist on a message send failure alone (unless there aren't any
          common transports).
        * More careful bandwidth bursting
    
    jrandom's avatar
    jrandom committed
    
    2005-09-26  jrandom
        * Reworded the SSU introductions config section (thanks duck!)
        * Force identity content encoding for I2PTunnel httpserver requests 
          (thanks redzara!)
        * Further x-i2p-gzip bugfixes for the end of streams
        * Reduce the minimum bandwidth limits to 3KBps steady and burst (though
          I2P's performance at 3KBps is another issue)
        * Cleaned up some streaming lib structures
    
    jrandom's avatar
    jrandom committed
    
    2005-09-25  jrandom
        * Allow reseeding on the console if the netDb knows less than 30 peers,
          rather than less than 10 (without internet connectivity, we keep the 
          last 15 router references)
        * Reenable the x-i2p-gzip HTTP processing by default, flushing the stream
          more aggressively.
        * Show the status that used to be called "ERR-Reject" as "OK (NAT)"
        * Reduced the default maximum number of streaming lib resends of a packet
          (10 retransmits is a bit much with a reasonable RTO)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-25  Complication
        * Better i2paddresshelper handling in the I2PTunnel httpclient, plus a new
          conflict resolution page if the i2paddresshelper parameter differs from
          an existing name to destination mapping.
    
    2005-09-25  jrandom
        * Fix a long standing streaming lib bug (in the inactivity detection code)
        * Improved handling of initial streaming lib packet retransmissions to 
          kill the "lost first packet" bug (where a page shows up with the first
          few KB missing)
        * Add support for initial window sizes greater than 1 - useful for 
          eepsites to transmit e.g. 4 packets full of data along with the initial
          ACK, thereby cutting down on the rtt latency.  The congestion window 
          size can and does still shrink down to 1 packet though.
        * Adjusted the streaming lib retransmission calculation algorithm to be
          more TCP-like.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-21  redzara
        * Use ISO-8859-1 for the susidns xml
    
    jrandom's avatar
    jrandom committed
    
    2005-09-21  susi
        * Bugfix in susidns for deleting entries
    
    2005-09-21  jrandom
        * Add support for HTTP POST to EepGet
        * Use HTTP POST for syndie bulk fetches, since there's a lot of data to 
          put in that URL.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-18  jrandom
        * Added support for pure 64bit linux with jbigi and the java service 
          wrapper (no need for jcpuid if we're on os.arch=amd64).  Thanks mule 
          et al for help testing!
        * UI cleanup in Syndie (thanks gloin and bar!)
    
    ragnarok's avatar
    ragnarok committed
    
    
    2005-09-18  Ragnarok
        * Made MetaNamingService the default naming service.
    
    
    ragnarok's avatar
    ragnarok committed
    2005-09-17  Ragnarok
        * Implemented a naming service using Syndie's petname db.  It's not enabled
          by default, but you can try it out by setting
          i2p.naming.impl=net.i2p.client.naming.PetNameNamingService in 
          router.config.
    
        * Implemented a meta naming service that will first lookup names in the 
          PetNameNamingService then fallback on the HostTxtNamingService.  Which
          naming services are checked and in which order is specified by 
          i2p.nameservicelist.  This will probably become the default naming service
          so please help test it out by setting
          i2p.naming.impl=net.i2p.client.naming.MetaNamingService in router.config.
          
    
    jrandom's avatar
    jrandom committed
    * 2005-09-17  0.6.0.6 released
    
    2005-09-17  jrandom
        * Clean up syndie a bit more and bundle a default introductory post with 
          both new installs and updates.
        * Typo fixes on the console (thanks bar!)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-17  jrandom
    
    jrandom's avatar
    jrandom committed
        * Updated the bandwidth limiter to use two tiers of bandwidth - our normal
          steady state rate, plus a new limit on how fast we transfer when 
          bursting.  This is different from the old "burst as fast as possible 
          until we're out of tokens" policy, and should help those with congested
          networks.  See /config.jsp to manage this rate.
    
    jrandom's avatar
    jrandom committed
        * Bugfixes in Syndie to handle missing cache files (no data was lost, the
          old posts just didn't show up).
        * Log properly in EepPost
    
    jrandom's avatar
    jrandom committed
    
    2005-09-17  jrandom
        * Added the natively compiled jbigi and patched java service wrapper for
          OS X.  Thanks Bill Dorsey for letting me use your machine!
        * Don't build i2p.exe or i2pinstall.exe when run on OS X machines, as we
          don't bundle the binutils necessary (and there'd be a naming conflict
          if we did).
        * Added 'single user' functionality to syndie - if the single user 
          checkbox on the admin page is checked, all users are allowed to control
          the instance and sync up with remote syndie nodes.
        * Temporarily disable the x-i2p-gzip in i2ptunnel until it is more closely
          debugged.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-16  jrandom
        * Reject unroutable IPs in SSU like we do for the TCP transport (unless
          you have i2np.udp.allowLocal=true defined - useful for private nets)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-16  jrandom
        * Adjust I2PTunnelHTTPServer so it can be used for outproxy operators 
          (just specify the spoofed host as an empty string), allowing them to
          honor x-i2p-gzip encoding.
        * Let windows users build the exes too (thanks bar and redzara!)
        * Allow I2PTunnel httpserver operators to disable gzip compression on 
          individual tunnels with the i2ptunnel.gzip=false client option 
          (good idea susi!)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-16  jrandom
        * Added the i2p.exe and i2pinstall.exe for windows users, using launch4j.
        * Added runplain.sh for *nix/osx users having problems using the java
          service wrapper (called from the install dir as: sh runplain.sh)
        * Bundle susidns and syndie, with links on the top nav
        * Have I2PTunnelHTTPClient and I2PTunnelHTTPServer use the x-i2p-gzip 
          content-encoding (if offered), reducing the payload size before it
          reaches the streaming lib.  The existing compression is at the i2cp
          level, so we've been packetizing 4KB of uncompressed data and then
          compressing those messages, rather than compressing and then packetizing
          4KB of compressed data.  This should reduce the number of round trips
          to fetch web pages substantially.
        * Adjust the startup and timing of the addressbook so that susidns always
          has config to work off, and expose a method for susidns to tell it to
          reload its config and rerun.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-15  jrandom
        * Error handling for failed intro packets (thanks red.hand!)
        * More carefully verify intro addresses
    
    jrandom's avatar
    jrandom committed
    
    2005-09-13  jrandom
        * More careful error handling with introductions (thanks dust!)
        * Fix the forceIntroducers checkbox on config.jsp (thanks Complication!)
        * Hide the shitlist on the summary so it doesn't confuse new users.
    
    comwiz's avatar
    comwiz committed
    
    2005-09-12  comwiz
        * Migrated the router tests to junit
    
    jrandom's avatar
    jrandom committed
    
    2005-09-12  jrandom
        * Removed guaranteed delivery mode entirely (so existing i2phex clients
          using it can get the benefits of mode=best_effort).  Guaranteed delivery
          is offered at the streaming lib level.
        * Improve the peer selection code for peer testing, as everyone now 
          supports tests.
        * Give the watchdog its fangs - if it detects obscene job lag or if 
          clients have been unable to get a leaseSet for more than 5 minutes,
          restart the router.  This was disabled a year ago due to spurious 
          restarts, and can be disabled by "watchdog.haltOnHang=false", but the
          cause of the spurious restarts should be gone.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-12  jrandom
        * Bugfix for skewed store which could kill a UDP thread (causing complete
          comm failure and eventual OOM)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-12  jrandom
        * More aggressively publish updated routerInfo.
        * Expose the flag to force SSU introductions on the router console
        * Don't give people the option to disable SNTP time sync, at least not
          through the router console, because there is no reason to disable it.
          No, not even if your OS is "ntp synced", because chances are, its not.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-10  jrandom
        * Test the router's reachability earlier and more aggressively
        * Use the low level bandwidth limiter's rates for the router console, and
          if the router has net.i2p.router.transport.FIFOBandwidthLimiter=INFO in
          the logger config, keep track of the 1 second transfer rates as the stat
          'bw.sendBps1s' and 'bw.recvBps1s', allowing closer monitoring of burst 
          behavior.
    
    jrandom's avatar
    jrandom committed
    
    2005-09-09  jrandom
        * Added preliminary support for NAT hole punching through SSU introducers
        * Honor peer test results from peers that we have an SSU session with if
          those sessions are idle for 3 minutes or more.
    
    cervantes's avatar
    cervantes committed
    
    2005-09-09  cervantes
    
    jrandom's avatar
    jrandom committed
        * New build due to change in build number :P (thanks ugha!)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-07  BarkerJr
        * HTML cleanup for the router console (thanks!)
    
    2005-09-07  jrandom
        * Lay the foundation for 'client routers' - the ability for peers to opt 
          out of participating in tunnels entirely due to firewall/NAT issues.  
          Individual routers have control over where those peers are used in 
          tunnels - in outbound or inbound, exploratory or client tunnels, or 
          none at all.  The defaults with this build are to simply act as before -
          placing everyone as potential participants in any tunnel.
        * Another part of the foundation includes the option for netDb 
          participants to refuse to answer queries regarding peers who are marked
          as unreachable, though this too is disabled by default (meaning the 
          routerInfo is retrievable from the netDb).
    
    jrandom's avatar
    jrandom committed
    
    2005-09-05  jrandom
        * Expose the HTTP headers to EepGet status listeners
        * Handle DSA key failures properly (if the signature is not invertable, it
          is obviously invalid)
    
    jrandom's avatar
    jrandom committed
    
    2005-09-04  jrandom
        * Don't persist peer profiles until we are shutting down, as the 
          persistence process gobbles RAM and wall time.
        * Bugfix to allow you to check/uncheck the sharedClient setting on the
    
    jrandom's avatar
    jrandom committed
          I2PTunnel web interface (thanks BarkerJr!)
    
    jrandom's avatar
    jrandom committed
        * Be more careful when expiring a failed tunnel message fragment so we 
          don't drop the data while attempting to read it.
    
    jrandom's avatar
    jrandom committed
    
    * 2005-09-02  0.6.0.5 released
    
    jrandom's avatar
    jrandom committed
    
    2005-09-02  jrandom
        * Don't refuse to send a netDb store if the targetted peer has failed a 
          bit (the value was an arbitrary amount).
        * Logging changes
    
    jrandom's avatar
    jrandom committed
    
    * 2005-09-01  0.6.0.4 released
    
    jrandom's avatar
    jrandom committed
    
    2005-09-01  jrandom
        * Don't send out a netDb store of a router if it is more than a few hours
          old, even if someone asked us for it.
    
    jrandom's avatar
    jrandom committed
    
    2005-08-31  jrandom
        * Don't publish leaseSets to the netDb if they will never be looked for -
          namely, if they are for destinations that only establish outbound
          streams.  I2PTunnel's 'client' and 'httpclient' proxies have been 
          modified to tell the router that it doesn't need to publish their 
          leaseSet (by setting the I2CP config option 'i2cp.dontPublishLeaseSet'
          to 'true').
        * Don't publish the top 10 peer rankings of each router in the netdb, as
          it isn't being watched right now.
    
    jrandom's avatar
    jrandom committed
    
    2005-08-29  jrandom
        * Added the new test Floodfill netDb
    
    jrandom's avatar
    jrandom committed
    
    2005-08-27  jrandom
        * Minor logging and optimization tweaks in the router and SDK
        * Use ISO-8859-1 in the XML files (thanks redzara!)
        * The consolePassword config property can now be used to bypass the router
          console's nonce checking, allowing CLI restarts
    
    jrandom's avatar
    jrandom committed
    
    2005-08-24  jrandom
        * Catch errors with corrupt tunnel messages more gracefully (no need to 
          kill the thread and cause an OOM...)
        * Don't skip shitlisted peers for netDb store messages, as they aren't 
          necessarily shitlisted by other people (though they probably are). 
        * Adjust the netDb store per-peer timeout based on each particular peer's
          profile (timeout = 4x their average netDb store response time)   
        * Don't republish leaseSets to *failed* peers - send them to peers who
          replied but just didn't know the value.
        * Set a 5 second timeout on the I2PTunnelHTTPServer reading the client's
          HTTP headers, rather than blocking indefinitely.  HTTP headers should be
          sent entirely within the first streaming packet anyway, so this won't be
          a problem.
        * Don't use the I2PTunnel*Server handler thread pool by default, as it may
          prevent any clients from accessing the server if the handlers get
          blocked by the streaming lib or other issues.
        * Don't overwrite a known status (OK/ERR-Reject/ERR-SymmetricNAT) with
          Unknown.
    
    jrandom's avatar
    jrandom committed
    
    2005-08-23  jrandom
        * Removed the concept of "no bandwidth limit" - if none is specified, its
          16KBps in/out.
        * Include ack packets in the per-peer cwin throttle (they were part of the
          bandwidth limit though).
        * Tweak the SSU cwin operation to get more accurrate estimates under 
          congestions.
        * SSU improvements to resend more efficiently.
        * Added a basic scheduler to eepget to fetch multiple files sequentially.
    
    jrandom's avatar
    jrandom committed
    
    * 2005-08-21  0.6.0.3 released
    
    2005-08-21  jrandom
        * If we already have an established SSU session with the Charlie helping 
          test us, cancel the test with the status of "unknown".
    
    jrandom's avatar
    jrandom committed
    
    2005-08-17  jrandom
        * Revise the SSU peer testing protocol so that Bob verifies Charlie's 
          viability before agreeing to Alice's request.  This doesn't work with
          older SSU peer test builds, but is backwards compatible (older nodes
          won't ask newer nodes to participate in tests, and newer nodes won't 
          ask older nodes to either).
    
    jrandom's avatar
    jrandom committed
    
    2005-08-12  jrandom
        * Keep detailed stats on the peer testing, publishing the results in the 
          netDb.
        * Don't overwrite the status with 'unknown' unless we haven't had a valid
          status in a while.
        * Make sure to avoid shitlisted peers for peer testing.
        * When we get an unknown result to a peer test, try again soon afterwards.
        * When a peer tells us that our address is different from what we expect,
          if we've done a recent peer test with a result of OK, fire off a peer
          test to make sure our IP/port is still valid.  If our test is old or the
          result was not OK, accept their suggestion, but queue up a peer test for
          later.
        * Don't try to do a netDb store to a shitlisted peer, and adjust the way 
          we monitor netDb store progress (to clear up the high netDb.storePeers
          stat)
    
    jrandom's avatar
    jrandom committed
    
    2005-08-10  jrandom
        * Deployed the peer testing implementation to be run every few minutes on
          each router, as well as any time the user requests a test manually.  The
          tests do not reconfigure the ports at the moment, merely determine under
          what conditions the local router is reachable.  The status shown in the 
          top left will be "ERR-SymmetricNAT" if the user's IP and port show up 
          differently for different peers, "ERR-Reject" if the router cannot 
          receive unsolicited packets or the peer helping test could not find a  
          collaborator, "Unknown" if the test has not been run or the test 
          participants were unreachable, or "OK" if the router can receive 
          unsolicited connections and those connections use the same IP and port.
    
    jrandom's avatar
    jrandom committed
    
    * 2005-08-08  0.6.0.2 released
    
    2005-08-08  jrandom
        * Add a configurable throttle to the number of concurrent outbound SSU
          connection negotiations (via i2np.udp.maxConcurrentEstablish=4).  This
          may help those with slow connections to get integrated at the start.
        * Further fixlets to the streaming lib
    
    jrandom's avatar
    jrandom committed
    
    2005-08-07  Complication
        * Display the average clock skew for both SSU and TCP connections
    
    2005-08-07  jrandom
        * Fixed the long standing streaming lib bug where we could lose the first
          packet on retransmission.
        * Avoid an NPE when a message expires on the SSU queue.
        * Adjust the streaming lib's window growth factor with an additional
          Vegas-esque congestion detection algorithm.
        * Removed an unnecessary SSU session drop
        * Reduced the MTU (until we get a working PMTU lib)
        * Deferr tunnel acceptance until we know how to reach the next hop, 
          rejecting it if we can't find them in time.
        * If our netDb store of our leaseSet fails, give it a few seconds before
          republishing.
    
    jrandom's avatar
    jrandom committed
    
    * 2005-08-03  0.6.0.1 released
    
    2005-08-03  jrandom
        * Backed out an inadvertant change to the netDb store redundancy factor.
        * Verify tunnel participant caching.
        * Logging cleanup
    
    duck's avatar
    duck committed
    
    2005-08-01  duck
        * Update IzPack to 3.7.2 (build 2005.04.22). This fixes bug #82.
    
    duck's avatar
    duck committed
    
    2005-08-01  duck
        * Fix an addressbook NPE when a new hostname from the master addressbook
          didn't exist in the router addressbook.
        * Fix an addressbook bug which caused subscriptions not to be parsed at
          all. (Oops!)
    
    jrandom's avatar
    jrandom committed
    
    2005-07-31  jrandom
        * Adjust the netDb search and store per peer timeouts to match the average
          measured per peer success times, rather than huge fixed values.
        * Optimized and reverified the netDb peer selection / retrieval process 
          within the kbuckets.
        * Drop TCP connections that don't have any useful activity in 10 minutes.
        * If i2np.udp.fixedPort=true, never change the externally published port,
          even if we are autodetecting the IP address.
    
    jrandom's avatar
    jrandom committed
    
    * 2005-07-27  0.6 released
    
    2005-07-27  jrandom
        * Enabled SSU as the default top priority transport, adjusting the 
          config.jsp page accordingly.
        * Add verification fields to the SSU and TCP connection negotiation (not
          compatible with previous builds)
        * Enable the backwards incompatible tunnel crypto change as documented in
          tunnel-alt.html (have each hop encrypt the received IV before using it,
          then encrypt it again before sending it on)
        * Disable the I2CP encryption, leaving in place the end to end garlic 
          encryption (another backwards incompatible change)
        * Adjust the protocol versions on the TCP and SSU transports so that they
          won't talk to older routers.
        * Fix up the config stats handling again
        * Fix a rare off-by-one in the SSU fragmentation
        * Reduce some unnecessary netDb resending by inluding the peers queried
          successfully in the store redundancy count.
    
    jrandom's avatar
    jrandom committed
    
    2005-07-22  jrandom
        * Use the small thread pool for I2PTunnelHTTPServer (already used for 
          I2PTunnelServer)
        * Minor memory churn reduction in I2CP
        * Small stats update
    
    jrandom's avatar
    jrandom committed
    
    2005-07-21  jrandom
        * Fix in the SDK for a bug which would manifest itself as misrouted
          streaming packets when a destination has many concurrent streaming
          connections (thanks duck!)
        * No more "Graceful shutdown in -18140121441141s"
    
    jrandom's avatar
    jrandom committed
    
    2005-07-20  jrandom
        * Allow the user to specify an external port # for SSU even if the external
          host isn't specified (thanks duck!)
    
    jrandom's avatar
    jrandom committed
    
    2005-07-19  jrandom
        * Further preparation for removing I2CP crypto
        * Added some validation to the DH key agreement (thanks $anon)
        * Validate tunnel data message expirations (though not really a problem, 
          since tunnels expire)
        * Minor PRNG threading cleanup
    
    cervantes's avatar
    cervantes committed
    
    2005-07-15  cervantes
    
    jrandom's avatar
    jrandom committed
        * Added workaround for an odd win32 bug in the stats configuration console
          page which meant only the first checkbox selection was saved.
    
    cervantes's avatar
    cervantes committed
    
    2005-07-15  Romster
    
    jrandom's avatar
    jrandom committed
        * Added per group selection toggles in the stats configuration console 
          page.
    
    jrandom's avatar
    jrandom committed
    
    2005-07-13  jrandom
        * Fixed a recently injected bug in the multitransport bidding which had 
          allowed an essentially arbitrary choice of transports, rather than the
          properly ordered choice.
    
    jrandom's avatar
    jrandom committed
    
    2005-07-13  jrandom
        * Fixed a long standing bug where we weren't properly comparing session 
          tags but instead largely depending upon comparing their hashCode, 
          causing intermittent decryption errors.
    
    jrandom's avatar
    jrandom committed
    
    2005-07-12  jrandom
    
    jrandom's avatar
    jrandom committed
        * Add some data duplication to avoid a recently injected concurrency 
          problem in the session tag manager (thanks redzara and romster).
    
    jrandom's avatar
    jrandom committed
    
    
    jrandom's avatar
    jrandom committed
    2005-07-11  jrandom
        * Reduced the growth factor on the slow start and congestion avoidance for
          the streaming lib.
        * Adjusted some of the I2PTunnelServer threading to use a small pool of
          handlers, rather than launching off new threads which then immediately
          launch off an I2PTunnelRunner instance (which launches 3 more threads..)
        * Don't persist session keys / session tags (not worth it, for now)
        * Added some detection and handling code for duplicate session tags being
          delivered (root cause still not addressed)
        * Make the PRNG's buffer size configurable (via the config property
          "i2p.prng.totalBufferSizeKB=4096")
        * Disable SSU flooding by default (duh)
        * Updates to the StreamSink apps for better throttling tests.
    
    2005-07-05  jrandom
    
    jrandom's avatar
    jrandom committed
        * Use a buffered PRNG, pulling the PRNG data off a larger precalculated 
          buffer, rather than the underlying PRNG's (likely small) one, which in
          turn reduces the frequency of recalcing.
        * More tuning to reduce temporary allocation churn
    
    jrandom's avatar
    jrandom committed
    
    2005-07-04  jrandom
        * Within the tunnel, use xor(IV, msg[0:16]) as the flag to detect dups, 
          rather than the IV by itself, preventing an attack that would let 
          colluding internal adversaries tag a message to determine that they are
          in the same tunnel.  Thanks dvorak for the catch!
        * Drop long inactive profiles on startup and shutdown
        * /configstats.jsp: web interface to pick what stats to log
        * Deliver more session tags to account for wider window sizes
        * Cache some intermediate values in our HMACSHA256 and BC's HMAC
        * Track the client send rate (stream.sendBps and client.sendBpsRaw)
        * UrlLauncher: adjust the browser selection order
        * I2PAppContext: hooks for dummy HMACSHA256 and a weak PRNG
        * StreamSinkClient: add support for sending an unlimited amount of data
        * Migrate the tests out of the default build jars
    
    2005-06-22  Comwiz
        * Migrate the core tests to junit
    
    duck's avatar
    duck committed
    
    2005-05-25  duck
        * Fixed PRNG bug (bugzilla #107)
    
    jrandom's avatar
    jrandom committed
    
    2005-05-01  jrandom
        * Added a substantial optimization to the AES engine by caching the
          prepared session keys (duh).
    
    jrandom's avatar
    jrandom committed
    
    2005-05-01  jrandom
        * Cleaned up the peers page a bit more.
    
    jrandom's avatar
    jrandom committed
    
    2005-04-30  jrandom
        * Added a small new page to the web console (/peers.jsp) which contains 
          the peer connection information.  This will be cleaned up a lot more 
          before 0.6 is out, but its a start.
    
    jrandom's avatar
    jrandom committed
    
    2005-04-30  jrandom
        * Reduced some SimpleTimer churn
    
    jrandom's avatar
    jrandom committed
    
    2005-04-29  jrandom
        * Reduce the peer profile stat coallesce overhead by inlining it with the 
          reorganize.
        * Limit each transport to at most one address (any transport that requires
          multiple entry points can include those alternatives in the address).
    
    jrandom's avatar
    jrandom committed
    
    2005-04-28  jrandom
        * More fixes for the I2PTunnel "other" interface handling (thanks nelgin!)
        * Add back the code to handle bids from multiple transports (though there
          is still only one transport enabled by default)
        * Adjust the router's queueing of outbound client messages when under 
          heavy load by running the preparatory job in the client's I2CP handler
          thread, thereby blocking additional outbound messages when the router is
          hosed.
        * No need to validate or persist a netDb entry if we already have it
    
    smeghead's avatar
    smeghead committed
    
    2005-04-25  smeghead
        * Added button to router console for manual update checks.
        * Fixed bug in configupdate.jsp that caused the proxy port to be updated
          every time the form was submitted even if it hadn't changed.
    
    jrandom's avatar
    jrandom committed
    
    2005-04-24  jrandom
        * Added a pool of PRNGs using a different synchronization technique, 
          hopefully sufficient to work around IBM's PRNG bugs until we get our
          own Fortuna.
        * In the streaming lib, don't jack up the RTT on NACK, and have the window
          size bound the not-yet-ready messages to the peer, not the unacked 
          message count (not sure yet whether this is worthwile).
        * Many additions to the messageHistory log.
        * Handle out of order tunnel fragment delivery (not an issue on the live 
          net with TCP, but critical with UDP).
    
    jrandom's avatar
    jrandom committed
    
    * 2005-04-20  0.5.0.7 released
    
    jrandom's avatar
    jrandom committed
    
    2005-04-20  jrandom
        * In the SDK, we don't actually need to block when we're sending a message
          as BestEffort (and these days, we're always sending BestEffort).
        * Pass out client messages in fewer (larger) steps.
        * Have the InNetMessagePool short circuit dispatch requests.
        * Have the message validator take into account expiration to cut down on
          false positives at high transfer rates.
        * Allow configuration of the probabalistic window size growth rate in the 
          streaming lib's slow start and congestion avoidance phases, and default 
          them to a more conservative value (2), rather than the previous value 
          (1).
        * Reduce the ack delay in the streaming lib to 500ms
        * Honor choke requests in the streaming lib (only affects those getting
          insanely high transfer rates)
        * Let the user specify an interface besides 127.0.0.1 or 0.0.0.0 on the
          I2PTunnel client page (thanks maestro^!)
    
    jrandom's avatar
    jrandom committed
    
    2005-04-17  sirup
        * Added the possibility for i2ptunnel client and httpclient instances to 
          have their own i2p session (and hence, destination and tunnels).  By 
          default, tunnels are shared, but that can be changed on the web 
          interface or with the sharedClient config option in i2ptunnel.config.
    
    2005-04-17  jrandom
        * Marked the net.i2p.i2ptunnel.TunnelManager as deprecated.  Anyone use
          this?  If not, I want to drop it (lots of tiny details with lots of 
          duplicated semantics).
    
    jrandom's avatar
    jrandom committed
    
    2005-04-17  zzz
        * Added new user-editable eepproxy error page templates.
    
    2005-04-17  jrandom
        * Revamp the tunnel building throttles, fixing a situation where the 
          rebuild may not recover, and defaulting it to unthrottled (users with
          slow CPUs may want to set "router.tunnel.shouldThrottle=true" in their
          advanced router config)
    
    jrandom's avatar
    jrandom committed
    
    2005-04-16  jrandom
        * Migrated to Bouncycastle's SHA256 and HMAC implementations for efficiency
    
    jrandom's avatar
    jrandom committed
    
    2005-04-12  jrandom
        * Make sure we don't get cached updates (thanks smeghead!)
        * Clear out the callback for the TestJob after it passes (only affects the
          job timing accounting)
    
    smeghead's avatar
    smeghead committed
    
    2005-04-08  smeghead
        * Added NativeBigInteger benchmark to scripts/i2pbench.sh.
    
    smeghead's avatar
    smeghead committed
    
    2005-04-08  smeghead
        * Security improvements to TrustedUpdate: signing and verification of the
          version string along with the data payload for signed update files
          (consequently the positions of the DSA signature and version string fields
          have been swapped in the spec for the update file's header); router will
          no longer perform a trusted update if the signed update's version is lower
          than or equal to the currently running router's version.
        * Added two new CLI commands to TrustedUpdate: showversion, verifyupdate.
        * Extended TrustedUpdate public API for use by third party applications.
    
    jrandom's avatar
    jrandom committed
    
    * 2005-04-06  0.5.0.6 released
    
    jrandom's avatar
    jrandom committed
    
    2005-04-05  jrandom
        * Retry I2PTunnel startup if we are unable to build a socketManager for a
          client or httpclient tunnel.
        * Add some basic sanity checking on the I2CP settings (thanks duck!)
    
    jrandom's avatar
    jrandom committed
    
    2005-04-05  jrandom
        * After a successfull netDb search for a leaseSet, republish it to all of 
          the peers we have tried so far who did not give us the key (up to 10),
          rather than the old K closest (which may include peers who had given us
          the key)
        * Don't wait 5 minutes to publish a leaseSet (duh!), and rather than 
          republish it every 5 minutes, republish it every 3.  In addition, always
          republish as soon as the leaseSet changes (duh^2).
        * Minor fix for oddball startup race (thanks travis_bickle!)
        * Minor AES update to allow in-place decryption.
    
    jrandom's avatar
    jrandom committed
    
    2005-04-03  jrandom
        * EepGet fix for open-ended HTTP fetches (such as the news.xml 
          feeding the NewsFetcher)
    
    jrandom's avatar
    jrandom committed
    
    2005-04-01  jrandom
        * Allow editing I2PTunnel server instances with five digit ports 
          (thanks nickless_head!)
        * More NewsFetcher debugging for reported weirdness
    
    jrandom's avatar
    jrandom committed
    
    2005-04-01  jrandom
        * Fix to check for missing news file (thanks smeghead!)
        * Added destination display CLI:
          java -cp lib/i2p.jar net.i2p.data.Destination privKeyFilename
        * Added destination display to the web interface (thanks pnspns)
        * Installed CIA backdoor
    
    jrandom's avatar
    jrandom committed
    
    * 2005-03-29  0.5.0.5 released
    
    2005-03-29  jrandom
        * Decreased the initial RTT estimate to 10s to allow more retries.
        * Increased the default netDb store replication factor from 2 to 6 to take
          into consideration tunnel failures.
        * Address some statistical anonymity attacks against the netDb that could 
          be mounted by an active internal adversary by only answering lookups for 
          leaseSets we received through an unsolicited store.
        * Don't throttle lookup responses (we throttle enough elsewhere)
        * Fix the NewsFetcher so that it doesn't incorrectly resume midway through
          the file (thanks nickster!)
        * Updated the I2PTunnel HTML (thanks postman!)
        * Added support to the I2PTunnel pages for the URL parameter "passphrase",
          which, if matched against the router.config "i2ptunnel.passphrase" value,
          skips the nonce check.  If the config prop doesn't exist or is blank, no
          passphrase is accepted.
        * Implemented HMAC-SHA256.
        * Enable the tunnel batching with a 500ms delay by default
        * Dropped compatability with 0.5.0.3 and earlier releases
    
    jrandom's avatar
    jrandom committed
    
    2005-03-26  jrandom
        * Added some error handling and fairly safe to cache data to the streaming
          lib (good call Tom!)
    
    jrandom's avatar
    jrandom committed
    
    2005-03-25  jrandom
        * Fixed up building dependencies for the routerconsole on some more 
          aggressive compilers (thanks polecat!)
    
    jrandom's avatar
    jrandom committed
    
    * 2005-03-24  0.5.0.4 released
    
    jrandom's avatar
    jrandom committed
    
    2005-03-23  jrandom
        * Added more intelligent version checking in news.xml, in case we have a 
          version newer than the one specified.
    
    jrandom's avatar
    jrandom committed
    
    2005-03-23  jrandom
        * Added support for Transfer-Encoding: chunked to the EepGet, so that the
          cvsweb.cgi doesn't puke on us.
    
    connelly's avatar
    connelly committed
    
    2005-03-23  Connelly
        * Fixed Bugzilla Bug #99 in the SAM Bridge, which caused pending
          stream send data to not be sent if STREAM CLOSE is issued too fast.
    
    jrandom's avatar
    jrandom committed
    
    2005-03-23  jrandom
        * Implemented the news fetch / update policy code, as configurated on
          /configupdate.jsp.  Defaults are to grab the news every 24h (or if it
          doesn't exist yet, on startup).  No action is taken however, though if
          the news.xml specifies that a new release is available, an option to
          update will be shown on the router console.
        * New initialNews.xml delivered with new installs, and moved news.xml out
          of the i2pwww module and into the i2p module so that we can bundle it 
          within each update.
    
    jrandom's avatar
    jrandom committed
    
    2005-03-23  jrandom
        * New /configupdate.jsp page for controlling the update / notification 
          process, as well as various minor related updates.  Note that not all
          options are exposed yet, and the update detection code isn't in place
          in this commit - it currently says there is always an update available.
        * New EepGet component for reliable downloading, with a CLI exposed in
          java -cp lib/i2p.jar net.i2p.util.EepGet url
        * Added a default signing key to the TrustedUpdate component to be used
          for verifying updates.  This signing key can be authenticated via
          gpg --verify i2p/core/java/src/net/i2p/crypto/TrustedUpdate.java
        * New public domain SHA1 implementation for the DSA code so that we can
          handle signing streams of arbitrary size without excess memory usage
          (thanks P.Verdy!)
        * Added some helpers to the TrustedUpdate to work off streams and to offer
          a minimal CLI: 
              TrustedUpdate keygen pubKeyFile privKeyFile
              TrustedUpdate sign origFile signedFile privKeyFile
              TrustedUpdate verify signedFile
    
    2005-03-22  smeghead
        * New TrustedUpdate component for signing/verifying files with a DSA 
          signature.
    
    jrandom's avatar
    jrandom committed
    
    2005-03-21  jrandom
        * Fixed the tunnel fragmentation handler to deal with multiple fragments 
          in a single message properly (rather than release the buffer into the 
          cache after processing the first one) (duh!)
        * Added the batching preprocessor which will bundle together multiple 
          small messages inside a single tunnel message by delaying their delivery 
          up to .5s, or whenever the pending data will fill a full message, 
          whichever comes first.  This is disabled at the moment, since without the
          above bugfix widely deployed, lots and lots of messages would fail.
        * Within each tunnel pool, stick with a randomly selected peer for up to
          .5s before randomizing and selecting again, instead of randomizing the
          pool each time a tunnel is needed.  
    
    jrandom's avatar
    jrandom committed
    
    * 2005-03-18  0.5.0.3 released
    
    2005-03-18  jrandom
        * Minor tweak to the timestamper to help reduce small skews
        * Adjust the stats published to include only the relevent ones
        * Only show the currently used speed calculation on the profile page
        * Allow the full max # resends to be sent, rather than piggybacking the
          RESET packet along side the final resend (duh)
        * Add irc.postman.i2p to the default list of IRC servers for new installs
        * Drop support for routers running 0.5 or 0.5.0.1 while maintaining 
          backwards compatability for users running 0.5.0.2.
    
    jrandom's avatar
    jrandom committed
    
    2005-03-18  jrandom
        * Eepproxy Fix for corrupted HTTP headers (thanks nickster!)
        * Fixed case sensitivity issues on the HTTP headers (thanks duck!)
    
    jrandom's avatar
    jrandom committed
    
    2005-03-17  jrandom
        * Update the old speed calculator and associated profile data points to 
          use a non-tiered moving average of the tunnel test time, avoiding the 
          freshness issues of the old tiered speed stats. 
        * Explicitly synchronize all of the methods on the PRNG, rather than just
          the feeder methods (sun and kaffe only need the feeder, but it seems ibm
          needs all of them synchronized).
        * Properly use the tunnel tests as part of the profile stats.
        * Don't flood the jobqueue with sequential persist profile tasks, but 
          instead, inject a brief scheduling delay between them.
        * Reduce the TCP connection establishment timeout to 20s (which is still
          absurdly excessive)
        * Reduced the max resend delay to 30s so we can get some resends in when
          dealing with client apps that hang up early (e.g. wget)
        * Added more alternative socketManager factories (good call aum!)
    
    jrandom's avatar
    jrandom committed
    
    2005-03-16  jrandom
        * Adjust the old speed calculator to include end to end RTT data in its 
          estimates, and use that as the primary speed calculator again.
        * Use the mean of the high capacity speeds to determine the fast 
          threshold, rather than the median.  Perhaps we should use the mean of
          all active non-failing peers?
        * Updated the profile page to sort by tier, then alphabetically.
        * Added some alternative socketManager factories (good call aum!)
    
    jrandom's avatar
    jrandom committed
    
    2005-03-14  jrandom
        * New strict speed calculator that goes off the actual number of messages
          verifiably sent through the peer by way of tunnels.  Initially, this only
          contains the successful message count on inbound tunnels, but may be 
          augmented later to include verified outbound messages, peers queried in 
          the netDb, etc.  The speed calculation decays quickly, but should give
          a better differential than the previous stat (both values are shown on 
          the /profiles.jsp page)
    
    
    2005-03-11  jrandom
        * Rather than the fixed resend timeout floor (10s), use 10s+RTT as the 
          minimum (increased on resends as before, of course).
        * Always prod the clock update listeners, even if just to tell them that 
          the time hasn't changed much.
        * Added support for explicit peer selection for individual tunnel pools,
          which will be useful in debugging but not recommended for use by normal
          end users.
        * More aggressively search for the next hop's routerInfo on tunnel join.
        * Give messages received via inbound tunnels that are bound to remote
          locations sufficient time (taking into account clock skew).
        * Give alternate direct send messages sufficient time (10s min, not 5s)
        * Always give the end to end data message the explicit timeout (though the
          old default was sufficient before)
        * No need to give end to end messages an insane expiration (+2m), as we 
          are already handling skew on the receiving side.
        * Don't complain too loudly about expired TunnelCreateMessages (at least,
          not until after all those 0.5 and 0.5.0.1 users upgrade ;)
        * Properly keep the sendBps stat
        * When running the router with router.keepHistory=true, log more data to
          messageHistory.txt
        * Logging updates
        * Minor formatting updates
    
    2005-03-08  jrandom
        * More aggressively adjust the clock
    
    jrandom's avatar
    jrandom committed
    
    2005-03-07  jrandom
        * Fix the HTTP response header filter to allow multiple headers with the
          same name (thanks duck and spotteri!)
    
    jrandom's avatar
    jrandom committed
    
    * 2005-03-06  0.5.0.2 released
    
    2005-03-06  jrandom
        * Allow the I2PTunnel web interface to select streaming lib options for
          individual client tunnels, rather than sharing them across all of them,
          as we do with the session options.  This way people can (and should) set
          the irc proxy to interactive and the eepproxy to bulk.
        * Added a startRouter.sh script to new installs which simply calls 
          "sh i2prouter start".  This should make it clear how people should start
          I2P.
    
        * Properly expand the HTTP response header buffer (thanks shendaras!)
    
    jrandom's avatar
    jrandom committed
    
    2005-03-04  jrandom
        * Filter HTTP response headers in the eepproxy, forcing Connection: close
          so that broken (/malicious) webservers can't allow persistent 
          connections.  All HTTP compliant browsers should now always close the 
          socket.
    
    jrandom's avatar
    jrandom committed
        * Enabled the GZIPInputStream's cache (they weren't cached before)
    
    jrandom's avatar
    jrandom committed
        * Make sure our first send is always a SYN (duh)
        * Workaround for some buggy compilers
    
    jrandom's avatar
    jrandom committed
    
    2005-03-03  jrandom
        * Loop while starting up the I2PTunnel instances, in case the I2CP 
          listener isn't up yet (thanks detonate!)
        * Implement custom reusable GZIP streams to both reduce memory churn
          and prevent the exposure of data in the standard GZIP header (creation
          time, OS, etc).  This is RFC1952 compliant, and backwards compatible, 
          though has only been tested within the confines of I2P's compression use
          (DataHelper.[de]compress).
        * Preemptively support the next protocol version, so that after the 0.5.0.2
          release, we'll be able to drop protocol=2 to get rid of 0.5 users.
    
    jrandom's avatar
    jrandom committed
    
    2005-03-02  jrandom
        * Fix one substantial OOM cause (session tag manager was only dropping 
          tags once the critical limit was met, rather than honoring their 
          expiration) (duh)
        * Lots of small memory fixes
        * Double the allowable concurrent outstanding tunnel build tasks (20)
    
    jrandom's avatar
    jrandom committed
    
    2005-03-01  jrandom
        * Really disable the streaming lib packet caching
        * Synchronized a message handling point in the SDK (even though its use is
          already essentially single threaded, its better to play it safe)
        * Don't add new RepublishLeaseSetJobs on failure, just requeue up the 
          existing one (duh)
        * Throttle the number of concurrent pending tunnel builds across all 
          pools, in addition to simply throttling the number of new requests per 
          minute for each pool individually.  This should avoid the cascading 
          failure when tunnel builds take too long, as no new builds will be 
          created until the previous ones are handled.