Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bisq can now use an external Tor service #1935

Merged
merged 8 commits into from Nov 17, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -53,7 +53,7 @@ public NetworkNodeProvider(NetworkProtoResolver networkProtoResolver,
@Named(NetworkOptionKeys.EXTERNAL_TOR_USE_SAFECOOKIE) boolean useSafeCookieAuthentication ) {
networkNode = useLocalhostForP2P ?
new LocalhostNetworkNode(address, port, networkProtoResolver) :
new TorNetworkNode(port, torDir, networkProtoResolver, bridgeAddressProvider,
new TorNetworkNode(port, torDir, networkProtoResolver,
!controlPort.isEmpty() ?
new RunningTor(torDir, Integer.parseInt(controlPort), password, cookieFile, useSafeCookieAuthentication) :
new NewTor(torDir, torrcFile, torrcOptions, bridgeAddressProvider.getBridgeAddresses()));
Expand Down
4 changes: 4 additions & 0 deletions p2p/src/main/java/bisq/network/p2p/network/NewTor.java
Expand Up @@ -24,6 +24,7 @@
import java.util.Collection;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.stream.Collectors;

import org.berndpruenster.netlayer.tor.NativeTor;
import org.berndpruenster.netlayer.tor.Tor;
Expand Down Expand Up @@ -63,6 +64,9 @@ public NewTor(File torWorkingDirectory, String torrcFile, String torrcOptions, C
public Tor getTor() throws IOException, TorCtlException {
long ts1 = new Date().getTime();

if (bridgeEntries != null)
log.info("Using bridges: {}", bridgeEntries.stream().collect(Collectors.joining(",")));

Torrc override = null;

// check if the user wants to provide his own torrc file
Expand Down
11 changes: 3 additions & 8 deletions p2p/src/main/java/bisq/network/p2p/network/TorNetworkNode.java
Expand Up @@ -75,7 +75,6 @@ public class TorNetworkNode extends NetworkNode {

private HiddenServiceSocket hiddenServiceSocket;
private final File torDir;
private final BridgeAddressProvider bridgeAddressProvider;
private Timer shutDownTimeoutTimer;
private int restartCounter;
@SuppressWarnings("FieldCanBeLocal")
Expand All @@ -88,11 +87,9 @@ public class TorNetworkNode extends NetworkNode {
// Constructor
///////////////////////////////////////////////////////////////////////////////////////////

public TorNetworkNode(int servicePort, File torDir, NetworkProtoResolver networkProtoResolver,
BridgeAddressProvider bridgeAddressProvider, TorMode torMode) {
public TorNetworkNode(int servicePort, File torDir, NetworkProtoResolver networkProtoResolver, TorMode torMode) {
super(servicePort, networkProtoResolver);
this.torDir = torDir;
this.bridgeAddressProvider = bridgeAddressProvider;
this.torMode = torMode;
}

Expand All @@ -112,7 +109,7 @@ public void start(@Nullable SetupListener setupListener) {
createExecutorService();

// Create the tor node (takes about 6 sec.)
createTorAndHiddenService(Utils.findFreeSystemPort(), servicePort, bridgeAddressProvider.getBridgeAddresses());
createTorAndHiddenService(Utils.findFreeSystemPort(), servicePort);
}

@Override
Expand Down Expand Up @@ -237,10 +234,8 @@ private void restartTor(String errorMessage) {
// create tor
///////////////////////////////////////////////////////////////////////////////////////////

private void createTorAndHiddenService(int localPort, int servicePort, @Nullable List<String> bridgeEntries) {
private void createTorAndHiddenService(int localPort, int servicePort) {
Log.traceCall();
if (bridgeEntries != null)
log.info("Using bridges: {}", bridgeEntries.stream().collect(Collectors.joining(",")));

ListenableFuture<Void> future = executorService.submit(() -> {
try {
Expand Down