- Jul 04, 2006
-
-
* New NIO-based tcp transport (NTCP), enabled by default for outbound connections only. Those who configure their NAT/firewall to allow inbound connections and specify the external host and port (dyndns/etc is ok) on /config.jsp can receive inbound connections. SSU is still enabled for use by default for all users as a fallback. * Substantial bugfix to the tunnel gateway processing to transfer messages sequentially instead of interleaved * Renamed GNU/crypto classes to avoid name clashes with kaffe and other GNU/Classpath based JVMs * Adjust the Fortuna PRNG's pooling system to reduce contention on refill with a background thread to refill the output buffer * Add per-transport support for the shitlist * Add a new async pumped tunnel gateway to reduce tunnel dispatcher contention
-
- May 18, 2006
-
- May 03, 2006
-
-
* Correct a misnamed property in SummaryHelper.java to avoid confusion * Make the maximum allowance of our own concurrent tunnel builds slightly adaptive: one concurrent build per 6 KB/s within the fixed range 2..10 * While overloaded, try to avoid completely choking our own build attempts, instead prefer limiting them to 1
-
- Apr 19, 2006
-
-
* Adjust how we pick high capacity peers to allow the inclusion of fast peers (the previous filter assumed an old usage pattern) * New set of stats to help track per-packet-type bandwidth usage better * Cut out the proactive tail drop from the SSU transport, for now * Reduce the frequency of tunnel build attempts while we're saturated * Don't drop tunnel requests as easily - prefer to explicitly reject them
-
- Apr 10, 2006
-
- Apr 08, 2006
-
-
* Process inbound tunnel requests more efficiently * Proactively drop inbound tunnel requests if the queue before we'd process it in is too long (dynamically adjusted by cpu load) * Adjust the tunnel rejection throttle to reject requeusts when we have to proactively drop too many requests. * Display the number of pending inbound tunnel join requests on the router console (as the "handle backlog") * Include a few more stats in the default set of graphs
-
- Apr 04, 2006
-
-
* Fix during the ssu handshake to avoid an unnecessary failure on packet retransmission (thanks ripple!) * Fix during the SSU handshake to use the negotiated session key asap, rather than using the intro key for more than we should (thanks ripple!) * Fixes to the message reply registry (thanks Complication!) * More comprehensive syndie banning (for repeated pushes) * Publish the router's ballpark bandwidth limit (w/in a power of 2), for testing purposes * Put a floor back on the capacity threshold, so too many failing peers won't cause us to pick very bad peers (unless we have very few good ones) * Bugfix to cut down on peers using introducers unneessarily (thanks Complication!) * Reduced the default streaming lib message size to fit into a single tunnel message, rather than require 5 tunnel messages to be transferred without loss before recomposition. This reduces throughput, but should increase reliability, at least for the time being. * Misc small bugfixes in the router (thanks all!) * More tweaking for Syndie's CSS (thanks Doubtful Salmon!)
-
- Mar 21, 2006
-
-
* Avoid a very strange (unconfirmed) bug that people using the systray's browser picker dialog could cause by disabling the GUI-based browser picker. * Cut down on subsequent streaming lib reset packets transmitted * Use a larger MTU more often * Allow netDb searches to query shitlisted peers, as the queries are indirect. * Add an option to disable non-floodfill netDb searches (non-floodfill searches are used by default, but can be disabled by adding netDb.floodfillOnly=true to the advanced config)
-
- Mar 20, 2006
-
- Mar 19, 2006
-
- Mar 18, 2006
-
- Mar 17, 2006
-
-
* Add support for graphing the event count as well as the average stat value (done by adding &showEvents=true to the URL). Also supports hiding the legend (&hideLegend=true), the grid (&hideGrid=true), and the title (&hideTitle=true). * Removed an unnecessary arbitrary filter on the profile organizer so we can pick high capacity and fast peers more appropriately
-
- Mar 16, 2006
-
-
* Integrate basic hooks for jrobin (http://jrobin.org) into the router console. Selected stats can be harvested automatically and fed into in-memory RRD databases, and those databases can be served up either as PNG images or as RRDtool compatible XML dumps (see oldstats.jsp for details). A base set of stats are harvested by default, but an alternate list can be specified by setting the 'stat.summaries' list on the advanced config. For instance: stat.summaries=bw.recvRate.60000,bw.sendRate.60000 * HTML tweaking for the general config page (thanks void!) * Odd NPE fix (thanks Complication!)
-
* Trim out an old, inactive IP second-guessing method (thanks for spotting, Anonymous!)
-
- Feb 20, 2006
-
-
* Major SSU and router tuning to reduce contention, memory usage, and GC churn. There are still issues to be worked out, but this should be a substantial improvement. * Modified the optional netDb harvester task to support choosing whether to use (non-anonymous) direct connections or (anonymous) exploratory tunnels to do the harvesting. Harvesting itself is enabled via the advanced config "netDb.shouldHarvest=true" (default is false) and the connection type can be chosen via "netDb.harvestDirectly=false" (default is false).
- Feb 19, 2006
-
-
* Moved the current net's reseed URL to a different location than where the old net looks (dev.i2p.net/i2pdb2/ vs .../i2pdb/) * More aggressively expire inbound messages (on receive, not just on send) * Add in a hook for breaking backwards compatibility in the SSU wire protocol directly by including a version as part of the handshake. The version is currently set to 0, however, so the wire protocol from this build is compatible with all earlier SSU implementations. * Increased the number of complete message readers, cutting down substantially on the delay processing inbound messages. * Delete the message history file on startup * Reworked the restart/shutdown display on the console (thanks bd_!)
-
- Feb 16, 2006
-
-
- Feb 15, 2006
-
- Jan 26, 2006
-
-
* Run the peer profile coalescing/reorganization outside the job queue (on one of the timers), to cut down on some job queue congestion. Also, trim old profiles while running, not just when starting up. * Slightly more sane intra-floodfill-node netDb activity (only flood new entries) * Workaround in the I2PTunnelHTTPServer for some bad requests (though the source of the bug is not yet addressed) * Better I2PSnark reconnection handling * Further cleanup in the new tunnel build process * Make sure we expire old participants properly * Remove much of the transient overload throttling (it wasn't using a good metric)
-
- Dec 27, 2005
-
-
* Add a new Status: line on the router console - "ERR-ClockSkew", in case the clock is too skewed to do anything useful (check the year and month, not just the hour and minute). * Fixed the read/write timeouts in the streaming lib (so that it actually honors them now) * Minor I2PSnark cleanups (no read timeout, more careful shutdown and torrent closing) * Handle an oddball tunnel creation failure (thanks Xunk)
-
- Dec 23, 2005
-
- Dec 09, 2005
-
-
* Create different strategies for exploratory tunnels (which are difficult to create) and client tunnels (which are much easier) * Gradually increase number of parallel build attempts as tunnel expiry nears. * Temporarily shorten attempted build tunnel length if builds using configured tunnel length are unsuccessful * React more aggressively to tunnel failure than routine tunnel replacement * Make tunnel creation times randomized - there is existing code to randomize the tunnels but it isn't effective due to the tunnel creation strategy. Currently, most tunnels get built all at once, at about 2 1/2 to 3 minutes before expiration. The patch fixes this by fixing the randomization, and by changing the overlap time (with old tunnels) to a range of 2 to 4 minutes. * Reduce number of excess tunnels. Lots of excess tunnels get created due to overlapping calls. Just about anything generated a call which could build many tunnels all at once, even if tunnel building was already in process. * Miscellaneous router console enhancements
-
- Nov 28, 2005
-
-
* Inlined the Syndie CSS to reduce the number of HTTP requests (and because firefox [and others?] delay rendering until they fetch the css). * Make sure we fire the shutdown tasks when regenerating a new identity (thanks picsou!) * Cleaned up some of the things I b0rked in the 'dynamic keys' mode * Don't drop SSU sessions if they're still transmitting data successfully, even if there are transmission failures * Adjusted the time summarization to display hours after 119m, not 90m * Further EepGet cleanup (grr)
-
- Nov 26, 2005
-
-
* Added support for 'dynamic keys' mode, where the router creates a new router identity whenever it detects a substantial change in its public address (read: SSU IP or port). This only offers minimal additional protection against trivial attackers, but should provide functional improvement for people who have periodic IP changes, since their new router address would not be shitlisted while their old one would be. * Added further infrastructure for restricted route operation, but its use is not recommended.
-
- Oct 30, 2005
-
- Oct 29, 2005
-
-
* Improved the bandwidth throtting on tunnel participation, especially for low bandwidth peers. * Improved failure handling in SSU with proactive reestablishment of failing idle peers, and rather than shitlisting a peer who failed too much, drop the SSU session and allow a new attempt (which, if it fails, will cause a shitlisting) * Clarify the cause of the shitlist on the profiles page, and include bandwidth limiter info at the bottom of the peers page.
-
- Oct 19, 2005
-
-
* Bugfix for the auto-update code to handle different usage patterns * Decreased the addressbook recheck frequency to once every 12 hours instead of hourly. * Handle dynamically changing the HMAC size (again, unless your nym is toad or jrandom, ignore this ;) * Cleaned up some synchronization/locking code
-
- Oct 07, 2005
-
-
- Oct 01, 2005
-
- Sep 30, 2005
-
-
* 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!)
-
- Sep 29, 2005
-
-
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.
-
- Sep 25, 2005
-
-
* 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)
-
- Sep 17, 2005
-
-
* 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. * Bugfixes in Syndie to handle missing cache files (no data was lost, the old posts just didn't show up). * Log properly in EepPost
-
- Sep 13, 2005
-
-
* 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.
- Sep 12, 2005
-
- Sep 11, 2005
-
-
* 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.
-
- Sep 05, 2005
-
-
* Expose the HTTP headers to EepGet status listeners * Handle DSA key failures properly (if the signature is not invertable, it is obviously invalid) also, syndie now properly detects whether the remote archive can send a filtered export.zip by examining the HTTP headers for X-Syndie-Export-Capable: true. If the remote archive does not set that header (and neither freesites, nor apache or anything other than the ArchiveServlet will), it uses individual HTTP requests for individual blog posts and metadata fetches.
-