/** * Create network configuration for 'normal' peer with random node id. The bootstrapping happens at the * default port {@link H2HConstants#H2H_PORT}. * * @param bootstrapAddress the address to bootstrap to. This can be address of the initial peer or any * other peer connected to the DHT. * @return the network configuration */ public static NetworkConfiguration create(InetAddress bootstrapAddress) { return create(UUID.randomUUID().toString(), bootstrapAddress); }
netConfig = NetworkConfiguration.create(nodeId, address); logger.info("Connect to existing peer. Address: {}", address.toString());
NetworkConfiguration node2Conf = NetworkConfiguration.create(InetAddress.getLocalHost()); node2.connect(node2Conf); NetworkConfiguration node3Conf = NetworkConfiguration.create(InetAddress.getLocalHost()).setPort(4777) .setNodeId("node3"); node3.connect(node3Conf); NetworkConfiguration node4Conf = NetworkConfiguration.create(InetAddress.getLocalHost()).setBootstrapPort(4777); node4.connect(node4Conf);
protected void execute() throws UnknownHostException { String nodeID = askNodeID(); print("Specify Bootstrap Address:"); InetAddress bootstrapAddress = InetAddress.getByName(awaitStringParameter()); String bootstrapPort = "default"; if (isExpertMode) { print("Specify Bootstrap Port or enter 'default':"); bootstrapPort = awaitStringParameter(); } buildNode(); NetworkConfiguration config = NetworkConfiguration.create(nodeID, bootstrapAddress); if (!"default".equalsIgnoreCase(bootstrapPort)) { config.setBootstrapPort(Integer.parseInt(bootstrapPort)); } connectNode(config); } };
IH2HNode node2 = H2HNode.createNode(fileConfiguration); node1.connect(NetworkConfiguration.createInitial()); node2.connect(NetworkConfiguration.create(InetAddress.getLocalHost()));
for (int i = 1; i < numberOfNodes; i++) { IH2HNode node = H2HNode.createNode(fileConfig, encryption, serializer); node.connect(NetworkConfiguration.create("node " + i, bootstrapAddress)); nodes.add(node);
IH2HNode node2 = H2HNode.createNode(fileConfiguration); node1.connect(NetworkConfiguration.createInitial()); node2.connect(NetworkConfiguration.create(InetAddress.getLocalHost()));
public static void main(String[] args) throws Exception { IFileConfiguration fileConfiguration = FileConfiguration.createDefault(); // Create two nodes and open a new overlay network IH2HNode node1 = H2HNode.createNode(fileConfiguration); IH2HNode node2 = H2HNode.createNode(fileConfiguration); node1.connect(NetworkConfiguration.createInitial()); node2.connect(NetworkConfiguration.create(InetAddress.getLocalHost())); // These two file agents are used to configure the root directory of the logged in user ExampleFileAgent node1FileAgent = new ExampleFileAgent(); ExampleFileAgent node2FileAgent = new ExampleFileAgent(); // Register user 'Alice' and login her at node 1 and 2 UserCredentials alice = new UserCredentials("Alice", "password", "pin"); node1.getUserManager().createRegisterProcess(alice).execute(); node1.getUserManager().createLoginProcess(alice, node1FileAgent).execute(); node2.getUserManager().createLoginProcess(alice, node2FileAgent).execute(); // In this example, a file event listener is registered at node 2. Therefore, we will listen to events // that happen by actions taken by node 1. node2.getFileManager().subscribeFileEvents(new ExampleEventListener(node2.getFileManager())); // To demonstrate the 'add' event, we will add a new file with node 1 // Let's create a file and upload it at node 1 File fileAtNode1 = new File(node1FileAgent.getRoot(), "test-file-event.txt"); FileUtils.write(fileAtNode1, "Hello"); // add some content node1.getFileManager().createAddProcess(fileAtNode1).execute(); // Let's trigger a deletion event fileAtNode1.delete(); node1.getFileManager().createDeleteProcess(fileAtNode1).execute(); }
@Test public void testConnectToOtherPeer() throws UnknownHostException { NetworkManager nodeA = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); NetworkManager nodeB = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); INetworkConfiguration netConfigA = NetworkConfiguration.createInitial("nodeA"); INetworkConfiguration netConfigB = NetworkConfiguration.create("nodeB", InetAddress.getLocalHost()); try { assertTrue(nodeA.connect(netConfigA)); assertTrue(nodeB.connect(netConfigB)); } finally { nodeA.disconnect(false); nodeB.disconnect(false); } }
@Test public void testConnectDisconnect() throws UnknownHostException { NetworkManager nodeA = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); NetworkManager nodeB = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); INetworkConfiguration netConfigA = NetworkConfiguration.createInitial("nodeA"); INetworkConfiguration netConfigB = NetworkConfiguration.create("nodeB", InetAddress.getLocalHost()); try { nodeA.connect(netConfigA); nodeB.connect(netConfigB); assertTrue(nodeB.disconnect(false)); assertTrue(nodeB.connect(netConfigB)); } finally { nodeA.disconnect(false); nodeB.disconnect(false); } }
@Test public void testConnectDisconnectKeepSession() throws NoPeerConnectionException, NoSessionException, IOException { NetworkManager nodeA = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); NetworkManager nodeB = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); INetworkConfiguration netConfigA = NetworkConfiguration.createInitial("nodeA"); INetworkConfiguration netConfigB = NetworkConfiguration.create("nodeB", InetAddress.getLocalHost()); try { nodeA.connect(netConfigA); nodeB.connect(netConfigB); UseCaseTestUtil.registerAndLogin(generateRandomCredentials(), nodeB, tempFolder.newFolder()); assertTrue(nodeB.disconnect(true)); assertTrue(nodeB.connect(netConfigB)); assertNotNull(nodeB.getSession()); } finally { nodeA.disconnect(false); nodeB.disconnect(false); } }