Examples of PeerDHT


Examples of net.tomp2p.dht.PeerDHT

import net.tomp2p.rpc.ObjectDataReply;

public class ExampleReconnect {
  public static void main(String[] args) throws IOException, InterruptedException {
    if(args.length == 0) {
      final PeerDHT peer = new PeerBuilderDHT(new PeerBuilder(Number160.createHash("master")).ports(1234).start()).start();

          while(true){
              peer.send(Number160.createHash("client")).object("ping").start();
              Thread.sleep(1000);
          }
    } else {
      final Peer peer = new PeerBuilder(Number160.createHash("client")).ports(1235).start();
            List<PeerAddress> bootstrap = new ArrayList<PeerAddress>();
            bootstrap.add(new PeerAddress(Number160.createHash("master"), "localhost", 1234,1234));
            peer.bootstrap().bootstrapTo(bootstrap).start();

            peer.objectDataReply(new ObjectDataReply() {
                public Object reply(PeerAddress sender, Object request) throws Exception {
                    System.err.println("client received: " + request.toString());
                    return "pong";
                }
            });
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

import net.tomp2p.peers.PeerAddress;
import net.tomp2p.rpc.ObjectDataReply;

public class ExampleSend {
  public static void main(String[] args) throws Exception {
    PeerDHT master = null;
    try {
      PeerDHT[] peers = ExampleUtils.createAndAttachPeersDHT(100, 4001);
      ExampleUtils.bootstrap(peers);
      master = peers[0];
      setupReplyHandler(peers);
      System.err.println(" ---- query 3 - ~6 close peers -----");
      exampleSendRedundant(peers[34]);
      System.err.println(" ---- now we want to query only the closest one -----");
      exampleSendOne(peers[14]);
      Thread.sleep(60000);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      master.shutdown();
    }
  }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

*
* @author Thomas Bocek
*/
public class ExampleHashMap {
  public static void main(String[] args) throws Exception {
    PeerDHT master = null;
    try {
      PeerDHT[] peers = ExampleUtils.createAndAttachPeersDHT(100, 4001);
      master = peers[0];
      MyPeer myPeer1 = new MyPeer(peers[0]);
      ExampleUtils.bootstrap(peers);
      myPeer1.put("This is my location key", "This is my domain", "This is my content key",
              "And here comes the data").awaitUninterruptibly();
      MyPeer myPeer2 = new MyPeer(peers[5]);
      FutureGet futureGet = myPeer2.get("This is my location key", "This is my domain", "This is my content key");
      futureGet.awaitUninterruptibly();
      Map<Number640, Data> map = futureGet.dataMap();
      for (Data data : map.values()) {
        @SuppressWarnings("unchecked")
                MyData<String> myData = (MyData<String>) data.object();
        System.out.println("key: " + myData.key() + ", domain: " + myData.domain() + ", content: "
                + myData.content() + ", data: " + myData.data());
      }
    } finally {
      master.shutdown();
    }
  }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

        final int nr1 = 1;
        final int port2 = 4002;
        final int nr2 = 2;
        final int port3 = 4003;
        final int nr3 = 4;
        PeerDHT peer1 = new PeerBuilderDHT(new PeerBuilder(new Number160(nr1)).ports(port1).start()).start();
        PeerDHT peer2 = new PeerBuilderDHT(new PeerBuilder(new Number160(nr2)).ports(port2).start()).start();
        PeerDHT peer3 = new PeerBuilderDHT(new PeerBuilder(new Number160(nr3)).ports(port3).start()).start();
       
        new IndirectReplication(peer1).start();
        new IndirectReplication(peer2).start();
        new IndirectReplication(peer3).start();
       
       
        PeerDHT[] peers = new PeerDHT[] {peer1, peer2, peer3};
        //
        FuturePut futurePut = peer1.put(new Number160(nr3)).data(new Data("store on peer1")).start();
        futurePut.awaitUninterruptibly();
        FutureDigest futureDigest = peer1.digest(new Number160(nr3)).start();
        futureDigest.awaitUninterruptibly();
        System.out.println("we found the data on " + futureDigest.rawDigest().size() + " peers");
        // now peer1 gets to know peer2, transfer the data
        peer1.peer().bootstrap().peerAddress(peer2.peerAddress()).start();
        peer1.peer().bootstrap().peerAddress(peer3.peerAddress()).start();
        Thread.sleep(ONE_SECOND);
        futureDigest = peer1.digest(new Number160(nr3)).start();
        futureDigest.awaitUninterruptibly();
        System.out.println("we found the data on " + futureDigest.rawDigest().size() + " peers");
        shutdown(peers);
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

    final private static String QUERY_5 = "INSERT INTO abc VALUE { \"type\": \"message\", \"content\": \"This is an object\" };";

    final private static String QUERY_6 = "SELECT FROM abc;";

    public static void main(String[] args) throws Exception {
        PeerDHT master = null;
        try {
          PeerDHT[] peers = ExampleUtils.createAndAttachPeersDHT(100, 4001);
            master = peers[0];
            ExampleUtils.bootstrap(peers);
            exampleUnQL(peers);
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally {
            master.shutdown();
        }
    }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

  }

  @Test
  public void testRelayDHTPutGet() 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();

      // bootstrap
      unreachablePeer.peer().bootstrap().peerAddress(master.peerAddress()).start();
      FutureRelayNAT fbn = uNat.startRelay(master.peerAddress()).awaitUninterruptibly();
      Assert.assertTrue(fbn.isSuccess());
      mockGCM(peers, uNat);

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

      printMapStatus(unreachablePeer, peers);

      RoutingConfiguration r = new RoutingConfiguration(5, 1, 1);
      RequestP2PConfiguration rp = new RequestP2PConfiguration(1, 1, 0);

      System.err.println("Unreachable: " + unreachablePeer.peerID());
      System.err.println("Relay: " + master.peerID());

      FuturePut futurePut = peers[8].put(unreachablePeer.peerID()).data(new Data("hello")).routingConfiguration(r)
          .requestP2PConfiguration(rp).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());
      Assert.assertTrue(unreachablePeer.storageLayer().contains(
          new Number640(unreachablePeer.peerID(), Number160.ZERO, Number160.ZERO, Number160.ZERO)));

      FutureGet futureGet = peers[8].get(unreachablePeer.peerID()).routingConfiguration(r).requestP2PConfiguration(rp)
          .start();
      futureGet.awaitUninterruptibly();
      Assert.assertTrue(futureGet.isSuccess());

      // we cannot see the peer in futurePut.rawResult, as the relayed is the slowest and we finish
      // earlier than that.

      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 testRelayDHTPutGet2() throws Exception {
    final Random rnd = new Random(42);
    PeerDHT master = null;
    PeerDHT unreachablePeer1 = null;
    PeerDHT unreachablePeer2 = null;
    try {
      PeerDHT[] peers = UtilsNAT.createNodesDHT(10, rnd, 4000);
      master = peers[0]; // the relay peer

      for (PeerDHT peer : peers) {
        new PeerBuilderNAT(peer.peer()).bufferConfiguration(androidConfig).start();
      }

      // Test setting up relay peers
      unreachablePeer1 = new PeerBuilderDHT(new PeerBuilder(Number160.createHash(rnd.nextInt())).ports(13337).start()).start();
      PeerNAT uNat1 = new PeerBuilderNAT(unreachablePeer1.peer()).relayType(relayType).gcmServerCredentials(gcmServerCredentials).peerMapUpdateInterval(3).start();
      FutureRelayNAT fbn1 = uNat1.startRelay(master.peerAddress()).awaitUninterruptibly();
      Assert.assertTrue(fbn1.isSuccess());

      unreachablePeer2 = new PeerBuilderDHT(new PeerBuilder(Number160.createHash(rnd.nextInt())).ports(13338).start()).start();
      PeerNAT uNat2 = new PeerBuilderNAT(unreachablePeer2.peer()).relayType(relayType).gcmServerCredentials(gcmServerCredentials).peerMapUpdateInterval(3).start();
      FutureRelayNAT fbn2 = uNat2.startRelay(master.peerAddress()).awaitUninterruptibly();
      Assert.assertTrue(fbn2.isSuccess());

      peers[8] = unreachablePeer1;
      peers[9] = unreachablePeer2;
      UtilsNAT.perfectRouting(peers);
     
      // wait for relay setup
      Thread.sleep(6000);
     
      mockGCM(peers, uNat1);
      mockGCM(peers, uNat2);
      UtilsNAT.perfectRouting(peers);

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

      printMapStatus(unreachablePeer1, peers);
      printMapStatus(unreachablePeer2, peers);

      RoutingConfiguration r = new RoutingConfiguration(5, 1, 1);
      RequestP2PConfiguration rp = new RequestP2PConfiguration(1, 1, 0);

      System.err.println(unreachablePeer1.peerID()); // f1
      System.err.println(unreachablePeer2.peerID()); // e7

      FuturePut futurePut = unreachablePeer1.put(unreachablePeer2.peerID()).data(new Data("hello"))
          .routingConfiguration(r).requestP2PConfiguration(rp).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());
      Assert.assertTrue(unreachablePeer2.storageLayer().contains(
          new Number640(unreachablePeer2.peerID(), Number160.ZERO, Number160.ZERO, Number160.ZERO)));

      FutureGet futureGet = unreachablePeer1.get(unreachablePeer2.peerID()).routingConfiguration(r)
          .requestP2PConfiguration(rp).fastGet(false).start().awaitUninterruptibly();
      // TODO: try peers even if no data found with fastget
      System.err.println(futureGet.failedReason());
      Assert.assertTrue(futureGet.isSuccess());

      // we cannot see the peer in futurePut.rawResult, as the relayed is the slowest and we finish
      // earlier than that.

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

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

Examples of net.tomp2p.dht.PeerDHT

  }

  @Test
    public void testRelayDHTPutGetSigned() throws Exception {
        final Random rnd = new Random(42);
         PeerDHT master = null;
         PeerDHT unreachablePeer1 = null;
         PeerDHT unreachablePeer2 = null;
         try {
           PeerDHT[] peers = UtilsNAT.createNodesDHT(10, rnd, 4000);
             master = peers[0]; // the relay peer
           
             for(PeerDHT peer:peers) {
         new PeerBuilderNAT(peer.peer()).bufferConfiguration(androidConfig).start();
             }
            
             KeyPairGenerator gen = KeyPairGenerator.getInstance("DSA");
             KeyPair pair1 = gen.generateKeyPair();
             KeyPair pair2 = gen.generateKeyPair();
            
             // Test setting up relay peers
             unreachablePeer1 = new PeerBuilderDHT(new PeerBuilder(Number160.createHash(rnd.nextInt())).keyPair(pair1).ports(13337).start()).start();
             unreachablePeer1.peer().peerBean().serverPeerAddress(unreachablePeer1.peer().peerAddress().changeFirewalledTCP(true).changeFirewalledUDP(true));
             PeerNAT uNat1 = new PeerBuilderNAT(unreachablePeer1.peer()).relayType(relayType).gcmServerCredentials(gcmServerCredentials).peerMapUpdateInterval(3).start();
             FutureRelayNAT fbn1 = uNat1.startRelay(master.peerAddress()).awaitUninterruptibly();
             Assert.assertTrue(fbn1.isSuccess());

             unreachablePeer2 = new PeerBuilderDHT(new PeerBuilder(Number160.createHash(rnd.nextInt())).keyPair(pair2).ports(13338).start()).start();
             unreachablePeer2.peer().peerBean().serverPeerAddress(unreachablePeer2.peer().peerAddress().changeFirewalledTCP(true).changeFirewalledUDP(true));
             PeerNAT uNat2 = new PeerBuilderNAT(unreachablePeer2.peer()).relayType(relayType).gcmServerCredentials(gcmServerCredentials).peerMapUpdateInterval(3).start();
             FutureRelayNAT fbn2 = uNat2.startRelay(master.peerAddress()).awaitUninterruptibly();
             Assert.assertTrue(fbn2.isSuccess());

             peers[8] = unreachablePeer1;
       peers[9] = unreachablePeer2;
       UtilsNAT.perfectRouting(peers);
      
       // wait for relay setup
       Thread.sleep(4000);
      
       mockGCM(peers, uNat1);
       mockGCM(peers, uNat2);
       UtilsNAT.perfectRouting(peers);

       // wait for maintenance to kick in
       Thread.sleep(4000);
            
             printMapStatus(unreachablePeer1, peers);
             printMapStatus(unreachablePeer2, peers);
            
             RoutingConfiguration r = new RoutingConfiguration(5, 1, 1);
             RequestP2PConfiguration rp = new RequestP2PConfiguration(1, 1, 0);
            
             System.err.println(unreachablePeer1.peerID()); //f1
             System.err.println(unreachablePeer2.peerID()); //e7
            
             FuturePut futurePut = unreachablePeer1.put(unreachablePeer2.peerID()).data(new Data("hello")).sign().routingConfiguration(r).requestP2PConfiguration(rp).start().awaitUninterruptibly();
             //the relayed one is the slowest, so we need to wait for it!
             futurePut.awaitUninterruptibly();
             futurePut.futureRequests().awaitUninterruptibly();
             System.err.println(futurePut.failedReason());
            
             Assert.assertTrue(futurePut.isSuccess());
             Assert.assertTrue(unreachablePeer2.storageLayer().contains(new Number640(unreachablePeer2.peerID(), Number160.ZERO, Number160.ZERO, Number160.ZERO)));
            
             FutureGet futureGet = unreachablePeer1.get(unreachablePeer2.peerID()).routingConfiguration(r).sign().requestP2PConfiguration(rp).fastGet(false).start().awaitUninterruptibly();
             //TODO: try peers even if no data found with fastget
             System.err.println(futureGet.failedReason());
             Assert.assertTrue(futureGet.isSuccess());
            
             //we cannot see the peer in futurePut.rawResult, as the relayed is the slowest and we finish earlier than that.
            
             System.err.println("DONE!");
            
         } finally {
           if(master != null) {
         master.shutdown().await();
       }
       if(unreachablePeer1 != null) {
         unreachablePeer1.shutdown().await();
       }
       if(unreachablePeer2 != null) {
         unreachablePeer2.shutdown().await();
       }
         }
    }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

  }

  @Test
  public void testInfoMessageSAME() throws IOException, InterruptedException {

    PeerDHT sender = null;
    PeerDHT receiver = null;
    try {
      final AtomicReference<Type> ref = new AtomicReference<Type>(Type.UNKNOWN_ID);
      final AtomicReference<DataMap> ref2 = new AtomicReference<DataMap>();

      //final ReplicationSync syncSender = new ReplicationSync(5);
      sender = new PeerBuilderDHT(new PeerBuilder(new Number160(1)).ports(4001).start()).start();
      //final ReplicationSync syncReceiver = new ReplicationSync(5);
      receiver = new PeerBuilderDHT(new PeerBuilder(new Number160(2)).ports(4002).start()).start();
      final PeerSync senderSync = new PeerSync(sender, 5);
      new PeerSync(receiver, 5);

      final Number160 locationKey = new Number160(100);
      final Number160 domainKey = Number160.ZERO;
      final Number160 contentKey = Number160.ZERO;
      final String value = "Test";

      HashMap<Number640, Data> map = new HashMap<Number640, Data>();
      final DataMap dataMap = new DataMap(map);
      map.put(new Number640(locationKey, domainKey, contentKey, Number160.ZERO), new Data("Test"));

      sender.put(locationKey).data(new Data(value)).start().awaitUninterruptibly();
      receiver.put(locationKey).data(new Data(value)).start().awaitUninterruptibly();

      sender.peer().bootstrap().peerAddress(receiver.peerAddress()).start().awaitUninterruptibly();

      FutureChannelCreator futureChannelCreator = sender.peer().connectionBean().reservation().create(0, 1);

      final CountDownLatch latch = new CountDownLatch(1);
      final PeerAddress receiverAddress = receiver.peerAddress();

      futureChannelCreator.addListener(new BaseFutureAdapter<FutureChannelCreator>() {
        @Override
        public void operationComplete(final FutureChannelCreator future2) throws Exception {
          if (future2.isSuccess()) {
            SyncBuilder synchronizationBuilder = new SyncBuilder(senderSync, receiverAddress, 5);
            synchronizationBuilder.dataMap(dataMap);
            final FutureResponse futureResponse = senderSync.syncRPC().infoMessage(
                    receiverAddress, synchronizationBuilder, future2.channelCreator());
            futureResponse.addListener(new BaseFutureAdapter<FutureResponse>() {
              @Override
              public void operationComplete(FutureResponse future) throws Exception {
                System.err.println(future.failedReason());
                ref.set(future.responseMessage().type());
                ref2.set(future.responseMessage().dataMap(0));
                Utils.addReleaseListener(future2.channelCreator(), futureResponse);
                latch.countDown();
              }
            });
          }
        }
      });
      latch.await();
      assertEquals(Type.OK, ref.get());
      assertEquals(1, ref2.get().size());
      assertEquals(0, ref2.get().dataMap().values().iterator().next().length());
      assertEquals(true, ref2.get().dataMap().values().iterator().next().isFlag1());
    } finally {
      if (sender != null) {
        sender.shutdown().await();
      }
      if (receiver != null) {
        receiver.shutdown().await();
      }
    }
  }
View Full Code Here

Examples of net.tomp2p.dht.PeerDHT

  }

  @Test
  public void testInfoMessageNO() throws IOException, InterruptedException {

    PeerDHT sender = null;
    PeerDHT receiver = null;
    try {
      final AtomicReference<DataMap> ref = new AtomicReference<DataMap>();

      sender = new PeerBuilderDHT(new PeerBuilder(new Number160(3)).ports(4003).start()).start();
      receiver = new PeerBuilderDHT(new PeerBuilder(new Number160(4)).ports(4004).start()).start();
      final PeerSync senderSync = new PeerSync(sender, 5);
      new PeerSync(receiver, 5);

      final Number160 locationKey = new Number160(200);
      final Number160 domainKey = Number160.ZERO;
      final Number160 contentKey = Number160.ZERO;
      final String value = "Test";

      HashMap<Number640, Data> map = new HashMap<Number640, Data>();
      final DataMap dataMap = new DataMap(map);
      map.put(new Number640(locationKey, domainKey, contentKey, Number160.ZERO), new Data("Test"));

      sender.put(locationKey).data(new Data(value)).start().awaitUninterruptibly();

      sender.peer().bootstrap().peerAddress(receiver.peerAddress()).start().awaitUninterruptibly();
      final CountDownLatch latch = new CountDownLatch(1);
      final PeerAddress receiverAddress = receiver.peerAddress();
      FutureChannelCreator futureChannelCreator = sender.peer().connectionBean().reservation().create(0, 1);
      futureChannelCreator.addListener(new BaseFutureAdapter<FutureChannelCreator>() {
        @Override
        public void operationComplete(final FutureChannelCreator future2) throws Exception {
          if (future2.isSuccess()) {
            SyncBuilder synchronizationBuilder = new SyncBuilder(senderSync, receiverAddress, 5);
            synchronizationBuilder.dataMap(dataMap);
            final FutureResponse futureResponse = senderSync.syncRPC().infoMessage(
                    receiverAddress, synchronizationBuilder, future2.channelCreator());
            futureResponse.addListener(new BaseFutureAdapter<FutureResponse>() {
              @Override
              public void operationComplete(FutureResponse future) throws Exception {
                ref.set(future.responseMessage().dataMap(0));
                Utils.addReleaseListener(future2.channelCreator(), futureResponse);
                latch.countDown();
              }
            });
          }
        }
      });

      latch.await();
      assertEquals(1, ref.get().size());
      assertEquals(0, ref.get().dataMap().values().iterator().next().length());
      assertEquals(true, ref.get().dataMap().values().iterator().next().isFlag2());
    } finally {
      if (sender != null) {
        sender.shutdown().await();
      }
      if (receiver != null) {
        receiver.shutdown().await();
      }
    }
  }
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.