Skip to content

Commit

Permalink
--myAddress property is not needed anymore
Browse files Browse the repository at this point in the history
  • Loading branch information
freimair committed Mar 6, 2019
1 parent 79cb34f commit 27258c8
Show file tree
Hide file tree
Showing 10 changed files with 36 additions and 46 deletions.
6 changes: 1 addition & 5 deletions core/src/main/java/bisq/core/app/BisqEnvironment.java
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ public static boolean isDaoActivated(Environment environment) {

protected final String btcNodes, seedNodes, ignoreDevMsg, useDevPrivilegeKeys, useDevMode, useTorForBtc, rpcUser, rpcPassword,
rpcPort, rpcBlockNotificationPort, dumpBlockchainData, fullDaoNode,
myAddress, banList, dumpStatistics, maxMemory, socks5ProxyBtcAddress,
banList, dumpStatistics, maxMemory, socks5ProxyBtcAddress,
torRcFile, torRcOptions, externalTorControlPort, externalTorPassword, externalTorCookieFile,
socks5ProxyHttpAddress, useAllProvidedNodes, numConnectionForBtc, genesisTxId, genesisBlockHeight,
referralId, daoActivated, msgThrottlePerSec, msgThrottlePer10Sec, sendMsgThrottleTrigger, sendMsgThrottleSleep;
Expand Down Expand Up @@ -259,9 +259,6 @@ public BisqEnvironment(PropertySource commandLineProperties) {
(String) commandLineProperties.getProperty(NetworkOptionKeys.SEED_NODES_KEY) :
"";

myAddress = commandLineProperties.containsProperty(NetworkOptionKeys.MY_ADDRESS) ?
(String) commandLineProperties.getProperty(NetworkOptionKeys.MY_ADDRESS) :
"";
banList = commandLineProperties.containsProperty(NetworkOptionKeys.BAN_LIST) ?
(String) commandLineProperties.getProperty(NetworkOptionKeys.BAN_LIST) :
"";
Expand Down Expand Up @@ -462,7 +459,6 @@ private PropertySource<?> defaultProperties() {
setProperty(CommonOptionKeys.USE_DEV_MODE, useDevMode);

setProperty(NetworkOptionKeys.SEED_NODES_KEY, seedNodes);
setProperty(NetworkOptionKeys.MY_ADDRESS, myAddress);
setProperty(NetworkOptionKeys.BAN_LIST, banList);
setProperty(NetworkOptionKeys.TOR_DIR, Paths.get(btcNetworkDir, "tor").toString());
setProperty(NetworkOptionKeys.NETWORK_ID, String.valueOf(baseCurrencyNetwork.ordinal()));
Expand Down
5 changes: 0 additions & 5 deletions core/src/main/java/bisq/core/app/BisqExecutable.java
Original file line number Diff line number Diff line change
Expand Up @@ -341,11 +341,6 @@ protected void customizeOptionParsing(OptionParser parser) {
.withRequiredArg()
.describedAs("host:port[,...]");

parser.accepts(NetworkOptionKeys.MY_ADDRESS,
"My own onion address (used for bootstrap nodes to exclude itself)")
.withRequiredArg()
.describedAs("host:port");

parser.accepts(NetworkOptionKeys.BAN_LIST,
"Nodes to exclude from network connections.")
.withRequiredArg()
Expand Down
1 change: 0 additions & 1 deletion p2p/src/main/java/bisq/network/NetworkOptionKeys.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ public class NetworkOptionKeys {
public static final String PORT_KEY = "nodePort";
public static final String NETWORK_ID = "networkId";
public static final String SEED_NODES_KEY = "seedNodes";
public static final String MY_ADDRESS = "myAddress";
public static final String BAN_LIST = "banList";
//SOCKS_5_PROXY_BTC_ADDRESS used in network module so dont move it to BtcOptionKeys
public static final String SOCKS_5_PROXY_BTC_ADDRESS = "socks5ProxyBtcAddress";
Expand Down
3 changes: 1 addition & 2 deletions p2p/src/main/java/bisq/network/p2p/NetworkNodeProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ public class NetworkNodeProvider implements Provider<NetworkNode> {
public NetworkNodeProvider(NetworkProtoResolver networkProtoResolver,
BridgeAddressProvider bridgeAddressProvider,
@Named(NetworkOptionKeys.USE_LOCALHOST_FOR_P2P) boolean useLocalhostForP2P,
@Named(NetworkOptionKeys.MY_ADDRESS) String address,
@Named(NetworkOptionKeys.PORT_KEY) int port,
@Named(NetworkOptionKeys.TOR_DIR) File torDir,
@Named(NetworkOptionKeys.TORRC_FILE) String torrcFile,
Expand All @@ -53,7 +52,7 @@ public NetworkNodeProvider(NetworkProtoResolver networkProtoResolver,
@Named(NetworkOptionKeys.TOR_STREAM_ISOLATION) boolean streamIsolation,
@Named(NetworkOptionKeys.EXTERNAL_TOR_USE_SAFECOOKIE) boolean useSafeCookieAuthentication ) {
networkNode = useLocalhostForP2P ?
new LocalhostNetworkNode(address, port, networkProtoResolver) :
new LocalhostNetworkNode(port, networkProtoResolver) :
new TorNetworkNode(port, networkProtoResolver, streamIsolation,
!controlPort.isEmpty() ?
new RunningTor(torDir, Integer.parseInt(controlPort), password, cookieFile, useSafeCookieAuthentication) :
Expand Down
1 change: 0 additions & 1 deletion p2p/src/main/java/bisq/network/p2p/P2PModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ protected void configure() {
Integer networkId = environment.getProperty(NetworkOptionKeys.NETWORK_ID, int.class, 1);
bind(int.class).annotatedWith(Names.named(NetworkOptionKeys.NETWORK_ID)).toInstance(networkId);
bindConstant().annotatedWith(named(NetworkOptionKeys.SEED_NODES_KEY)).to(environment.getRequiredProperty(NetworkOptionKeys.SEED_NODES_KEY));
bindConstant().annotatedWith(named(NetworkOptionKeys.MY_ADDRESS)).to(environment.getRequiredProperty(NetworkOptionKeys.MY_ADDRESS));
bindConstant().annotatedWith(named(NetworkOptionKeys.BAN_LIST)).to(environment.getRequiredProperty(NetworkOptionKeys.BAN_LIST));
bindConstant().annotatedWith(named(NetworkOptionKeys.SOCKS_5_PROXY_BTC_ADDRESS)).to(environment.getRequiredProperty(NetworkOptionKeys.SOCKS_5_PROXY_BTC_ADDRESS));
bindConstant().annotatedWith(named(NetworkOptionKeys.SOCKS_5_PROXY_HTTP_ADDRESS)).to(environment.getRequiredProperty(NetworkOptionKeys.SOCKS_5_PROXY_HTTP_ADDRESS));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,6 @@ public class LocalhostNetworkNode extends NetworkNode {
private static int simulateTorDelayTorNode = 500;
private static int simulateTorDelayHiddenService = 500;

private String address;

public static void setSimulateTorDelayTorNode(int simulateTorDelayTorNode) {
LocalhostNetworkNode.simulateTorDelayTorNode = simulateTorDelayTorNode;
}
Expand All @@ -56,15 +54,8 @@ public static void setSimulateTorDelayHiddenService(int simulateTorDelayHiddenSe
// Constructor
///////////////////////////////////////////////////////////////////////////////////////////

public LocalhostNetworkNode(String address, int port, NetworkProtoResolver networkProtoResolver) {
super(port, networkProtoResolver);
if (null != address && !address.trim().isEmpty()) {
this.address = address;
}
}

public LocalhostNetworkNode(int port, NetworkProtoResolver networkProtoResolver) {
this(null, port, networkProtoResolver);
super(port, networkProtoResolver);
}

@Override
Expand All @@ -76,6 +67,8 @@ public void start(@Nullable SetupListener setupListener) {

// simulate tor connection delay
UserThread.runAfter(() -> {
nodeAddressProperty.set(new NodeAddress("localhost", servicePort));

setupListeners.stream().forEach(SetupListener::onTorNodeReady);

// simulate tor HS publishing delay
Expand All @@ -86,10 +79,6 @@ public void start(@Nullable SetupListener setupListener) {
e.printStackTrace();
log.error("Exception at startServer: " + e.getMessage());
}
final NodeAddress nodeAddress = address == null ?
new NodeAddress("localhost", servicePort) :
new NodeAddress(address);
nodeAddressProperty.set(nodeAddress);
setupListeners.stream().forEach(SetupListener::onHiddenServicePublished);
}, simulateTorDelayTorNode, TimeUnit.MILLISECONDS);
}, simulateTorDelayHiddenService, TimeUnit.MILLISECONDS);
Expand Down
10 changes: 10 additions & 0 deletions p2p/src/main/java/bisq/network/p2p/network/NetworkNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,11 @@ public SettableFuture<Connection> sendMessage(@NotNull NodeAddress peersNodeAddr
final SettableFuture<Connection> resultFuture = SettableFuture.create();
ListenableFuture<Connection> future = executorService.submit(() -> {
Thread.currentThread().setName("NetworkNode:SendMessage-to-" + peersNodeAddress);

if(peersNodeAddress.equals(getNodeAddress())){
throw new ConnectException("We do not send a message to ourselves");
}

OutboundConnection outboundConnection = null;
try {
// can take a while when using tor
Expand Down Expand Up @@ -450,4 +455,9 @@ private void printInboundConnections() {
public NodeAddress getNodeAddress() {
return nodeAddressProperty.get();
}

@Nullable
public ObjectProperty<NodeAddress> getNodeAddressProperty() {
return nodeAddressProperty;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -250,11 +250,12 @@ private void createTorAndHiddenService(int localPort, int servicePort) {
try {
// get tor
Tor.setDefault(torMode.getTor());
UserThread.execute(() -> setupListeners.forEach(SetupListener::onTorNodeReady));

// start hidden service
long ts2 = new Date().getTime();
hiddenServiceSocket = new HiddenServiceSocket(localPort, torMode.getHiddenServiceDirectory(), servicePort);
nodeAddressProperty.set(new NodeAddress(hiddenServiceSocket.getServiceName() + ":" + hiddenServiceSocket.getHiddenServicePort()));
UserThread.execute(() -> setupListeners.forEach(SetupListener::onTorNodeReady));
hiddenServiceSocket.addReadyListener(socket -> {
try {
log.info("\n################################################################\n" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@

import javax.inject.Inject;

import javafx.beans.property.SimpleObjectProperty;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
Expand Down Expand Up @@ -109,8 +111,7 @@ public interface Listener {
public RequestDataManager(NetworkNode networkNode,
SeedNodeRepository seedNodeRepository,
P2PDataStorage dataStorage,
PeerManager peerManager,
@javax.annotation.Nullable @Named(NetworkOptionKeys.MY_ADDRESS) String myAddress) {
PeerManager peerManager) {
this.networkNode = networkNode;
this.dataStorage = dataStorage;
this.peerManager = peerManager;
Expand All @@ -121,14 +122,21 @@ public RequestDataManager(NetworkNode networkNode,

this.seedNodeAddresses = new HashSet<>(seedNodeRepository.getSeedNodeAddresses());

// If we are a seed node we use more redundancy at startup to be sure we get all data.
// We cannot use networkNode.getNodeAddress() as nodeAddress as that is null at this point, so we use
// new NodeAddress(myAddress) for checking if we are a seed node.
// seedNodeAddresses do not contain my own address as that gets filtered out
if (myAddress != null && !myAddress.isEmpty() && seedNodeRepository.isSeedNode(new NodeAddress(myAddress))) {
NUM_SEEDS_FOR_PRELIMINARY_REQUEST = 3;
NUM_ADDITIONAL_SEEDS_FOR_UPDATE_REQUEST = 2;
}
this.networkNode.getNodeAddressProperty().addListener(observable -> {

NodeAddress myAddress = (NodeAddress) ((SimpleObjectProperty) observable).get();

seedNodeAddresses.remove(myAddress);

// If we are a seed node we use more redundancy at startup to be sure we get all data.
// We cannot use networkNode.getNodeAddress() as nodeAddress as that is null at this point, so we use
// new NodeAddress(myAddress) for checking if we are a seed node.
// seedNodeAddresses do not contain my own address as that gets filtered out
if (myAddress != null && seedNodeRepository.isSeedNode(myAddress)) {
NUM_SEEDS_FOR_PRELIMINARY_REQUEST = 3;
NUM_ADDITIONAL_SEEDS_FOR_UPDATE_REQUEST = 2;
}
});
}

public void shutDown() {
Expand Down
8 changes: 1 addition & 7 deletions p2p/src/test/java/bisq/network/p2p/DummySeedNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ public DummySeedNode(String defaultUserDataDir) {
// Example usage: -myAddress=lmvdenjkyvx2ovga.onion:8001 -networkId=0 -maxConnections=20 -useLocalhostForP2P=false -seedNodes=si3uu56adkyqkldl.onion:8002|eo5ay2lyzrfvx2nr.onion:8002 -ignore=4543y2lyzrfvx2nr.onion:8002|876572lyzrfvx2nr.onion:8002

public static final String USAGE = "Usage:\n" +
"--myAddress=<my onion address>\n" +
"--networkId=[0|1|2] (Mainnet = 0, TestNet = 1, Regtest = 2)\n" +
"--maxConnections=<No. of max. connections allowed>\n" +
"--useLocalhostForP2P=[true|false]\n" +
Expand All @@ -100,12 +99,7 @@ public void processArgs(String[] args) {
String arg = arg1;
if (arg.startsWith("--"))
arg = arg.substring(2);
if (arg.startsWith(NetworkOptionKeys.MY_ADDRESS)) {
arg = arg.substring(NetworkOptionKeys.MY_ADDRESS.length() + 1);
checkArgument(arg.contains(":") && arg.split(":").length == 2 && arg.split(":")[1].length() > 3, "Wrong program argument: " + arg);
mySeedNodeAddress = new NodeAddress(arg);
log.debug("From processArgs: mySeedNodeAddress=" + mySeedNodeAddress);
} else if (arg.startsWith(NetworkOptionKeys.NETWORK_ID)) {
if (arg.startsWith(NetworkOptionKeys.NETWORK_ID)) {
arg = arg.substring(NetworkOptionKeys.NETWORK_ID.length() + 1);
networkId = Integer.parseInt(arg);
log.debug("From processArgs: networkId=" + networkId);
Expand Down

0 comments on commit 27258c8

Please sign in to comment.