forked from I2P_Developers/i2p.i2p

"burn it it" some more, but its looking good. * test all tunnels we manage every period or two. later we'll want to include some randomization to help fight traffic analysis, but that falls into the i2p 3.0 tunnel chaff / mixing / etc) * test inbound tunnels correctly (use an outbound tunnel, not direct) * only give the tunnels 30 seconds to succeed * mark the tunnel as tested for both the inbound and outbound side and adjust the profiles for all participants accordingly * keep track of the 'last test time' on a tunnel * new tunnel test response time profile stat, as well as overall router stat (published in the netDb as "tunnel.testSuccessTime") * rewrite of the speed calculator - the value it generates now is essentially "how many round trip messages can this router pass in a minute". it also allows a few runtime configurable options: = speedCalculator.eventThreshold: we use the smallest measurement period that has at least this many events in it (10m, 60m, 24h, lifetime) = speedCalculator.useInstantaneousRates: when we use the estimated round trip time, do we use instantaneous or period averages? = speedCalculator.useTunnelTestOnly: do we only use the tunnel test time (no db response or tunnel create time, or even estimated round trip times)? * fix the reliability calculator to use the 10 minute tunnel create successes, not the (almost always 0) 1 minute rate. * persist the tunnel create response time and send success time correctly (duh) * add a new main() to PeerProfile - PeerProfile [filename]* will calculate the values of the peer profiles specified. useful for tweaking the calculator, and/or the configurable options. ala: java -DspeedCalculator.useInstantaneousRates peerProfiles/profile-*.dat