From 0fe3b8770e72a59ef743995c60f219487e29c458 Mon Sep 17 00:00:00 2001 From: federico Date: Wed, 3 Dec 2025 14:47:03 +0800 Subject: [PATCH 1/3] fix the statistic --- tools/stress_test/src/main/java/org/tron/BroadcastTx.java | 1 + tools/stress_test/src/main/java/org/tron/TpsStatistic.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/tools/stress_test/src/main/java/org/tron/BroadcastTx.java b/tools/stress_test/src/main/java/org/tron/BroadcastTx.java index 1c3381cc..dbc0f95e 100644 --- a/tools/stress_test/src/main/java/org/tron/BroadcastTx.java +++ b/tools/stress_test/src/main/java/org/tron/BroadcastTx.java @@ -104,6 +104,7 @@ public Integer call() throws IOException, InterruptedException, IllegalException } Args.getInstance().setNodeListenPort(nodeListenPort); logger.info("rpc.port: {}, node.listen.port {}", rpcPort, nodeListenPort); + Args.getInstance().setOpenHistoryQueryWhenLiteFN(true); context = new TronApplicationContext(DefaultConfig.class); app = ApplicationFactory.create(context); diff --git a/tools/stress_test/src/main/java/org/tron/TpsStatistic.java b/tools/stress_test/src/main/java/org/tron/TpsStatistic.java index ec845e93..a79d52a9 100644 --- a/tools/stress_test/src/main/java/org/tron/TpsStatistic.java +++ b/tools/stress_test/src/main/java/org/tron/TpsStatistic.java @@ -84,6 +84,8 @@ public Integer call() throws Exception { Statistic.setApiWrapper( new ApiWrapper(config.getStatisticUrl(), config.getStatisticUrl(), config.getPrivateKey())); + Statistic.setBroadcastTpsLimit(config.getBroadcastTpsLimit()); + Statistic.setTotalGenerateTxCnt(config.getTotalTxCnt()); Statistic.result(startBlock, endBlock, output); return 0; } From 2ccd89430e80c2afc59d40ba023507331aa811fb Mon Sep 17 00:00:00 2001 From: federico Date: Wed, 3 Dec 2025 19:51:37 +0800 Subject: [PATCH 2/3] add the block number --- .../src/main/java/org/tron/utils/Statistic.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tools/stress_test/src/main/java/org/tron/utils/Statistic.java b/tools/stress_test/src/main/java/org/tron/utils/Statistic.java index 892f1565..b855c6e1 100644 --- a/tools/stress_test/src/main/java/org/tron/utils/Statistic.java +++ b/tools/stress_test/src/main/java/org/tron/utils/Statistic.java @@ -53,6 +53,8 @@ public static void result(long startBlock, long endBlock, String output) throws int minTrxCntInOneBlock = 1000000; int trxCnt = 0; int totalTrxCnt = 0; + int minBlockNumber = 0; + int maxBlockNumber = 0; for (long i = startNumber; i < endNumber; i++) { block = apiWrapper.getBlockByNum(i); @@ -61,9 +63,11 @@ public static void result(long startBlock, long endBlock, String output) throws if (trxCnt > maxTrxCntInOneBlock) { maxTrxCntInOneBlock = trxCnt; + maxBlockNumber = (int) i; } if (trxCnt < minTrxCntInOneBlock) { minTrxCntInOneBlock = trxCnt; + minBlockNumber = (int) i; } } @@ -83,8 +87,8 @@ public static void result(long startBlock, long endBlock, String output) throws logger.info("total generate tx count: {}, total broadcast tx count: {}, tx on chain rate: {}", totalGenerateTxCnt, totalTrxCnt, 1.0 * totalTrxCnt / totalGenerateTxCnt); logger.info("cost time: {} minutes", 1.0 * actualTime / (60 * 1000)); - logger.info("max block size: {}", maxTrxCntInOneBlock); - logger.info("min block size: {}", minTrxCntInOneBlock); + logger.info("max block size: {} in block: {}", maxTrxCntInOneBlock, maxBlockNumber); + logger.info("min block size: {} in block: {}", minTrxCntInOneBlock, minBlockNumber); logger.info("tps: {}", tps); logger.info("miss block rate: {}", missBlockRate); @@ -102,13 +106,16 @@ public static void result(long startBlock, long endBlock, String output) throws writer.newLine(); writer.write(String.format("cost time: %f minutes", 1.0 * actualTime / (60 * 1000))); writer.newLine(); - writer.write(String.format("max block size: %d", maxTrxCntInOneBlock)); + writer.write( + String.format("max block size: %d in block: %d", maxTrxCntInOneBlock, maxBlockNumber)); writer.newLine(); - writer.write(String.format("min block size: %d", minTrxCntInOneBlock)); + writer.write( + String.format("min block size: %d in block: %d", minTrxCntInOneBlock, minBlockNumber)); writer.newLine(); writer.write(String.format("tps: %f", tps)); writer.newLine(); writer.write(String.format("miss block rate: %f", missBlockRate)); + writer.newLine(); } catch (IOException e) { e.printStackTrace(); } From a18ce8509a1119b0de889bc138cb370e11fe276a Mon Sep 17 00:00:00 2001 From: federico Date: Thu, 11 Dec 2025 15:32:23 +0800 Subject: [PATCH 3/3] optimize the readme --- tools/stress_test/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/stress_test/README.md b/tools/stress_test/README.md index 6cecfca6..db8e1b39 100644 --- a/tools/stress_test/README.md +++ b/tools/stress_test/README.md @@ -201,6 +201,9 @@ statistic = { - `startBlockNumber`: configure the start block number of range for the TPS statistic; - `endBlockNumber`: configure the end block number of range for the TPS statistic; +*Note*: if the `url` points to Lite full node, you should make sure +its configuration `openHistoryQueryWhenLiteFN = true` is set. + Then we can execute the `statistic` subcommand. ``` # execute full command