Package net.tomp2p.p2p

Examples of net.tomp2p.p2p.Peer


        if (nrOfPeers < 1) {
            throw new IllegalArgumentException("Cannot create less than 1 peer");
        }
        Bindings bindings = new Bindings().addInterface("lo");
        PeerDHT[] peers = new PeerDHT[nrOfPeers];
        final Peer master;
        if (automaticFuture != null) {
          Number160 peerId = new Number160(rnd);
          PeerMap peerMap = new PeerMap(new PeerMapConfiguration(peerId));
          master = new PeerBuilder(peerId)
                    .ports(port).enableMaintenance(maintenance)
                    .bindings(bindings).peerMap(peerMap).start().addAutomaticFuture(automaticFuture);
            peers[0] = new PeerBuilderDHT(master).start();
           
        } else {
          Number160 peerId = new Number160(rnd);
          PeerMap peerMap = new PeerMap(new PeerMapConfiguration(peerId));
          master = new PeerBuilder(peerId).enableMaintenance(maintenance).bindings(bindings)
                    .peerMap(peerMap).ports(port).start();
          peers[0] = new PeerBuilderDHT(master).start();
        }

        for (int i = 1; i < nrOfPeers; i++) {
            if (automaticFuture != null) {
              Number160 peerId = new Number160(rnd);
              PeerMap peerMap = new PeerMap(new PeerMapConfiguration(peerId));
                Peer peer = new PeerBuilder(peerId)
                        .masterPeer(master)
                        .enableMaintenance(maintenance).enableMaintenance(maintenance).peerMap(peerMap).bindings(bindings).start().addAutomaticFuture(automaticFuture);
                peers[i] = new PeerBuilderDHT(peer).start();
            } else {
              Number160 peerId = new Number160(rnd);
              PeerMap peerMap = new PeerMap(new PeerMapConfiguration(peerId).peerNoVerification());
              Peer peer = new PeerBuilder(peerId).enableMaintenance(maintenance)
                        .bindings(bindings).peerMap(peerMap).masterPeer(master)
                        .start();
                peers[i] = new PeerBuilderDHT(peer).start();
            }
        }
View Full Code Here


        if (nrOfPeers < 1) {
            throw new IllegalArgumentException("Cannot create less than 1 peer");
        }
        Bindings bindings = new Bindings().addInterface("lo");
        PeerDHT[] peers  = new PeerDHT[nrOfPeers];
        final Peer master;
        if (automaticFuture != null) {
          Number160 peerId = new Number160(rnd);
          PeerMap peerMap = new PeerMap(new PeerMapConfiguration(peerId));
          master = new PeerBuilder(peerId)
                    .ports(port)
                    .bindings(bindings).peerMap(peerMap).start().addAutomaticFuture(automaticFuture);
          peers[0] = new PeerBuilderDHT(master).start();
           
        } else {
          Number160 peerId = new Number160(rnd);
          PeerMap peerMap = new PeerMap(new PeerMapConfiguration(peerId));
          master = new PeerBuilder(peerId).bindings(bindings)
                    .peerMap(peerMap).ports(port).start();
          peers[0] = new PeerBuilderDHT(master).start();
        }
       
        IndirectReplication i1 = new IndirectReplication(peers[0])
    .intervalMillis(1000)
    .nRoot()
    .replicationFactor(6)
    .keepData(false).start();

        for (int i = 1; i < nrOfPeers; i++) {
            if (automaticFuture != null) {
              Number160 peerId = new Number160(rnd);
              PeerMap peerMap = new PeerMap(new PeerMapConfiguration(peerId));
                Peer peer = new PeerBuilder(peerId)
                        .masterPeer(master)
                        .peerMap(peerMap).bindings(bindings).start().addAutomaticFuture(automaticFuture);
                peers[i] = new PeerBuilderDHT(peer).start();
            } else {
              Number160 peerId = new Number160(rnd);
              PeerMap peerMap = new PeerMap(new PeerMapConfiguration(peerId).peerNoVerification());
              Peer peer = new PeerBuilder(peerId)
                        .bindings(bindings).peerMap(peerMap).masterPeer(master)
                        .start();
                peers[i] = new PeerBuilderDHT(peer).start();
            }
           
View Full Code Here

     * @throws InterruptedException .
     */
    @Test
    @Ignore
    public void startClient() throws IOException, ClassNotFoundException, InterruptedException {
        Peer myPeer = new PeerBuilder(Number160.createHash("client peer")).behindFirewall(true).
                ports(port).enableMaintenance(false).start();
        PeerAddress bootstrapServerPeerAddress = new PeerAddress(Number160.ZERO, new InetSocketAddress(
                InetAddress.getByName(ipSuperPeer), port));

        FutureDiscover discovery = myPeer.discover().peerAddress(bootstrapServerPeerAddress).start();
        discovery.awaitUninterruptibly();
        if (!discovery.isSuccess()) {
            System.err.println("no success!");
        }
        System.err.println("Peer: " + discovery.reporter() + " told us about our address.");
        InetSocketAddress myInetSocketAddress = new InetSocketAddress(myPeer.peerAddress().inetAddress(), port);

        bootstrapServerPeerAddress = discovery.reporter();
        FutureBootstrap bootstrap = myPeer.bootstrap().peerAddress(bootstrapServerPeerAddress).start();
        bootstrap.awaitUninterruptibly();

        if (!bootstrap.isSuccess()) {
            System.err.println("no success!");
        }
       
        PeerDHT myPeerDHT = new PeerBuilderDHT(myPeer).start();

        FuturePut putFuture = myPeerDHT.put(Number160.createHash("key")).data(new Data(myInetSocketAddress)).start();
        putFuture.awaitUninterruptibly();
        FutureGet futureDHT = myPeerDHT.get(Number160.createHash("key")).start();
        futureDHT.awaitUninterruptibly();
        futureDHT.futureRequests().awaitUninterruptibly();
        Data data = futureDHT.data();
        if (data == null) {
            throw new RuntimeException("Address not available in DHT.");
        }
        InetSocketAddress inetSocketAddress = (InetSocketAddress) data.object();
        System.err.println("returned " + inetSocketAddress);
        myPeer.shutdown();
        // Thread.sleep( Long.MAX_VALUE );
    }
View Full Code Here

        PeerTracker recv1 = null;
        ChannelCreator cc = null;
        try {
            sender = new PeerBuilderTracker(new PeerBuilder(new Number160("0x9876")).p2pId(55).ports(2424).start()).peerExchangeRefreshSec(1).start();
            Peer recv1Peer = new PeerBuilder(new Number160("0x1234")).p2pId(55).ports(8088).start();
           
           
            final CountDownLatch c = new CountDownLatch(2);
            TrackerStorage trackerStorage = new TrackerStorage(60, new int[]{1,2}, 20, recv1Peer.peerBean().peerMap(), recv1.peerAddress(), false);
            Random rnd = new Random(42);
            PeerBuilderTracker.DefaultPeerExchangeHandler pe = new PeerBuilderTracker.DefaultPeerExchangeHandler(trackerStorage, recv1Peer.peerAddress(), rnd) {
              @Override
              public boolean put(Number320 key, TrackerData trackerData, PeerAddress referrer) {
                  boolean retVal = super.put(key, trackerData, referrer);
                  c.countDown();
                  return retVal;
View Full Code Here

  public void setupPeers() throws IOException {
    /**
     * Init the relay peers first
     */
    for (int i = 0; i < relayPeers; i++) {
      Peer peer = createPeer(RELAY_START_PORT + i);
      // Note: Does not work if relay does not have a PeerDHT
      new PeerBuilderDHT(peer).storageLayer(new LoggingStorageLayer("RELAY", false)).start();
      PeerNAT peerNAT = new PeerBuilderNAT(peer).bufferConfiguration(bufferConfig).start();

      relays.add(peerNAT);
      LOG.debug("Relay peer {} started", i);
    }

    /**
     * Then init the mobile peers
     */
    for (int i = 0; i < mobilePeers; i++) {
      Peer peer = createPeer(MOBILE_START_PORT + i);
      bootstrap(peer);

      // start DHT capability
      new PeerBuilderDHT(peer).storageLayer(new LoggingStorageLayer("UNREACHABLE", true)).start();

      LOG.debug("Connecting to Relay now");
      Set<PeerAddress> relayAddresses = new HashSet<PeerAddress>(relayPeers);
      for (PeerNAT relay : relays) {
        relayAddresses.add(relay.peer().peerAddress());
      }

      PeerBuilderNAT builder = new PeerBuilderNAT(peer).peerMapUpdateInterval(PEER_MAP_UPDATE_INTERVAL_S)
          .relays(relayAddresses).relayType(RELAY_TYPE);
      if (RELAY_TYPE == RelayType.ANDROID) {
        GCMServerCredentials gcmCredentials = new GCMServerCredentials().senderAuthenticationKey(gcmKey)
            .senderId(gcmSenderId).registrationId(GCM_REGISTRATION_ID);
        builder.gcmServerCredentials(gcmCredentials);
      }

      PeerNAT peerNat = builder.start();
      FutureRelayNAT futureRelayNAT = peerNat.startRelay(relays.get(0).peer().peerAddress()).awaitUninterruptibly();
      if (!futureRelayNAT.isSuccess()) {
        LOG.error("Cannot connect to Relay(s). Reason: {}", futureRelayNAT.failedReason());
        return;
      }

      mobiles.add(peerNat);
      LOG.debug("Mobile peer {} connected to DHT and Relay(s)", i);
    }

    /**
     * Finally init the query peers
     */
    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();

View Full Code Here

public class ExampleNAT {
  private final static int PORT_SERVER = 4000;
  private final static int PORT_CLIENT = 4000;
  public static void startServer() throws Exception {
    Random r = new Random(42L);
    Peer peer = new PeerBuilder(new Number160(r)).ports(PORT_SERVER).start();
    System.out.println("peer started.");
    for (;;) {
      for (PeerAddress pa : peer.peerBean().peerMap().all()) {
          System.out.println("peer online (TCP):" + pa);
      }
      Thread.sleep(2000);
    }
  }
View Full Code Here

    }
  }

  public static void startClientNAT(String ip) throws Exception {
    Random r = new Random(43L);
    Peer peer = new PeerBuilder(new Number160(r)).ports(PORT_CLIENT).behindFirewall().start();
    PeerNAT peerNAT = new PeerBuilderNAT(peer).start();
    PeerAddress pa = new PeerAddress(Number160.ZERO, InetAddress.getByName(ip), PORT_SERVER, PORT_SERVER);
   
    FutureDiscover fd = peer.discover().peerAddress(pa).start();
    FutureNAT fn = peerNAT.startSetupPortforwarding(fd);
    FutureRelayNAT frn = peerNAT.startRelay(fd, fn);
   
    frn.awaitUninterruptibly();
    if (fd.isSuccess()) {
      System.out.println("found that my outside address is " + fd.peerAddress());
    } else {
      System.out.println("failed " + fd.failedReason());
    }
   
    if (fn.isSuccess()) {
      System.out.println("NAT success: " + fn.peerAddress());
    } else {
      System.out.println("failed " + fn.failedReason());
    }
   
    peer.shutdown();
  }
View Full Code Here

public class TestTaskRPC {
    final private static Random rnd = new Random(42L);

    @Test
    public void testRPC1() throws Exception {
        Peer peer1 = null;
        Peer peer2 = null;
        try {
            peer1 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4001).setEnableTask(true)
                    .makeAndListen();
            peer2 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4002).setEnableTask(true)
                    .makeAndListen();
            FutureChannelCreator futureChannelCreator = peer1.getConnectionBean().getConnectionReservation().reserve(1);
            futureChannelCreator.awaitUninterruptibly();
            Number160 taskId = new Number160(11);
            Map<Number160, Data> dataMap = new HashMap<Number160, Data>();
            dataMap.put(new Number160(22), new Data("testme"));
            FutureResponse futureResponse = peer1.getTaskRPC().sendTask(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId, dataMap, new MyWorker1(), null, false, false);
            Utils.addReleaseListenerAll(futureResponse, peer1.getConnectionBean().getConnectionReservation(),
                    futureChannelCreator.getChannelCreator());
            futureResponse.awaitUninterruptibly();
            Assert.assertEquals(true, futureResponse.isSuccess());
            Thread.sleep(1000);
        } finally {
            if (peer1 != null) {
                peer1.halt();
            }
            if (peer2 != null) {
                peer2.halt();
            }
        }
    }
View Full Code Here

        }
    }

    @Test
    public void testRPC2() throws Exception {
        Peer peer1 = null;
        Peer peer2 = null;
        try {
            peer1 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4001).setEnableTask(true)
                    .makeAndListen();
            peer2 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4002).setEnableTask(true)
                    .makeAndListen();
            FutureChannelCreator futureChannelCreator = peer1.getConnectionBean().getConnectionReservation().reserve(5);
            futureChannelCreator.awaitUninterruptibly();
            Number160 taskId1 = new Number160(11);
            Number160 taskId2 = new Number160(12);
            Number160 taskId3 = new Number160(13);
            Map<Number160, Data> dataMap = new HashMap<Number160, Data>();
            dataMap.put(new Number160(22), new Data("testme"));
            FutureResponse futureResponse1 = peer1.getTaskRPC().sendTask(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId1, dataMap, new MyWorker2(), null, false, false);
            futureResponse1.awaitUninterruptibly();
            FutureResponse futureResponse2 = peer1.getTaskRPC().sendTask(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId2, dataMap, new MyWorker2(), null, false, false);
            futureResponse2.awaitUninterruptibly();
            FutureResponse futureResponse3 = peer1.getTaskRPC().sendTask(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId3, dataMap, new MyWorker2(), null, false, false);
            futureResponse3.awaitUninterruptibly();
            Assert.assertEquals(true, futureResponse1.isSuccess());
            Assert.assertEquals(true, futureResponse2.isSuccess());
            Assert.assertEquals(true, futureResponse3.isSuccess());
            Collection<Number160> taskIDs = new ArrayList<Number160>();
            taskIDs.add(taskId1);
            taskIDs.add(taskId2);
            taskIDs.add(taskId3);
            FutureResponse futureResponse4 = peer1.getTaskRPC().taskStatus(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskIDs, false);
            futureResponse4.awaitUninterruptibly();
            Assert.assertEquals(3, futureResponse4.getResponse().getDataMap().size());
            Map<Number160, Data> map = futureResponse4.getResponse().getDataMap();
            TaskStatus status1 = (TaskStatus) map.get(taskId1).getObject();
            TaskStatus status2 = (TaskStatus) map.get(taskId2).getObject();
            TaskStatus status3 = (TaskStatus) map.get(taskId3).getObject();
            Assert.assertEquals(TaskStatus.Status.STARTED, status1.getStatus());
            Assert.assertEquals(TaskStatus.Status.QUEUE, status2.getStatus());
            Assert.assertEquals(0, status2.getQueuePosition());
            Assert.assertEquals(TaskStatus.Status.QUEUE, status3.getStatus());
            Assert.assertEquals(1, status3.getQueuePosition());
            Thread.sleep(1000);
            FutureResponse futureResponse5 = peer1.getTaskRPC().taskStatus(peer1.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskIDs, false);
            Utils.addReleaseListenerAll(futureResponse5, peer1.getConnectionBean().getConnectionReservation(),
                    futureChannelCreator.getChannelCreator());
            futureResponse5.awaitUninterruptibly();
            Assert.assertEquals(3, futureResponse5.getResponse().getDataMap().size());
            map = futureResponse5.getResponse().getDataMap();
            status1 = (TaskStatus) map.get(taskId1).getObject();
            status2 = (TaskStatus) map.get(taskId2).getObject();
            status3 = (TaskStatus) map.get(taskId3).getObject();
            Assert.assertEquals(TaskStatus.Status.SUCCESS_RESULT_SENT, status1.getStatus());
            Assert.assertEquals(TaskStatus.Status.SUCCESS_RESULT_SENT, status2.getStatus());
            Assert.assertEquals(TaskStatus.Status.SUCCESS_RESULT_SENT, status3.getStatus());
        } finally {
            if (peer1 != null) {
                peer1.halt();
            }
            if (peer2 != null) {
                peer2.halt();
            }
        }
    }
View Full Code Here

        }
    }

    @Test
    public void testRPCAsync() throws Exception {
        Peer peer1 = null;
        Peer peer2 = null;
        try {
            peer1 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4001).setEnableTask(true)
                    .makeAndListen();
            peer2 = new PeerMaker(new Number160(rnd)).setWorkerThreads(1).setPorts(4002).setEnableTask(true)
                    .makeAndListen();
            FutureChannelCreator futureChannelCreator = peer1.getConnectionBean().getConnectionReservation().reserve(1);
            futureChannelCreator.awaitUninterruptibly();
            Number160 taskId = new Number160(11);
            Map<Number160, Data> dataMap = new HashMap<Number160, Data>();
            dataMap.put(new Number160(22), new Data("testme"));
            FutureAsyncTask futureAsyncTask = peer1.getAsyncTask().submit(peer2.getPeerAddress(),
                    futureChannelCreator.getChannelCreator(), taskId, dataMap, new MyWorker3(), false, false);
            Utils.addReleaseListenerAll(futureAsyncTask, peer1.getConnectionBean().getConnectionReservation(),
                    futureChannelCreator.getChannelCreator());
            futureAsyncTask.awaitUninterruptibly();
            Assert.assertEquals(true, futureAsyncTask.isSuccess());
            Assert.assertEquals("yup", futureAsyncTask.getDataMap().get(Number160.ONE).getObject());
        } catch (Throwable t) {
            t.printStackTrace();
        } finally {
            if (peer1 != null) {
                peer1.halt();
            }
            if (peer2 != null) {
                peer2.halt();
            }
        }
    }
View Full Code Here

TOP

Related Classes of net.tomp2p.p2p.Peer

Copyright © 2018 www.massapicom. 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.