package com.peerwasp.node; import java.net.InetAddress; import java.util.UUID; import org.hive2hive.core.api.H2HNode; import org.hive2hive.core.api.configs.FileConfiguration; import org.hive2hive.core.api.configs.NetworkConfiguration; import org.hive2hive.core.api.interfaces.IFileConfiguration; import org.hive2hive.core.api.interfaces.IH2HNode; import org.hive2hive.core.api.interfaces.INetworkConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Starts a single node. If the node should be created as an initial peer, do * not give any command-line arguments. If the node should connect to an already * existing peer, give the address as command-line argument. * * @author albrecht * */ public class NodeStarter { private static final Logger logger = LoggerFactory.getLogger(NodeStarter.class); public static void main(String[] args) { try { INetworkConfiguration netConfig = null; if (args.length == 0) { // initial peer netConfig = NetworkConfiguration.createInitial(); logger.info("Start as initial peer"); } else if (args.length >= 1) { // connect to node String nodeId = UUID.randomUUID().toString(); InetAddress address = InetAddress.getByName(args[0]); netConfig = NetworkConfiguration.create(nodeId, address); logger.info("Connect to existing peer. Address: {}", address.toString()); } IFileConfiguration fileConfig = FileConfiguration.createDefault(); IH2HNode peerNode = H2HNode.createNode(fileConfig); boolean success = peerNode.connect(netConfig); if (success) { logger.info("Setup successful."); } else { logger.error("Could not setup node."); System.exit(-1); } // do not exit logger.info("Finished creating node."); Thread.currentThread().join(); } catch (Exception e) { logger.warn("Exception: {}", e.getMessage(), e); } } }