From e3435dce103bd4c6b5ec18a3838e23a00d5ffe8b Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 25 Nov 2016 13:54:17 +0000 Subject: [PATCH] sybil tweaks --- .../src/net/i2p/router/web/SybilRenderer.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SybilRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SybilRenderer.java index 56d693e9b8..9ce3419986 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SybilRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SybilRenderer.java @@ -16,7 +16,6 @@ import java.util.Locale; import java.util.Map; import java.util.Set; -import net.i2p.data.Base64; import net.i2p.data.DataHelper; import net.i2p.data.Destination; import net.i2p.data.Hash; @@ -35,6 +34,7 @@ import net.i2p.router.util.HashDistance; import net.i2p.stat.Rate; import net.i2p.stat.RateAverages; import net.i2p.stat.RateStat; +import net.i2p.util.ConvertToHash; import net.i2p.util.Log; import net.i2p.util.ObjectCounter; import net.i2p.util.Translate; @@ -921,7 +921,8 @@ class SybilRenderer { Collections.sort(sybils, xor); Hash prev = null; for (Hash h : sybils) { - out.write("<tr><td><tt>" + h.toBase64() + "</tt><td>"); + String hh = h.toBase64(); + out.write("<tr><td><a href=\"#" + hh.substring(0, 6) + "\"><tt>" + hh + "</tt></a><td>"); if (prev != null) { BigInteger dist = HashDistance.getDistance(prev, h); writeDistance(out, fmt, dist); @@ -937,20 +938,23 @@ class SybilRenderer { final int days = 7; Hash from = ctx.routerHash(); if (victim != null) { - byte[] b = Base64.decode(victim); - if (b != null && b.length == Hash.HASH_LENGTH) - from = Hash.create(b); + Hash v = ConvertToHash.getHash(victim); + if (v != null) + from = v; } out.write("<h3>Distance to " + from.toBase64() + "</h3>"); prev = null; + final int limit = Math.min(10, sybils.size()); for (int i = 0; i < days; i++) { out.write("<h3>Distance for " + new Date(now) + "</h3><table><tr><th>Hash<th>Distance<th>Distance from previous</tr>\n"); Hash rkey = rkgen.getRoutingKey(from, now); xor = new XORComparator<Hash>(rkey); Collections.sort(sybils, xor); - for (Hash h : sybils) { - out.write("<tr><td><tt>" + h.toBase64() + "</tt><td>"); + for (int j = 0; j < limit; j++) { + Hash h = sybils.get(j); + String hh = h.toBase64(); + out.write("<tr><td><a href=\"#" + hh.substring(0, 6) + "\"><tt>" + hh + "</tt></a><td>"); BigInteger dist = HashDistance.getDistance(rkey, h); writeDistance(out, fmt, dist); out.write("<td>"); -- GitLab