* Migrate the outbound packets from a central component to the individual
per-peer components, substantially cutting down on lock contention when
dealing with higher degrees.
* Load balance the outbound SSU transfers evenly across peers, rather than
across messages (so peers with few messages won't be starved by peers
with many).
* Reduce the frequency of router info rebuilds (thanks bar!)
* Migrate the outbound packets from a central component to the individual
per-peer components, substantially cutting down on lock contention when
dealing with higher degrees.
* Load balance the outbound SSU transfers evenly across peers, rather than
across messages (so peers with few messages won't be starved by peers
with many).
* Reduce the frequency of router info rebuilds (thanks bar!)
* Add a new AIMD throttle in SSU to control the number of concurrent
messages being sent to a given peer, in addition to the throttle on the
number of concurrent bytes to that peer.
* Adjust the existing SSU outbound queue to throttle based on the queue's
lag, not an arbitrary number of packets.
* Add a new AIMD throttle in SSU to control the number of concurrent
messages being sent to a given peer, in addition to the throttle on the
number of concurrent bytes to that peer.
* Adjust the existing SSU outbound queue to throttle based on the queue's
lag, not an arbitrary number of packets.
* Disable the message history log file by default (duh - feel free to
delete messageHistory.txt after upgrading. thanks deathfatty!)
* Limit the size of the inbound tunnel build request queue so we don't
get an insane backlog of requests that we're bound to reject, and adjust
the queue processing so we keep on churning through them when we've got
a backlog.
* Small fixes for the multiuser syndie operation (thanks Complication!)
* Renamed modified PRNG classes that were imported from gnu-crypto so we
don't conflict with JVMs using that as a JCE provider (thanks blx!)
* Disable the message history log file by default (duh - feel free to
delete messageHistory.txt after upgrading. thanks deathfatty!)
* Limit the size of the inbound tunnel build request queue so we don't
get an insane backlog of requests that we're bound to reject, and adjust
the queue processing so we keep on churning through them when we've got
a backlog.
* Small fixes for the multiuser syndie operation (thanks Complication!)
* Renamed modified PRNG classes that were imported from gnu-crypto so we
don't conflict with JVMs using that as a JCE provider (thanks blx!)
* Bugfix to the I2PTunnel web config to properly accept i2cp port settings
* Initial sucker refactoring to simplify reuse of the html parsing
* Beginnings of hooks to push imported rss/atom out to remote syndie
archives automatically (though not enabled currently)
* Further SSU peer test cleanup
* Bugfix to the I2PTunnel web config to properly accept i2cp port settings
* Initial sucker refactoring to simplify reuse of the html parsing
* Beginnings of hooks to push imported rss/atom out to remote syndie
archives automatically (though not enabled currently)
* Further SSU peer test cleanup
* Add in per-blog RSS feeds to Syndie
* Upgraded sucker's ROME dependency to 0.8, bundling sucked enclosures
with the posts, marking additional attachments as Media RSS enclosures
(http://search.yahoo.com/mrss/), since RSS only supports one enclosure
per item.
* Don't allow the default syndie user to be set to something invalid if
its in single user mode.
* Add in per-blog RSS feeds to Syndie
* Upgraded sucker's ROME dependency to 0.8, bundling sucked enclosures
with the posts, marking additional attachments as Media RSS enclosures
(http://search.yahoo.com/mrss/), since RSS only supports one enclosure
per item.
* Don't allow the default syndie user to be set to something invalid if
its in single user mode.
* 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)
* 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)
* 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)
* New tunnel build process - does not use the new crypto or new peer
selection strategies. However, it does drop the fallback tunnel
procedure, except for tunnels who are configured to allow them, or for
the exploratory pool during bootstrapping or after a catastrophic
failure. This new process prefers to fail rather than use too-short
tunnels, so while it can do some pretty aggressive tunnel rebuilding,
it may expose more tunnel failures to the user.
* Always prefer normal tunnels to fallback tunnels.
* Potential fix for a bug while changing i2cp settings on I2PSnark (thanks
bar!)
* Do all of the netDb entry writing in a separate thread, avoiding
duplicates and batching them up.
* Add title attributes to all external links in Syndie, so we can rollover
and quickly see if it's worth clicking on.
* Fixed a minor compiler warning.
* First pass of the new tunnel creation crypto, specified in the new
router/doc/tunnel-alt-creation.html (referenced in the current
router/doc/tunnel-alt.html). It isn't actually used anywhere yet, other
than in the test code, but the code verifies the technical viability, so
further scrutiny would be warranted.
* Only create the loadtest.log if requested to do so (thanks zzz!)
* Make sure we cleanly take into consideration the appropriate data
points when filtering out duplicate messages in the message validator,
and report the right bloom filter false positives rate (not used for
anything except debugging)
* Syndie CSS tweaks to removed some redundant declarations, improve font
scaling and layout robustness. Improved cross browser compatibility
(in other words "kicked IE"). Tightened the look of the blog template
a little.