Skip to content

Commit 0cb97fe

Browse files
authored
Merge pull request #5011 from lurais/feature/auto_stop_opt
feat(db): optimize the auto-stop logic
2 parents ecbb194 + 53ddc27 commit 0cb97fe

7 files changed

Lines changed: 22 additions & 20 deletions

File tree

common/src/main/java/org/tron/common/parameter/CommonParameter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,11 @@ public class CommonParameter {
405405
public GenesisBlock genesisBlock;
406406
@Getter
407407
@Setter
408+
@Parameter(names = {"--p2p-disable"}, description = "Switch for p2p module initialization. "
409+
+ "(defalut: false)", arity = 1)
410+
public boolean p2pDisable = false;
411+
@Getter
412+
@Setter
408413
public List<InetSocketAddress> activeNodes;
409414
@Getter
410415
@Setter

framework/src/main/java/org/tron/common/application/ApplicationImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void initServices(CommonParameter parameter) {
5757
* start up the app.
5858
*/
5959
public void startup() {
60-
if (!Args.getInstance().isSolidityNode()) {
60+
if ((!Args.getInstance().isSolidityNode()) && (!Args.getInstance().isP2pDisable())) {
6161
tronNetService.start();
6262
}
6363
consensusService.start();
@@ -67,7 +67,7 @@ public void startup() {
6767
@Override
6868
public void shutdown() {
6969
logger.info("******** start to shutdown ********");
70-
if (!Args.getInstance().isSolidityNode()) {
70+
if (!Args.getInstance().isSolidityNode() && (!Args.getInstance().p2pDisable)) {
7171
tronNetService.close();
7272
}
7373
consensusService.stop();

framework/src/main/java/org/tron/core/Wallet.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2639,13 +2639,15 @@ public TransactionInfoList getTransactionInfoByBlockNum(long blockNum) {
26392639

26402640
public NodeList listNodes() {
26412641
NodeList.Builder nodeListBuilder = NodeList.newBuilder();
2642-
TronNetService.getP2pService().getConnectableNodes().forEach(node -> {
2643-
nodeListBuilder.addNodes(Node.newBuilder().setAddress(
2644-
Address.newBuilder()
2645-
.setHost(ByteString
2646-
.copyFrom(ByteArray.fromString(node.getHost())))
2647-
.setPort(node.getPort())));
2648-
});
2642+
if (!Args.getInstance().p2pDisable) {
2643+
TronNetService.getP2pService().getConnectableNodes().forEach(node -> {
2644+
nodeListBuilder.addNodes(Node.newBuilder().setAddress(
2645+
Address.newBuilder()
2646+
.setHost(ByteString
2647+
.copyFrom(ByteArray.fromString(node.getHost())))
2648+
.setPort(node.getPort())));
2649+
});
2650+
}
26492651
return nodeListBuilder.build();
26502652
}
26512653

framework/src/main/java/org/tron/core/config/args/Args.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ public static void clearParam() {
221221
PARAMETER.allowNewRewardAlgorithm = 0;
222222
PARAMETER.allowNewReward = 0;
223223
PARAMETER.memoFee = 0;
224+
PARAMETER.p2pDisable = false;
224225
}
225226

226227
/**

framework/src/main/java/org/tron/core/db/Manager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ private void initAutoStop() {
717717
exitCount, blockTime));
718718
}
719719

720-
if (exitHeight == headNum) {
720+
if (exitHeight == headNum && (!Args.getInstance().isP2pDisable())) {
721721
logger.info("Auto-stop hit: shutDownBlockHeight: {}, currentHeaderNum: {}, exit now",
722722
exitHeight, headNum);
723723
System.exit(0);

framework/src/main/java/org/tron/core/services/RpcApiService.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1736,14 +1736,7 @@ public void getTransactionCountByBlockNum(NumberMessage request,
17361736

17371737
@Override
17381738
public void listNodes(EmptyMessage request, StreamObserver<NodeList> responseObserver) {
1739-
NodeList.Builder nodeListBuilder = NodeList.newBuilder();
1740-
TronNetService.getP2pService().getConnectableNodes().forEach(node -> {
1741-
nodeListBuilder.addNodes(Node.newBuilder().setAddress(
1742-
Address.newBuilder()
1743-
.setHost(ByteString.copyFrom(ByteArray.fromString(node.getHost())))
1744-
.setPort(node.getPort())));
1745-
});
1746-
responseObserver.onNext(nodeListBuilder.build());
1739+
responseObserver.onNext(wallet.listNodes());
17471740
responseObserver.onCompleted();
17481741
}
17491742

framework/src/test/java/org/tron/common/config/args/ArgsTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public class ArgsTest {
1313

1414
@Before
1515
public void init() {
16-
Args.setParam(new String[]{"--output-directory", "output-directory", "--debug"},
17-
Constant.TEST_CONF);
16+
Args.setParam(new String[]{"--output-directory", "output-directory", "--p2p-disable", "true",
17+
"--debug"}, Constant.TEST_CONF);
1818
}
1919

2020
@After
@@ -30,5 +30,6 @@ public void testConfig() {
3030
Assert.assertEquals(Args.getInstance().getNodeDiscoveryPingTimeout(), 15_000);
3131
Assert.assertEquals(Args.getInstance().getMaxFastForwardNum(), 3);
3232
Assert.assertEquals(Args.getInstance().getBlockCacheTimeout(), 60);
33+
Assert.assertEquals(Args.getInstance().p2pDisable, true);
3334
}
3435
}

0 commit comments

Comments
 (0)