예제 #1
0
 public static List<Map<Number160, PeerStatistic>> unflatten(
     Collection<PeerAddress> map, PeerAddress sender) {
   PeerMapConfiguration peerMapConfiguration = new PeerMapConfiguration(sender.peerId());
   PeerMap peerMap = new PeerMap(peerMapConfiguration);
   for (PeerAddress peerAddress : map) {
     LOG.debug("found peer in unflatten for relaying, {}", peerAddress);
     peerMap.peerFound(peerAddress, null, null, null);
   }
   return peerMap.peerMapVerified();
 }
예제 #2
0
파일: Utils2.java 프로젝트: hsdrose/TomP2P
 public static void routing(Number160 key, Peer[] peers, int start) {
   System.out.println("routing: searching for key " + key);
   NavigableSet<PeerAddress> pa1 =
       new TreeSet<PeerAddress>(PeerMap.createXORAddressComparator(key));
   NavigableSet<PeerAddress> queried =
       new TreeSet<PeerAddress>(PeerMap.createXORAddressComparator(key));
   Number160 result = Number160.ZERO;
   Number160 resultPeer = new Number160("0xd75d1a3d57841fbc9e2a3d175d6a35dc2e15b9f");
   int round = 0;
   while (!resultPeer.equals(result)) {
     System.out.println("round " + round);
     round++;
     pa1.addAll(peers[start].peerBean().peerMap().all());
     queried.add(peers[start].peerAddress());
     System.out.println("closest so far: " + queried.first());
     PeerAddress next = pa1.pollFirst();
     while (queried.contains(next)) {
       next = pa1.pollFirst();
     }
     result = next.peerId();
     start = findNr(next.peerId().toString(), peers);
   }
 }
예제 #3
0
 @Override
 public int compare(PeerAddress o1, PeerAddress o2) {
   return o1.peerId().toString().compareTo(o2.peerId().toString());
 }