Skip to content

Commit

Permalink
feat(net): delete config item node.discovery.bind.ip (#5597)
Browse files Browse the repository at this point in the history
* delete config item node.bind.ip

* remove bindIp method from Args

* get lan ip from libp2p
  • Loading branch information
317787106 committed Dec 29, 2023
1 parent 989115a commit a0f431c
Show file tree
Hide file tree
Showing 11 changed files with 17 additions and 59 deletions.
2 changes: 1 addition & 1 deletion common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ dependencies {
compile 'org.aspectj:aspectjrt:1.8.13'
compile 'org.aspectj:aspectjweaver:1.8.13'
compile 'org.aspectj:aspectjtools:1.8.13'
compile group: 'io.github.tronprotocol', name: 'libp2p', version: '2.1.0',{
compile group: 'com.github.tronprotocol', name: 'libp2p', version: 'test-v2.2.1',{
exclude group: 'io.grpc', module: 'grpc-context'
exclude group: 'io.grpc', module: 'grpc-core'
exclude group: 'io.grpc', module: 'grpc-netty'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ public class CommonParameter {
public int nodeListenPort;
@Getter
@Setter
public String nodeDiscoveryBindIp;
public String nodeLanIp;
@Getter
@Setter
public String nodeExternalIp;
Expand Down
2 changes: 0 additions & 2 deletions common/src/main/java/org/tron/core/Constant.java
Original file line number Diff line number Diff line change
Expand Up @@ -281,8 +281,6 @@ public class Constant {
public static final String EVENT_SUBSCRIBE_CONTRACT_ADDRESS = "event.subscribe.filter.contractAddress";
public static final String EVENT_SUBSCRIBE_CONTRACT_TOPIC = "event.subscribe.filter.contractTopic";

public static final String NODE_DISCOVERY_BIND_IP = "node.discovery.bind.ip";

public static final String NODE_DISCOVERY_EXTERNAL_IP = "node.discovery.external.ip";

public static final String NODE_BACKUP_PRIORITY = "node.backup.priority";
Expand Down
30 changes: 5 additions & 25 deletions framework/src/main/java/org/tron/core/config/args/Args.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import java.io.InputStream;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
Expand Down Expand Up @@ -136,7 +135,7 @@ public static void clearParam() {
PARAMETER.maxTps = 1000;
PARAMETER.minParticipationRate = 0;
PARAMETER.nodeListenPort = 0;
PARAMETER.nodeDiscoveryBindIp = "";
PARAMETER.nodeLanIp = "";
PARAMETER.nodeExternalIp = "";
PARAMETER.nodeP2pVersion = 0;
PARAMETER.nodeEnableIpv6 = false;
Expand Down Expand Up @@ -635,7 +634,7 @@ public static void setParam(final String[] args, final String confFileName) {
config.hasPath(Constant.NODE_LISTEN_PORT)
? config.getInt(Constant.NODE_LISTEN_PORT) : 0;

bindIp(config);
PARAMETER.nodeLanIp = PARAMETER.p2pConfig.getLanIp();
externalIp(config);

PARAMETER.nodeP2pVersion =
Expand Down Expand Up @@ -1247,7 +1246,7 @@ public static List<InetSocketAddress> getInetSocketAddress(
if (filter) {
String ip = inetSocketAddress.getAddress().getHostAddress();
int port = inetSocketAddress.getPort();
if (!(PARAMETER.nodeDiscoveryBindIp.equals(ip)
if (!(PARAMETER.nodeLanIp.equals(ip)
|| PARAMETER.nodeExternalIp.equals(ip)
|| Constant.LOCAL_HOST.equals(ip))
|| PARAMETER.nodeListenPort != port) {
Expand Down Expand Up @@ -1525,33 +1524,14 @@ private static FilterQuery getEventFilter(final com.typesafe.config.Config confi
return filter;
}

private static void bindIp(final com.typesafe.config.Config config) {
if (!config.hasPath(Constant.NODE_DISCOVERY_BIND_IP)
|| config.getString(Constant.NODE_DISCOVERY_BIND_IP)
.trim().isEmpty()) {
if (PARAMETER.nodeDiscoveryBindIp == null) {
logger.info("Bind address wasn't set, Punching to identify it...");
try (Socket s = new Socket("www.baidu.com", 80)) {
PARAMETER.nodeDiscoveryBindIp = s.getLocalAddress().getHostAddress();
logger.info("UDP local bound to: {}", PARAMETER.nodeDiscoveryBindIp);
} catch (IOException e) {
logger.warn("Can't get bind IP. Fall back to 127.0.0.1: " + e);
PARAMETER.nodeDiscoveryBindIp = "127.0.0.1";
}
}
} else {
PARAMETER.nodeDiscoveryBindIp = config.getString(Constant.NODE_DISCOVERY_BIND_IP).trim();
}
}

private static void externalIp(final com.typesafe.config.Config config) {
if (!config.hasPath(Constant.NODE_DISCOVERY_EXTERNAL_IP) || config
.getString(Constant.NODE_DISCOVERY_EXTERNAL_IP).trim().isEmpty()) {
if (PARAMETER.nodeExternalIp == null) {
logger.info("External IP wasn't set, using ipv4 from libp2p");
PARAMETER.nodeExternalIp = PARAMETER.p2pConfig.getIp();
if (StringUtils.isEmpty(PARAMETER.nodeExternalIp)) {
PARAMETER.nodeExternalIp = PARAMETER.nodeDiscoveryBindIp;
PARAMETER.nodeExternalIp = PARAMETER.nodeLanIp;
}
}
} else {
Expand Down Expand Up @@ -1622,7 +1602,7 @@ public static void logConfig() {
logger.info("\n");
logger.info("************************ Net config ************************");
logger.info("P2P version: {}", parameter.getNodeP2pVersion());
logger.info("Bind IP: {}", parameter.getNodeDiscoveryBindIp());
logger.info("LAN IP: {}", parameter.getNodeLanIp());
logger.info("External IP: {}", parameter.getNodeExternalIp());
logger.info("Listen port: {}", parameter.getNodeListenPort());
logger.info("Node ipv6 enable: {}", parameter.isNodeEnableIpv6());
Expand Down
19 changes: 1 addition & 18 deletions framework/src/test/java/org/tron/core/config/args/ArgsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,6 @@

import com.google.common.collect.Lists;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigMergeable;
import com.typesafe.config.ConfigOrigin;
import com.typesafe.config.ConfigRenderOptions;
import com.typesafe.config.ConfigValue;
import com.typesafe.config.ConfigValueType;
import io.grpc.internal.GrpcUtil;
import io.grpc.netty.NettyServerBuilder;
import java.lang.reflect.InvocationTargetException;
Expand All @@ -36,10 +31,8 @@
import org.tron.common.utils.ByteArray;
import org.tron.common.utils.LocalWitnesses;
import org.tron.common.utils.PublicMethod;
import org.tron.common.utils.ReflectUtils;
import org.tron.core.Constant;
import org.tron.core.config.Configuration;
import org.tron.core.net.peer.PeerManager;

@Slf4j
public class ArgsTest {
Expand Down Expand Up @@ -95,7 +88,6 @@ public void get() {

Assert.assertTrue(parameter.isNodeDiscoveryEnable());
Assert.assertTrue(parameter.isNodeDiscoveryPersist());
Assert.assertEquals("127.0.0.1", parameter.getNodeDiscoveryBindIp());
Assert.assertEquals("46.168.1.1", parameter.getNodeExternalIp());
Assert.assertEquals(18888, parameter.getNodeListenPort());
Assert.assertEquals(2000, parameter.getNodeConnectionTimeout());
Expand Down Expand Up @@ -130,27 +122,18 @@ public void testIpFromLibP2p()
Args.setParam(new String[] {"-w"}, Constant.TEST_CONF);
CommonParameter parameter = Args.getInstance();

String configuredBindIp = parameter.getNodeDiscoveryBindIp();
String configuredExternalIp = parameter.getNodeExternalIp();
Assert.assertEquals("127.0.0.1", configuredBindIp);
Assert.assertEquals("46.168.1.1", configuredExternalIp);

Config config = Configuration.getByFileName(null, Constant.TEST_CONF);
Config config2 = config.withoutPath(Constant.NODE_DISCOVERY_BIND_IP);
Config config3 = config2.withoutPath(Constant.NODE_DISCOVERY_EXTERNAL_IP);
Config config3 = config.withoutPath(Constant.NODE_DISCOVERY_EXTERNAL_IP);

CommonParameter.getInstance().setNodeDiscoveryBindIp(null);
CommonParameter.getInstance().setNodeExternalIp(null);

Method method1 = Args.class.getDeclaredMethod("bindIp", Config.class);
method1.setAccessible(true);
method1.invoke(Args.class, config3);

Method method2 = Args.class.getDeclaredMethod("externalIp", Config.class);
method2.setAccessible(true);
method2.invoke(Args.class, config3);

Assert.assertNotEquals(configuredBindIp, parameter.getNodeDiscoveryBindIp());
Assert.assertNotEquals(configuredExternalIp, parameter.getNodeExternalIp());
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,11 +138,11 @@ public static void init() throws IOException {
getInstance().setRpcPort(PublicMethod.chooseRandomPort());
getInstance().setRpcOnSolidityPort(PublicMethod.chooseRandomPort());
getInstance().setRpcOnPBFTPort(PublicMethod.chooseRandomPort());
String fullNode = String.format("%s:%d", getInstance().getNodeDiscoveryBindIp(),
String fullNode = String.format("%s:%d", getInstance().getNodeLanIp(),
getInstance().getRpcPort());
String solidityNode = String.format("%s:%d", getInstance().getNodeDiscoveryBindIp(),
String solidityNode = String.format("%s:%d", getInstance().getNodeLanIp(),
getInstance().getRpcOnSolidityPort());
String pBFTNode = String.format("%s:%d", getInstance().getNodeDiscoveryBindIp(),
String pBFTNode = String.format("%s:%d", getInstance().getNodeLanIp(),
getInstance().getRpcOnPBFTPort());

ManagedChannel channelFull = ManagedChannelBuilder.forTarget(fullNode)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,11 @@ public static void init() throws IOException {
Args.getInstance().setRpcPort(PublicMethod.chooseRandomPort());
Args.getInstance().setRpcOnSolidityPort(PublicMethod.chooseRandomPort());
Args.getInstance().setRpcOnPBFTPort(PublicMethod.chooseRandomPort());
String fullnode = String.format("%s:%d", Args.getInstance().getNodeDiscoveryBindIp(),
String fullnode = String.format("%s:%d", Args.getInstance().getNodeLanIp(),
Args.getInstance().getRpcPort());
String solidityNode = String.format("%s:%d", Args.getInstance().getNodeDiscoveryBindIp(),
String solidityNode = String.format("%s:%d", Args.getInstance().getNodeLanIp(),
Args.getInstance().getRpcOnSolidityPort());
String pBFTNode = String.format("%s:%d", Args.getInstance().getNodeDiscoveryBindIp(),
String pBFTNode = String.format("%s:%d", Args.getInstance().getNodeLanIp(),
Args.getInstance().getRpcOnPBFTPort());
channelFull = ManagedChannelBuilder.forTarget(fullnode)
.usePlaintext()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,11 @@ public static void init() throws IOException {
Args.getInstance().setRpcPort(PublicMethod.chooseRandomPort());
Args.getInstance().setRpcOnSolidityPort(PublicMethod.chooseRandomPort());
Args.getInstance().setRpcOnPBFTPort(PublicMethod.chooseRandomPort());
String fullNode = String.format("%s:%d", Args.getInstance().getNodeDiscoveryBindIp(),
String fullNode = String.format("%s:%d", Args.getInstance().getNodeLanIp(),
Args.getInstance().getRpcPort());
String solidityNode = String.format("%s:%d", Args.getInstance().getNodeDiscoveryBindIp(),
String solidityNode = String.format("%s:%d", Args.getInstance().getNodeLanIp(),
Args.getInstance().getRpcOnSolidityPort());
String pBFTNode = String.format("%s:%d", Args.getInstance().getNodeDiscoveryBindIp(),
String pBFTNode = String.format("%s:%d", Args.getInstance().getNodeLanIp(),
Args.getInstance().getRpcOnPBFTPort());

ManagedChannel channelFull = ManagedChannelBuilder.forTarget(fullNode)
Expand Down
1 change: 0 additions & 1 deletion framework/src/test/resources/config-test-mainnet.conf
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ storage {
node.discovery = {
enable = true
persist = true
bind.ip = "127.0.0.1"
external.ip = "46.168.1.1"
}

Expand Down
1 change: 0 additions & 1 deletion framework/src/test/resources/config-test-storagetest.conf
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ storage {
node.discovery = {
enable = true
persist = true
bind.ip = "127.0.0.1"
external.ip = "46.168.1.1"
}

Expand Down
1 change: 0 additions & 1 deletion framework/src/test/resources/config-test.conf
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ storage {
node.discovery = {
enable = true
persist = true
bind.ip = "127.0.0.1"
external.ip = "46.168.1.1"
}

Expand Down

0 comments on commit a0f431c

Please sign in to comment.