* Throttle: Reject tunnels for first 20m uptime (was 10m)

* TunnelPeerSelectors:
       - Re-enable strict ordering of peers,
         based on XOR distance from a random hash
       - Restrict peers with uptime < 90m from tunnels (was 2h),
         which is really 60m due to rounding in netDb publishing.
    * i2psnark:
       - Limit max pipelined requests from a single peer to 128KB
         (was unlimited; i2p-bt default is 5 * 64KB)
       - Increase max uploaders per torrent to 6 (was 4)
       - Reduce max connections per torrent to 16 (was 24) to increase
         unchoke time and reduce memory consumption
       - Strictly enforce max connections per torrent
       - Choke more gradually when over BW limit
    * help.jsp: Add a link to the FAQ
    * peers.jsp: Fix UDP direction indicators
    * hosts.txt: Add update.postman.i2p
This commit is contained in:
zzz
2008-05-18 21:45:54 +00:00
parent bc5d87e6f0
commit 9b8772a470
14 changed files with 109 additions and 30 deletions

View File

@ -90,7 +90,7 @@ class RouterThrottleImpl implements RouterThrottle {
return TunnelHistory.TUNNEL_REJECT_CRIT;
}
if (_context.router().getUptime() < 10*60*1000)
if (_context.router().getUptime() < 20*60*1000)
return TunnelHistory.TUNNEL_REJECT_CRIT;
long lag = _context.jobQueue().getMaxLag();

View File

@ -17,7 +17,7 @@ import net.i2p.CoreVersion;
public class RouterVersion {
public final static String ID = "$Revision: 1.548 $ $Date: 2008-02-10 15:00:00 $";
public final static String VERSION = "0.6.1.33";
public final static long BUILD = 5;
public final static long BUILD = 6;
public static void main(String args[]) {
System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
System.out.println("Router ID: " + RouterVersion.ID);

View File

@ -1682,9 +1682,9 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
*/
buf.append("</a>&nbsp;");
if (peer.isInbound())
buf.append("&gt; ");
else
buf.append("&lt; ");
else
buf.append("&gt; ");
if (peer.getWeRelayToThemAs() > 0)
buf.append("^");
else

View File

@ -29,10 +29,7 @@ class ClientPeerSelector extends TunnelPeerSelector {
matches.remove(ctx.routerHash());
ArrayList rv = new ArrayList(matches);
if (rv.size() > 1)
/*** removed until we fix SSU reachability
orderPeers(rv, settings.getRandomKey());
***/
Collections.shuffle(rv, ctx.random());
if (settings.isInbound())
rv.add(0, ctx.routerHash());
else

View File

@ -50,10 +50,7 @@ class ExploratoryPeerSelector extends TunnelPeerSelector {
matches.remove(ctx.routerHash());
ArrayList rv = new ArrayList(matches);
if (rv.size() > 1)
/*** removed until we fix SSU reachability
orderPeers(rv, settings.getRandomKey());
***/
Collections.shuffle(rv, ctx.random());
if (settings.isInbound())
rv.add(0, ctx.routerHash());
else

View File

@ -372,8 +372,9 @@ public abstract class TunnelPeerSelector {
return true;
}
} else {
if ( (infoAge + uptimeMs < 2*60*60*1000) && (ctx.router().getUptime() > DONT_EXCLUDE_PERIOD) ) {
// up for less than 2 hours, so exclude it
if ( (infoAge + uptimeMs < 90*60*1000) && (ctx.router().getUptime() > DONT_EXCLUDE_PERIOD) ) {
// up for less than 90 min (which is really 1h since an uptime of 1h-2h is published as 90m),
// so exclude it
return true;
} else {
return false;