Examples of PeerDHT


Examples of net.tomp2p.dht.PeerDHT

  }

  @Test
  public void testRelayDHTSimple() throws Exception {
    final Random rnd = new Random(42);
    PeerDHT master = null;
    PeerDHT unreachablePeer = null;
    try {
      PeerDHT[] peers = UtilsNAT.createNodesDHT(1, rnd, 4000);
      master = peers[0]; // the relay peer
      new PeerBuilderNAT(master.peer()).bufferConfiguration(androidConfig).start();

      // Test setting up relay peers
      unreachablePeer = new PeerBuilderDHT(new PeerBuilder(Number160.createHash(rnd.nextInt())).ports(13337).start())
          .start();
      PeerNAT uNat = new PeerBuilderNAT(unreachablePeer.peer()).relayType(relayType).gcmServerCredentials(gcmServerCredentials).start();
      mockGCM(peers, uNat);

      FutureRelayNAT fbn = uNat.startRelay(master.peerAddress());
      fbn.awaitUninterruptibly();
      Assert.assertTrue(fbn.isSuccess());

      System.err.println("DONE!");

    } finally {
      if(master != null) {
        master.shutdown().await();
      }
      if(unreachablePeer != null) {
        unreachablePeer.shutdown().await();
      }
    }
  }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

  }

  @Test
  public void testRelayDHT() throws Exception {
    final Random rnd = new Random(42);
    PeerDHT master = null;
    PeerDHT unreachablePeer = null;
    try {
      PeerDHT[] peers = UtilsNAT.createNodesDHT(10, rnd, 4000);
      master = peers[0]; // the relay peer
      UtilsNAT.perfectRouting(peers);
      for (PeerDHT peer : peers) {
        new PeerBuilderNAT(peer.peer()).bufferConfiguration(androidConfig).start();
      }

      // Test setting up relay peers
      unreachablePeer = new PeerBuilderDHT(new PeerBuilder(Number160.createHash(rnd.nextInt())).ports(13337).start())
          .start();
      PeerNAT uNat = new PeerBuilderNAT(unreachablePeer.peer()).relayType(relayType).gcmServerCredentials(gcmServerCredentials).peerMapUpdateInterval(3).start();

      FutureRelayNAT fbn = uNat.startRelay(master.peerAddress());
      fbn.awaitUninterruptibly();
      Assert.assertTrue(fbn.isSuccess());
      mockGCM(peers, uNat);

      // wait for maintenance to kick in
      Thread.sleep(4000);

      printMapStatus(unreachablePeer, peers);

      FuturePut futurePut = peers[8].put(unreachablePeer.peerID()).data(new Data("hello")).start()
          .awaitUninterruptibly();
      // the relayed one is the slowest, so we need to wait for it!
      futurePut.futureRequests().awaitUninterruptibly();
      System.err.println(futurePut.failedReason());

      Assert.assertTrue(futurePut.isSuccess());
      // we cannot see the peer in futurePut.rawResult, as the relayed is the slowest and we finish
      // earlier than that.
      Assert.assertTrue(unreachablePeer.storageLayer().contains(
          new Number640(unreachablePeer.peerID(), Number160.ZERO, Number160.ZERO, Number160.ZERO)));
      System.err.println("DONE!");

    } finally {
      if (master != null) {
        master.shutdown().await();
      }
      if (unreachablePeer != null) {
        unreachablePeer.shutdown().await();
      }
    }
  }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

     */
    for (int i = 0; i < queryPeers; i++) {
      Peer peer = createPeer(QUERY_START_PORT + i);
      bootstrap(peer);

      PeerDHT peerDHT = new PeerBuilderDHT(peer).storageLayer(new LoggingStorageLayer("QUERY", false)).start();
      new PeerBuilderNAT(peer).start();

      queries.add(new QueryNode(peerDHT, MEDIUM_SLEEP_TIME_MS, MEDIUM_DATA_SIZE_BYTES));
      LOG.debug("Query peer {} started", i);
    }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

  static int p2Counter = 0;

  public static void main(String[] args) throws IOException {
    final Number160 idP1 = Number160.createHash("p1");
    final Number160 idP2 = Number160.createHash("p2");
    PeerDHT p1 = new PeerBuilderDHT(new PeerBuilder(idP1).ports(1234).start()).start();
    PeerDHT p2 = new PeerBuilderDHT(new PeerBuilder(idP2).ports(1235).start()).start();
    BootstrapBuilder b = p2.peer().bootstrap();
    b.bootstrapTo(Arrays.asList(new PeerAddress(idP1, "localhost", 1234, 1234)));
    b.start().awaitUninterruptibly();

    p1.peer().objectDataReply(new ObjectDataReply() {
      @Override
      public Object reply(PeerAddress sender, Object request) throws Exception {
        if (sender.peerId().equals(idP2)) {
          int val = (Integer) request;
          System.err.println(String.format("P1 received: %d", val));
          if (val != p1Counter) {
            System.err.println("something went wrong");
            throw new Exception("");
          }

          p1Counter++;

          return p1Counter - 1;
        }

        return null;
      }
    });

    p2.peer().objectDataReply(new ObjectDataReply() {
      @Override
      public Object reply(PeerAddress sender, Object request) throws Exception {
        if (sender.peerId().equals(idP1)) {
          int val = (Integer) request;
          System.err.println(String.format("P2 received: %d", val));
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

     * @param args
     *            Empty
     * @throws Exception .
     */
    public static void main(final String[] args) throws Exception {
        PeerDHT master = null;
        try {
            final int peerNr = 100;
            final int port = 4001;
            PeerDHT[] peers = ExampleUtils.createAndAttachPeersDHT(peerNr, port);
            master = peers[0];
            ExampleUtils.bootstrap(peers);
            Number160 key1 = new Number160(RND);
            exampleConsistency(key1, peers);
            exampleAttack(key1, peers);
        } catch (Throwable e) {
            e.printStackTrace();
        } finally {
            if (master != null) {
                master.shutdown();
            }
        }
    }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

     */
    private static void exampleAttack(final Number160 key1, final PeerDHT[] peers) throws IOException,
            ClassNotFoundException, InterruptedException {
        // lets attack!
        System.out.println("Lets ATTACK!");
        PeerDHT mpeer1 = new PeerBuilderDHT(new PeerBuilder(new Number160("0x4bca44fd09461db1981e387e99e41e7d22d06893"))
                .masterPeer(peers[0].peer()).start()).start();
        PeerDHT mpeer2 = new PeerBuilderDHT(new PeerBuilder(new Number160("0x4bca44fd09461db1981e387e99e41e7d22d06892"))
                .masterPeer(peers[0].peer()).start()).start();
        PeerDHT mpeer3 = new PeerBuilderDHT(new PeerBuilder(new Number160("0x4bca44fd09461db1981e387e99e41e7d22d06895"))
                .masterPeer(peers[0].peer()).start()).start();
        mpeer1.peer().bootstrap().peerAddress(peers[0].peerAddress()).start().awaitUninterruptibly();
        mpeer2.peer().bootstrap().peerAddress(peers[0].peerAddress()).start().awaitUninterruptibly();
        mpeer3.peer().bootstrap().peerAddress(peers[0].peerAddress()).start().awaitUninterruptibly();
        // load old data
        Number640 key = new Number640(key1, Number160.ZERO, Number160.ZERO, Number160.ZERO);
        mpeer1.storageLayer()
                .put(key, new Data("attack, attack, attack!"), null, false, false);
        mpeer2.storageLayer()
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

     * Starts to run the examples.
     * @param args No arguments necessary
     * @throws Exception .
     */
    public static void main(final String[] args) throws Exception {
      PeerDHT master = null;
        final int nrPeers = 100;
        final int port = 4001;
        final int waitingTime = 250;
        try {
          PeerDHT[] peers = ExampleUtils.createAndAttachPeersDHT(nrPeers, port);
            ExampleUtils.bootstrap(peers);
            master = peers[0];
            Number160 nr = new Number160(RND);
            examplePutGet(peers, nr);
            examplePutGetConfig(peers, nr);
            exampleGetBlocking(peers, nr);
            exampleGetNonBlocking(peers, nr);
            Thread.sleep(waitingTime);
            exampleAddGet(peers);
        } finally {
            if (master != null) {
                master.shutdown();
            }
        }
    }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

  private static int keyStore = 543453049;
  private static int serverPort = 4000;
  private static int clientPort = 4563;

  public void startServer(String addr) throws Exception {
    PeerDHT peer = null;
    try {
      Random r = new Random(42L);
      // peer.getP2PConfiguration().setBehindFirewall(true);
      Bindings b = new Bindings();
      // b.addInterface("eth0");
      b.addAddress(InetAddress.getByName(addr));
      // b.addAddress(InetAddress.getByAddress(addr));
      peer = new PeerBuilderDHT(new PeerBuilder(new Number160(r)).bindings(b).ports(serverPort).start()).start();
      System.out.println("peer started.");
      for (;;) {
        Thread.sleep(5000);
        FutureGet fg = peer.get(new Number160(keyStore)).all().start();
        fg.awaitUninterruptibly();
        int size = fg.dataMap().size();
        System.out.println("size " + size);
        Iterator<Data> iterator = fg.dataMap().values().iterator();
        while (iterator.hasNext()) {
          Data d = iterator.next();
          System.out.println("got: " + d.object().toString());
        }
      }
    } finally {
      peer.shutdown();
    }
  }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

    }
  }

  public static void startClientNAT(String ip) throws Exception {
    Random r = new Random(43L);
    PeerDHT peer = new PeerBuilderDHT(new PeerBuilder(new Number160(r)).ports(clientPort).behindFirewall().start()).start();
    PeerAddress bootStrapServer = new PeerAddress(Number160.ZERO, InetAddress.getByName(ip), serverPort, serverPort);
    FutureDiscover fd = peer.peer().discover().peerAddress(bootStrapServer).start();
    System.out.println("About to wait...");
    fd.awaitUninterruptibly();
    if (fd.isSuccess()) {
      System.out.println("*** FOUND THAT MY OUTSIDE ADDRESS IS " + fd.peerAddress());
    } else {
      System.out.println("*** FAILED " + fd.failedReason());
    }

    bootStrapServer = fd.reporter();
    FutureBootstrap bootstrap = peer.peer().bootstrap().peerAddress(bootStrapServer).start();
    bootstrap.awaitUninterruptibly();
    if (!bootstrap.isSuccess()) {
      System.out.println("*** COULD NOT BOOTSTRAP!");
    } else {
      System.out.println("*** SUCCESSFUL BOOTSTRAP");
    }

    String inLine = null;
    while ((inLine = getLine()) != null) {
      if (inLine.equals("show")) {
        FutureGet fget = peer.get(new Number160(keyStore)).all().start();
        fget.awaitUninterruptibly();
        Iterator<Data> iterator = fget.dataMap().values().iterator();
        StringBuffer allString = new StringBuffer();
        FutureGet fg;
        while (iterator.hasNext()) {
          Data d = iterator.next();
          fg = peer.get(new Number160(((Integer) d.object()).intValue())).start();
          fg.awaitUninterruptibly();
          if (fg.data() != null) {
            allString.append(fg.data().object().toString()).append("\n");
          } else {
            System.err.println("Could not find key for val: " + d.object());
          }
        }
        System.out.println("got: " + allString.toString());
      } else {
        int r2 = new Random().nextInt();
        System.out.println("Storing DHT address (" + r2 + ") in DHT");
        peer.add(new Number160(keyStore)).data(new Data(r2)).start().awaitUninterruptibly();
        System.out.println("Adding (" + inLine + ") to DHT");
        peer.put(new Number160(r2)).data(new Data(inLine)).start().awaitUninterruptibly();
      }
    }
    System.out.println("Shutting down...");
    // peer.halt();
  }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

     * @param args
     *            Empty
     * @throws Exception .
     */
    public static void main(final String[] args) throws Exception {
      PeerDHT master = null;
        try {
            final int peerNr = 100;
            final int port = 4001;
            PeerDHT[] peers = ExampleUtils.createAndAttachPeersDHT(peerNr, port);
            master = peers[0];
            ExampleUtils.bootstrap(peers);
            exampleMultiColumn(peers);
        } finally {
            if (master != null) {
                master.shutdown();
            }
        }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.