You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对Hedera本地私有网络进行压力测试以获取TPS指标?

Hedera私有本地网络TPS压力测试方案

针对你部署的私有Hedera本地网络,以下是几种可靠的TPS性能测试工具和实操方法:

官方性能测试套件(Hedera Performance Test Suite)

这是Hedera官方推出的专用测试工具,完全适配私有网络环境,能精准统计TPS、延迟等核心指标。

  • 操作步骤:
    1. 克隆项目到本地:git clone https://github.com/hashgraph/hedera-performance-test-suite.git
    2. 进入项目目录,编辑application.properties,将hedera.node.address替换为你本地节点的IP和端口(如127.0.0.1:50211),同时配置本地网络初始化时生成的测试账户ID和私钥。
    3. 启动测试:执行./gradlew run --args="--tps-target 1000 --duration 60",其中--tps-target是预期的TPS目标值,--duration为测试持续时长(单位:秒)。
    4. 查看结果:测试结束后,results目录会生成包含实际TPS、交易成功率、延迟分布的详细报告。

社区轻量TPS生成工具

社区维护的开源工具,配置简单,适合快速验证私有网络的TPS上限:

  • 操作步骤:
    1. 找到社区开源的Hedera TPS Generator仓库并克隆到本地。
    2. 修改config.json配置文件,填入本地节点地址、测试账户的私钥,指定要测试的交易类型(如CryptoTransfer转账交易)。
    3. 启动测试:如果是Node.js实现的工具,执行npm start -- --concurrency 50 --time 30,--concurrency为并发线程数,--time为测试时长。
    4. 实时查看控制台输出的TPS统计,测试完成后会生成汇总结果。

自定义SDK脚本测试

如果需要针对特定业务场景做压力测试,可以用Hedera官方SDK编写自定义测试脚本,以Java SDK为例:

  • 核心实现示例:
    import com.hedera.hashgraph.sdk.*;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.TimeUnit;
    import java.util.concurrent.atomic.AtomicInteger;
    
    public class TpsTest {
        public static void main(String[] args) throws Exception {
            Client client = Client.forNetwork("{\"127.0.0.1:50211\": 0}")
                .setOperator(AccountId.fromString("YOUR_OPERATOR_ID"), PrivateKey.fromString("YOUR_OPERATOR_PRIVATE_KEY"));
    
            ExecutorService executor = Executors.newFixedThreadPool(100);
            AtomicInteger completedTx = new AtomicInteger(0);
            long startTime = System.currentTimeMillis();
            AccountId receiverId = AccountId.fromString("RECEIVER_ACCOUNT_ID");
    
            // 批量提交交易任务
            for (int i = 0; i < 10000; i++) {
                executor.submit(() -> {
                    try {
                        TransactionResponse response = new CryptoTransferTransaction()
                            .addSender(client.getOperatorAccountId(), Hbar.fromTinybars(1000))
                            .addReceiver(receiverId, Hbar.fromTinybars(1000))
                            .execute(client);
                        response.getReceipt(client);
                        completedTx.incrementAndGet();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                });
            }
    
            executor.shutdown();
            executor.awaitTermination(5, TimeUnit.MINUTES);
            long endTime = System.currentTimeMillis();
    
            double tps = completedTx.get() / ((endTime - startTime) / 1000.0);
            System.out.printf("实际达成TPS: %.2f%n", tps);
        }
    }
    
  • 调整线程池大小、交易总量等参数,可模拟不同压力场景,灵活测试私有网络的性能极限。

内容的提问来源于stack exchange,提问作者lainhathoang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:03:14