diff --git a/network/pom.xml b/network/pom.xml index 428b5dfae5..24c1dd638c 100644 --- a/network/pom.xml +++ b/network/pom.xml @@ -23,20 +23,7 @@ universal 0.0.3-SNAPSHOT system - ${basedir}/libs/universal-0.0.3-SNAPSHOT.jar - - - org.slf4j - slf4j-simple - - - - - com.msopentech.thali - java - 0.0.3-SNAPSHOT - system - ${basedir}/libs/java-0.0.3-SNAPSHOT.jar + ${basedir}/src/main/resources/jars/universal-0.0.3-SNAPSHOT.jar org.slf4j @@ -45,5 +32,35 @@ + + com.msopentech.thali + java + 0.0.3-SNAPSHOT + system + ${basedir}/src/main/resources/jars/java-0.0.3-SNAPSHOT.jar + + + org.slf4j + slf4j-simple + + + + + + com.github.ravn.jsocks + jsocks + 0.0.1-SNAPSHOT + system + ${basedir}/src/main/resources/jars/jsocks-0.0.1-SNAPSHOT.jar + + + + net.freehaven + jtorctl + 2015-09 + system + ${basedir}/src/main/resources/jars/jtorctl-2015-09.jar + + \ No newline at end of file diff --git a/network/src/main/java/io/bitsquare/p2p/P2PService.java b/network/src/main/java/io/bitsquare/p2p/P2PService.java index b651d02fa0..f78308fd59 100644 --- a/network/src/main/java/io/bitsquare/p2p/P2PService.java +++ b/network/src/main/java/io/bitsquare/p2p/P2PService.java @@ -124,7 +124,7 @@ public class P2PService { // routing layer routing = new Routing(networkNode, seedNodeAddresses); - + if (useLocalhost) Routing.setSimulateAuthTorNode(2 * 1000); // storage layer dataStorage = new ProtectedExpirableDataStorage(routing, storageDir); diff --git a/network/src/main/java/io/bitsquare/p2p/network/TorNetworkNode.java b/network/src/main/java/io/bitsquare/p2p/network/TorNetworkNode.java index 307601cd13..2a85e30ef8 100644 --- a/network/src/main/java/io/bitsquare/p2p/network/TorNetworkNode.java +++ b/network/src/main/java/io/bitsquare/p2p/network/TorNetworkNode.java @@ -3,8 +3,8 @@ package io.bitsquare.p2p.network; import com.google.common.util.concurrent.*; import com.msopentech.thali.java.toronionproxy.JavaOnionProxyContext; import com.msopentech.thali.java.toronionproxy.JavaOnionProxyManager; +import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy; import io.bitsquare.p2p.Address; -import io.bitsquare.p2p.Message; import io.bitsquare.p2p.Utils; import io.bitsquare.p2p.network.messages.SelfTestMessage; import io.nucleo.net.HiddenServiceDescriptor; @@ -16,6 +16,7 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; import java.net.Socket; +import java.net.UnknownHostException; import java.util.Random; import java.util.Timer; import java.util.TimerTask; @@ -51,6 +52,12 @@ public class TorNetworkNode extends NetworkNode { private Runnable shutDownCompleteHandler; private boolean torShutDownComplete, networkNodeShutDownDoneComplete; + static { + try { + new Socks5Proxy("", 0); + } catch (UnknownHostException e) { + } + } // ///////////////////////////////////////////////////////////////////////////////////////// // Constructor @@ -121,16 +128,13 @@ public class TorNetworkNode extends NetworkNode { } }; - addMessageListener(new MessageListener() { - @Override - public void onMessage(Message message, Connection connection) { - if (message instanceof SelfTestMessage) { - if (((SelfTestMessage) message).nonce == nonce) { - runSelfTest(); - } else { - log.error("Nonce not matching our challenge. That should never happen."); - selfTestFailed(); - } + addMessageListener((message, connection) -> { + if (message instanceof SelfTestMessage) { + if (((SelfTestMessage) message).nonce == nonce) { + runSelfTest(); + } else { + log.error("Nonce not matching our challenge. That should never happen."); + selfTestFailed(); } } }); @@ -143,7 +147,8 @@ public class TorNetworkNode extends NetworkNode { @Override public void start(@Nullable SetupListener setupListener) { - if (setupListener != null) addSetupListener(setupListener); + if (setupListener != null) + addSetupListener(setupListener); // executorService might have been shutdown before a restart, so we create a new one executorService = MoreExecutors.listeningDecorator(Executors.newCachedThreadPool()); @@ -300,7 +305,7 @@ public class TorNetworkNode extends NetworkNode { } public void onFailure(Throwable throwable) { - log.error("TorNode creation failed"); + log.error("TorNode creation failed with exception: " + throwable.getMessage()); restartTor(); } }); diff --git a/network/src/main/java/io/bitsquare/p2p/routing/Routing.java b/network/src/main/java/io/bitsquare/p2p/routing/Routing.java index f756299026..6a522b25de 100644 --- a/network/src/main/java/io/bitsquare/p2p/routing/Routing.java +++ b/network/src/main/java/io/bitsquare/p2p/routing/Routing.java @@ -19,7 +19,7 @@ import java.util.stream.Collectors; public class Routing { private static final Logger log = LoggerFactory.getLogger(Routing.class); - private static int simulateAuthTorNode = 2 * 1000; + private static int simulateAuthTorNode = 0; public static void setSimulateAuthTorNode(int simulateAuthTorNode) { Routing.simulateAuthTorNode = simulateAuthTorNode; diff --git a/network/libs/java-0.0.3-SNAPSHOT.jar b/network/src/main/resources/jars/java-0.0.3-SNAPSHOT.jar similarity index 100% rename from network/libs/java-0.0.3-SNAPSHOT.jar rename to network/src/main/resources/jars/java-0.0.3-SNAPSHOT.jar diff --git a/network/src/main/resources/jars/jsocks-0.0.1-SNAPSHOT.jar b/network/src/main/resources/jars/jsocks-0.0.1-SNAPSHOT.jar new file mode 100644 index 0000000000..6f140458ad Binary files /dev/null and b/network/src/main/resources/jars/jsocks-0.0.1-SNAPSHOT.jar differ diff --git a/network/src/main/resources/jars/jtorctl-2015-09.jar b/network/src/main/resources/jars/jtorctl-2015-09.jar new file mode 100644 index 0000000000..2ddc5374da Binary files /dev/null and b/network/src/main/resources/jars/jtorctl-2015-09.jar differ diff --git a/network/libs/universal-0.0.3-SNAPSHOT.jar b/network/src/main/resources/jars/universal-0.0.3-SNAPSHOT.jar similarity index 100% rename from network/libs/universal-0.0.3-SNAPSHOT.jar rename to network/src/main/resources/jars/universal-0.0.3-SNAPSHOT.jar