mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-04-19 23:36:00 -04:00
Update to latest TomP2P master
This commit is contained in:
parent
4938f0ba4a
commit
5d5fd49a45
@ -32,7 +32,7 @@ repositories {
|
||||
|
||||
dependencies {
|
||||
compile 'org.bitcoinj:bitcoinj-core:0.12'
|
||||
compile 'net.tomp2p:tomp2p-all:5.0-Alpha.542a1a8-SNAPSHOT'
|
||||
compile 'net.tomp2p:tomp2p-all:5.0-Alpha.32cd9f9-SNAPSHOT'
|
||||
compile 'com.typesafe.akka:akka-actor_2.10:2.3.4'
|
||||
compile 'org.slf4j:slf4j-api:1.7.7'
|
||||
compile 'ch.qos.logback:logback-core:1.1.2'
|
||||
|
@ -21,14 +21,15 @@ import io.bitsquare.app.ArgumentParser;
|
||||
import io.bitsquare.network.BootstrapNodes;
|
||||
import io.bitsquare.network.Node;
|
||||
|
||||
import net.tomp2p.connection.Bindings;
|
||||
import net.tomp2p.connection.StandardProtocolFamily;
|
||||
import net.tomp2p.dht.PeerBuilderDHT;
|
||||
import net.tomp2p.nat.PeerBuilderNAT;
|
||||
import net.tomp2p.p2p.Peer;
|
||||
import net.tomp2p.p2p.PeerBuilder;
|
||||
import net.tomp2p.peers.Number160;
|
||||
import net.tomp2p.peers.PeerAddress;
|
||||
import net.tomp2p.peers.PeerMap;
|
||||
import net.tomp2p.peers.PeerMapConfiguration;
|
||||
import net.tomp2p.rpc.ObjectDataReply;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -38,6 +39,9 @@ import net.sourceforge.argparse4j.inf.Namespace;
|
||||
public class SeedNode {
|
||||
private static final Logger log = LoggerFactory.getLogger(SeedNode.class);
|
||||
|
||||
private static Peer peer = null;
|
||||
private static boolean running = true;
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
ArgumentParser parser = new ArgumentParser();
|
||||
Namespace namespace = parser.parseArgs(args);
|
||||
@ -46,6 +50,72 @@ public class SeedNode {
|
||||
String id = defaultNode.getId();
|
||||
int port = defaultNode.getPort();
|
||||
|
||||
// Passed program args will override the properties of the default bootstrapNode
|
||||
// So you can use the same id but different ports (e.g. running several nodes on one server with
|
||||
// different ports)
|
||||
if (namespace.getString(ArgumentParser.SEED_ID_FLAG) != null)
|
||||
id = namespace.getString(ArgumentParser.SEED_ID_FLAG);
|
||||
|
||||
if (namespace.getString(ArgumentParser.SEED_PORT_FLAG) != null)
|
||||
port = Integer.valueOf(namespace.getString(ArgumentParser.SEED_PORT_FLAG));
|
||||
|
||||
try {
|
||||
Number160 peerId = Number160.createHash(id);
|
||||
PeerMapConfiguration pmc = new PeerMapConfiguration(peerId).peerNoVerification();
|
||||
PeerMap pm = new PeerMap(pmc);
|
||||
peer = new PeerBuilder(peerId).ports(port).peerMap(pm).start();
|
||||
peer.objectDataReply(new ObjectDataReply() {
|
||||
@Override
|
||||
public Object reply(PeerAddress sender, Object request) throws Exception {
|
||||
log.trace("received request: ", request.toString());
|
||||
return "pong";
|
||||
}
|
||||
});
|
||||
|
||||
new PeerBuilderDHT(peer).start();
|
||||
new PeerBuilderNAT(peer).start();
|
||||
|
||||
log.debug("SeedNode started.");
|
||||
new Thread(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
while (running) {
|
||||
for (PeerAddress pa : peer.peerBean().peerMap().all()) {
|
||||
log.debug("peer online:" + pa);
|
||||
}
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
|
||||
} catch (Exception e) {
|
||||
if (peer != null)
|
||||
peer.shutdown().awaitUninterruptibly();
|
||||
}
|
||||
}
|
||||
|
||||
public static void stop() {
|
||||
running = false;
|
||||
if (peer != null) {
|
||||
peer.shutdown().awaitUninterruptibly();
|
||||
}
|
||||
peer = null;
|
||||
}
|
||||
|
||||
|
||||
/*public static void main(String[] args) throws Exception {
|
||||
ArgumentParser parser = new ArgumentParser();
|
||||
Namespace namespace = parser.parseArgs(args);
|
||||
|
||||
Node defaultNode = BootstrapNodes.DIGITAL_OCEAN_1;
|
||||
String id = defaultNode.getId();
|
||||
int port = defaultNode.getPort();
|
||||
|
||||
// Passed program args will override the properties of the default bootstrapNode
|
||||
// So you can use the same id but different ports (e.g. running several nodes on one server with
|
||||
// different ports)
|
||||
@ -60,18 +130,18 @@ public class SeedNode {
|
||||
Peer peer = null;
|
||||
try {
|
||||
// Lets test with different settings
|
||||
/* ChannelServerConfiguration csc = PeerBuilder.createDefaultChannelServerConfiguration();
|
||||
ChannelServerConfiguration csc = PeerBuilder.createDefaultChannelServerConfiguration();
|
||||
csc.ports(new Ports(Node.DEFAULT_PORT, Node.DEFAULT_PORT));
|
||||
csc.portsForwarding(new Ports(Node.DEFAULT_PORT, Node.DEFAULT_PORT));
|
||||
csc.connectionTimeoutTCPMillis(10 * 1000);
|
||||
csc.idleTCPSeconds(10);
|
||||
csc.idleUDPSeconds(10);*/
|
||||
csc.idleUDPSeconds(10);
|
||||
|
||||
Bindings bindings = new Bindings();
|
||||
bindings.addProtocol(StandardProtocolFamily.INET);
|
||||
|
||||
peer = new PeerBuilder(Number160.createHash(id)).bindings(bindings)
|
||||
/*.channelServerConfiguration(csc)*/.ports(port).start();
|
||||
.channelServerConfiguration(csc).ports(port).start();
|
||||
|
||||
peer.objectDataReply((sender, request) -> {
|
||||
log.trace("received request: ", request.toString());
|
||||
@ -94,5 +164,5 @@ public class SeedNode {
|
||||
if (peer != null)
|
||||
peer.shutdown().awaitUninterruptibly();
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
@ -53,9 +53,12 @@ import net.tomp2p.p2p.Peer;
|
||||
import net.tomp2p.p2p.PeerBuilder;
|
||||
import net.tomp2p.peers.Number160;
|
||||
import net.tomp2p.peers.PeerAddress;
|
||||
import net.tomp2p.peers.PeerMap;
|
||||
import net.tomp2p.peers.PeerMapChangeListener;
|
||||
import net.tomp2p.peers.PeerMapConfiguration;
|
||||
import net.tomp2p.peers.PeerStatistic;
|
||||
import net.tomp2p.storage.Storage;
|
||||
import net.tomp2p.utils.Utils;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@ -110,7 +113,10 @@ class BootstrappedPeerFactory {
|
||||
public ListenableFuture<PeerDHT> start(int port) {
|
||||
try {
|
||||
setState(BootstrapState.PEER_CREATION, "We create a P2P node.");
|
||||
peer = new PeerBuilder(keyPair).ports(port).start();
|
||||
|
||||
PeerMapConfiguration pmc = new PeerMapConfiguration(Utils.makeSHAHash(keyPair.getPublic().getEncoded()));
|
||||
PeerMap pm = new PeerMap(pmc);
|
||||
peer = new PeerBuilder(keyPair).ports(port).peerMap(pm).start();
|
||||
peerDHT = new PeerBuilderDHT(peer).storageLayer(new StorageLayer(storage)).start();
|
||||
|
||||
peer.peerBean().peerMap().addPeerMapChangeListener(new PeerMapChangeListener() {
|
||||
|
@ -26,7 +26,7 @@
|
||||
<logger name="io.bitsquare" level="TRACE"/>
|
||||
|
||||
<logger name="org.bitcoinj" level="INFO"/>
|
||||
<logger name="net.tomp2p" level="INFO"/>
|
||||
<logger name="net.tomp2p" level="TRACE"/>
|
||||
|
||||
|
||||
<logger name="net.tomp2p.message.Encoder" level="WARN"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user