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

Skip to content
Snippets Groups Projects
history.txt 378 KiB
Newer Older
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!)
    * Don't filter IRC "MAP" messages (not critical, but it doesn't hurt)
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.