在5月19日大暴跌时,被恐慌情绪支配的用户,疯狂挤进以太坊上进行货币交易。由于市场剧烈波动,以太坊快速确认Gas费一度升至2000Gwei上方,较前一日大幅上涨210%,突破历史新高。而链上的拥堵也造成了了许多用户的延迟交易,导致他们承受了更大的损失,而这次成本之大,恐怕会让更多人意识到以太坊的局限性,提高区块链系统性能再次被各个项目方提上日程。
经过了市场的强烈震荡,高性能再次成为当下公链的竞争焦点,但现有区块链系统的并发/吞吐量模型指标却饱受诟病,无论是BTC的7TPS,还是ETH的40TPS在动辄万级的底层公链面前都难以抬头,但反观当区块链底层网络,可验证与不公开是一直充满矛盾,真实TPS能否达到各个项目方官宣的万级标准无从查证。
在区块链底层网络性能的可信性备受质疑的背景下,aelf官方最近高调宣布了aelf Enterprise 底层公链通过了工信部性能测试,单链TPS高达35310.53次/秒,并首次公开了测试环境与测试脚本,允许任何组织与个人对单链TPS达35310.53次/秒的结果进行复测验证,凸显了aelf对自身底层公链性能的底气与信心。底层公链的性能一直是笔者关注的问题,aelf也是笔者一直看好的项目,此次aelf官方高调公开测试环境与脚本,也激起笔者想要亲自动手实测的欲望。因此便有了本篇以aelf Enterprise为对象的性能测试,本文将根据aelf官方发布的测试环境与测试脚本进行复测验证,近距离感受aelf底层公链的性能,对单链35310.53次/秒的TPS进行复测验证。
测试搭建及部署
服务器:
AWS服务器 c5d.24xlarge;96 vCPU;192G Memory;Ubuntu 18.04
区块链节点:aelf enterprise 单节点
数据库:ChainDB Redis 4.0.9 单节点;StateDB Redis 4.0.9 单节点
aelf官方Github已给出权威版测试搭建步骤,下文为笔者的搭建与部署执行步骤。
- 在测试服务器上通过拉取aelf-automation-test代码,切换到分支performance-test,进行基本账户单次转账负载测试:
- 启动aelf-Enterprise节点
- 对AElf.Automation.RpcPerformance项目进行编译
- dotnet publish AElf.Automation.RpcPerformance.csproj -o /opt/test/
- 将节点账户文件拷贝到脚本对应目录下/opt/test/aelf/keys/
- 将部署合约文件(AElf.Automation.MultiToken.dll)拷贝到目录~/.local/share/aelf/contract/
- 对/opt/test/config/目录下配置文件进行设置:
- 测试脚本RpcPerformance配置文件nodes.json, rpc-performance.json 进行修改:
nodes.json配置为当前节点基础环境配置:
{
"RequireAuthority": true,
"Nodes": [
{
"name": "bp1",
"endpoint": //节点连接地址,
"account": //节点账户,
"password": //节点账