0


智能合约关于caliper压力测试以及<配置文件问题修改!!!>(一步到位)

通过Caliper进行压力测试

本文章使用Ubuntu系统进行压力测试,CentOS7以及MacOS仅需修改部分系统命令即可,其余操作步骤一致

官方文档:压力测试指南 — FISCO BCOS 2.0 v2.9.0 文档 (fisco-bcos-documentation.readthedocs.io)

1.1 环境要求

第一步、配置基本环境

操作系统版本需要满足以下要求:Ubuntu >= 16.04、CentOS >= 7或MacOS >= 10.14;

一、先更新系统资源

sudo apt update

二、下载python3、make、curl、g++、gcc及git

sudo apt install python3
sudo apt install make
sudo apt install curl
sudo apt install g++ gcc
sudo apt install git

第二步、安装Node.js

安装指南:建议使用nvm(Node Version Manager)安装,nvm的安装方式如下:

# 安装nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

# 若出现因网络问题导致长时间下载失败,可尝试以下命令
curl -o- https://gitee.com/mirrors/nvm/raw/v0.33.2/install.sh | bash

# 加载nvm配置
source ~/.$(basename $SHELL)rc
# 安装Node.js 8
nvm install 8
# 使用Node.js 8
nvm use 8

第三步、部署docker

# 更新包索引
sudo apt-get update
# 安装基础依赖库
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
# 添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加docker仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 更新包索引
sudo apt-get update
# 安装Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 加入docker用户组
sudo groupadd docker
sudo usermod -aG docker $USER

第四步、安装Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

1.2 Caliper部署

第一步、创建工作目录

mkdir benchmarks && cd benchmarks

第二步、 对NPM项目进行初始化

npm init

第三步、安装caliper-cli

npm install --only=prod @hyperledger/[email protected]

第四步、验证caliper-cli安装成功

 npx caliper --version

若安装成功,则会打印相应的版本信息如:v0.2.0

1.3、快速体验FISCO BCOS基准测试

第一步、在工作目录下下载预定义测试用例

git clone https://gitee.com/vita-dounai/caliper-benchmarks.git

第二步、执行合约测试

在benchmarks目录下执行:

执行HelloWorld合约测试
npx caliper benchmark run --caliper-workspace caliper-benchmarks --caliper-benchconfig benchmarks/samples/fisco-bcos/helloworld/config.yaml  --caliper-networkconfig networks/fisco-bcos/4nodes1group/fisco-bcos.json
执行Solidity版转账合约测试
npx caliper benchmark run --caliper-workspace caliper-benchmarks --caliper-benchconfig benchmarks/samples/fisco-bcos/transfer/solidity/config.yaml  --caliper-networkconfig networks/fisco-bcos/4nodes1group/fisco-bcos.json
执行预编译版转账合约测试
npx caliper benchmark run --caliper-workspace caliper-benchmarks --caliper-benchconfig benchmarks/samples/fisco-bcos/transfer/precompiled/config.yaml  --caliper-networkconfig networks/fisco-bcos/4nodes1group/fisco-bcos.json

测试完成后,会在命令行界面中展示测试结果(TPS、延迟等)及资源消耗情况,同时会在

caliper-benchmarks

目录下生成一份包含上述内容的可视化HTML报告。

打开html文件
firefox 文件名

1.4、关于压力测试失败配置文件问题的修改

如果出现下面问题

第一步、修改fiscoBcos.js

#在benchmarks下
vim node_modules/\@hyperledger/caliper-fisco-bcos/lib/fiscoBcos.js

第一次大约在25行左右,修改为下面代码:

const Color = require('./common').Color;

第二处需要改动的地方大约在41行左右:

添加下面代码: if(this.fiscoBcosSettings.network&&this.fiscoBcosSettings.network.authentication) {

for (let k in this.fiscoBcosSettings.network.authentication) { this.fiscoBcosSettings.network.authentication[k]=CaliperUtils.resolvePath(this.fiscoBcosSettings.network.authentication[k], workspace_root); } }

第三处需要修改的地方大约在62行处,修改为下面代码:

const fiscoBcosSettings = this.fiscoBcosSettings;

第二步、修改channelPromise.js

#在benchmarks下
vim node_modules/\@hyperledger/caliper-fisco-bcos/lib/channelPromise.js

在这个配置文件中只需要修改一处即可,大约在文件的49行左右:

let emitter = emitters.get(seq);

if(!emitter) {

return;

}

emitter = emitter.emitter;

第三步、修改web3sync.js

#在benchmarks下
vim node_modules/\@hyperledger/caliper-fisco-bcos/lib/web3lib/web3sync.js

第一处修改大约在27行左右,修改为:

uuid = '0x' + uuid.replace(/-/g, '');

第二处修改大于在91行左右,修改为:

extraData: '0x0'

第三处修改在118行左右,修改为:

extraData: '0x0'

第四步、修改package.json

#在benchmarks下
vim node_modules/\@hyperledger/caliper-fisco-bcos/package.json

添加一个依赖包:

"secp256k1": "^3.8.0"

最后在该目录执行以下命令:

npm i

最后回到benchmarks目录下再次执行测试命令便可成功!!!


本文转载自: https://blog.csdn.net/weixin_74278203/article/details/135903083
版权归原作者 后端到全栈到全干 所有, 如有侵权,请联系我们删除。

“智能合约关于caliper压力测试以及<配置文件问题修改!!!>(一步到位)”的评论:

还没有评论