Skip to content

Commit 53ddc27

Browse files
author
morgan.peng
committed
feat(db): optimize the auto-stop logic
1. provide data query service when auto stop
1 parent 50ad05a commit 53ddc27

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
@@ -403,6 +403,11 @@ public class CommonParameter {
403403
public GenesisBlock genesisBlock;
404404
@Getter
405405
@Setter
406+
@Parameter(names = {"--p2p-disable"}, description = "Switch for p2p module initialization. "
407+
+ "(defalut: false)", arity = 1)
408+
public boolean p2pDisable = false;
409+
@Getter
410+
@Setter
406411
public List<InetSocketAddress> activeNodes;
407412
@Getter
408413
@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
@@ -2633,13 +2633,15 @@ public TransactionInfoList getTransactionInfoByBlockNum(long blockNum) {
26332633

26342634
public NodeList listNodes() {
26352635
NodeList.Builder nodeListBuilder = NodeList.newBuilder();
2636-
TronNetService.getP2pService().getConnectableNodes().forEach(node -> {
2637-
nodeListBuilder.addNodes(Node.newBuilder().setAddress(
2638-
Address.newBuilder()
2639-
.setHost(ByteString
2640-
.copyFrom(ByteArray.fromString(node.getHost())))
2641-
.setPort(node.getPort())));
2642-
});
2636+
if (!Args.getInstance().p2pDisable) {
2637+
TronNetService.getP2pService().getConnectableNodes().forEach(node -> {
2638+
nodeListBuilder.addNodes(Node.newBuilder().setAddress(
2639+
Address.newBuilder()
2640+
.setHost(ByteString
2641+
.copyFrom(ByteArray.fromString(node.getHost())))
2642+
.setPort(node.getPort())));
2643+
});
2644+
}
26432645
return nodeListBuilder.build();
26442646
}
26452647

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
@@ -714,7 +714,7 @@ private void initAutoStop() {
714714
exitCount, blockTime));
715715
}
716716

717-
if (exitHeight == headNum) {
717+
if (exitHeight == headNum && (!Args.getInstance().isP2pDisable())) {
718718
logger.info("Auto-stop hit: shutDownBlockHeight: {}, currentHeaderNum: {}, exit now",
719719
exitHeight, headNum);
720720
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)