From 7ff5d36f0790ec7a3cbc0214cda5faaaa1694e5f Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sun, 25 May 2014 20:38:39 +0000
Subject: [PATCH] i2psnark DHT tweaks (ticket #1281)   - Extend DHT tracker
 expire time from 45m to 3h   - Extend DHT announce interval from 10m to 40m  
 - Increase announces from 1 peer to 4

---
 apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java  | 6 ++++--
 apps/i2psnark/java/src/org/klomp/snark/dht/DHTTracker.java | 3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java b/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java
index 9a84c8d3ac..7f40f483b2 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java
@@ -82,7 +82,9 @@ public class TrackerClient implements Runnable {
   private final static int MAX_CONSEC_FAILS = 5;    // slow down after this
   private final static int LONG_SLEEP = 30*60*1000; // sleep a while after lots of fails
   private final static long MIN_TRACKER_ANNOUNCE_INTERVAL = 15*60*1000;
-  private final static long MIN_DHT_ANNOUNCE_INTERVAL = 10*60*1000;
+  private final static long MIN_DHT_ANNOUNCE_INTERVAL = 39*60*1000;
+  /** No guidance in BEP 5; standard practice is K (=8) */
+  private static final int DHT_ANNOUNCE_PEERS = 4;
   public static final int PORT = 6881;
   private static final int MAX_TRACKERS = 12;
 
@@ -651,7 +653,7 @@ public class TrackerClient implements Runnable {
                 else
                     numwant = _util.getMaxConnections();
                 Collection<Hash> hashes = dht.getPeersAndAnnounce(snark.getInfoHash(), numwant,
-                                                                  5*60*1000, 1, 3*60*1000,
+                                                                  5*60*1000, DHT_ANNOUNCE_PEERS, 3*60*1000,
                                                                   coordinator.completed());
                 if (!hashes.isEmpty()) {
                     runStarted = true;
diff --git a/apps/i2psnark/java/src/org/klomp/snark/dht/DHTTracker.java b/apps/i2psnark/java/src/org/klomp/snark/dht/DHTTracker.java
index 59706c5f88..64ea84c3ac 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/dht/DHTTracker.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/dht/DHTTracker.java
@@ -34,7 +34,8 @@ class DHTTracker {
 
     /** stagger with other cleaners */
     private static final long CLEAN_TIME = 199*1000;
-    private static final long MAX_EXPIRE_TIME = 45*60*1000;
+    /** no guidance in BEP 5; Vuze is 8h */
+    private static final long MAX_EXPIRE_TIME = 3*60*60*1000L;
     private static final long MIN_EXPIRE_TIME = 15*60*1000;
     private static final long DELTA_EXPIRE_TIME = 3*60*1000;
     private static final int MAX_PEERS = 2000;
-- 
GitLab