- Sep 26, 2005
-
-
* 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
-
- 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 18, 2005
-
-
- 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 16, 2005
-
-
* 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.
-
- 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 07, 2005
-
-
* 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).
-
- 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.
-
- Aug 27, 2005
-
- Aug 10, 2005
-
-
* 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.
-
- Aug 07, 2005
-
-
* 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.
-
- Jul 27, 2005
-
-
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.
-
- Jul 21, 2005
-
- Jul 16, 2005
-
- Jul 04, 2005
-
-
* 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
-
- May 01, 2005
-
- Apr 26, 2005
-
- Apr 17, 2005
-
- Apr 12, 2005
-
- Apr 08, 2005
-
-
* 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.
-
- Apr 05, 2005
-
-
* 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.
-
- Apr 01, 2005
-
- Mar 30, 2005
-
-
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
-
- Mar 25, 2005
-
- Mar 24, 2005
-
-
* 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.
- Mar 23, 2005
-
-
* 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
-
- Mar 22, 2005
-
- Mar 17, 2005
-
-
* 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!)
-
- Mar 01, 2005
-
-
* 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. * Factored out and extended the DataHelper's unit tests for dealing with long and date formatting. * Explicitly specify the HTTP auth realm as "i2prouter", though this alone doesn't address the bug where jetty asks for authentication too much. (thanks orion!) * Updated the StreamSinkServer to ignore all read bytes, rather than write them to the filesystem.
- Feb 27, 2005
-
- Feb 22, 2005
-
-
* Adjusted (and fixed...) the timestamper change detection * Deal with a rare reordering bug at the beginning of a stream (so we don't drop it unnecessarily) * Cleaned up some dropped message handling in the router * Reduced job queue churn when dealing with a large number of tunnels by sharing an expiration job * Keep a separate list of the most recent CRIT messages (shown on the logs.jsp). This way they don't get buried among any other messages. * For clarity, display the tunnel variance config as "Randomization" on the web console. * If lease republishing fails (boo! hiss!) try it again * Actually fix the negative jobLag in the right place (this time) * Allow reseeding when there are less than 10 known peer references * Lots of logging updates.
-
- Feb 21, 2005
-
-
* Allow the streaming lib resend frequency to drop down to 20s as the minimum, so that up to 2 retries can get sent on an http request. * Add further limits to failsafe tunnels. * Keep exploratory and client tunnel testing and building stats separate. * Only use the 60s period for throttling tunnel requests due to transient network overload. * Rebuild tunnels earlier (1-3m before expiration, by default) * Cache the next hop's routerInfo for participating tunnels so that the tunnel participation doesn't depend on the netDb. * Fixed a long standing bug in the streaming lib where we wouldn't always unchoke messages when the window size grows. * Make sure the window size never reaches 0 (duh)
-