【Hyperledger Fabric 性能测试5.1】Fabric2.2下的Caliper测试吞吐量--示例链码fabcar

https://gitee.com/hyperledger/caliper-benchmarks
https://nodejs.cn/
https://nodejs.org/en/download/releases

1.安装Node 和 Npm

1.1 卸载原有的nodejs 与 npm

sudo apt remove nodejs
sudo apt remove npm
sudo apt autoremove

然后到以下文件夹删除相关残留文件:
进入 /usr/local/lib 删除所有 nodenode_modules文件夹
进入 /usr/local/include 删除所有 node 和 node_modules 文件夹
进入 /usr/local/bin 删除 node 的可执行文件

1.2 下载安装 nodejs 与 npm (新node版本是带有npm)

登录虚拟机 ,进入opt目录下载安装包
cd /opt/

  1. 在/opt/目录下 下载nodejs安装包(下载 : nodejs 与 npm版本要一致,新node版本是带有npm,如果不一致,删除重新下载)
    wget https://nodejs.org/dist/v16.20.1/node-v16.20.1-linux-x64.tar.xz
  2. 解压
    tar xvf node-v16.20.1-linux-x64.tar.xz
    或者下载在其他文件夹下解压到/opt/目录
    tar xvf node-v16.20.1-linux-x64.tar.xz -C /opt/
  3. 重命名
    mv node-v16.20.1-linux-x64 nodejs
  4. 配置,需要创建软链接,以便全局使用:(否则node -v 报错:-bash: /usr/bin/node: 没有那个文件或目录)
    ln -sf /usr/local/nodejs/bin/node /usr/bin/node
    ln -sf /usr/local/nodejs/bin/npm /usr/bin/npm
  5. 完成检验:
    node -v && npm -v

参考
https://blog.csdn.net/kongtaoxing/article/details/127342042
https://blog.csdn.net/qq_36938617/article/details/95309493

2 安装Hyperledger Caliper

1. 下载安装包

下载到与fabric-samples同级目录

  • github下载
git clone https://github.com/hyperledger/caliper-benchmarks.git
  • 下载不下来可以用国内镜像
git clone https://gitee.com/hyperledger/caliper-benchmarks.git

2. 安装Calipercli

cd caliper-benchmarks

初始化:它会在文件夹下生成默认的package,该文件是一个json对象,里面包含配置文件,启动打包命令,声明依赖包等

npm init -y

下面命令会将相关依赖下载到node module文件夹下,选择0.4.2

npm install --only=prod @hyperledger/[email protected]  # 0.4.2对应的是fabric2.x 
ln -sf /opt/node-v16.20.1-linux-x64/bin/npx /usr/local/bin
npx caliper --version

结果示例

v0.4.2

npm install 在下载某个包时卡住不动
https://blog.csdn.net/Destiny_shine/article/details/113890556

3. 绑定fabricsdk

npx caliper bind --caliper-bind-sut fabric:2.2

绑定后,用下面这个命令可以查看所安装的caliper版本npx caliper --version

3. 部署 fabric 网络

3.1 对fabric2.X.X进行测试

cd ../fabric-samples/test-network
  1. 启动测试网络 并创建通道(默认通道名 mychannel)
./network.sh up createChannel
  1. 在通道上启动链码
    这里采用fabcar链码
    ./network.sh deployCC -ccn fabcar -ccp ../../caliper-benchmarks/src/fabric/samples/fabcar/go -ccl go
    解析:

./network.sh deployCC
-ccn fabcar #链码名
-ccp …/…/caliper-benchmarks/src/fabric/samples/fabcar/go # 链码路径
-ccl go #链码语言

4.开启测试

  1. 先到caliper-benchmarks目录下 cd ../../caliper-benchmarks/
  2. 开始测试:
    npx caliper launch manager --caliper-workspace ./ --caliper-networkconfig networks/fabric/test-network.yaml --caliper-benchconfig benchmarks/samples/fabric/fabcar/config.yaml --caliper-flow-only-test --caliper-fabric-gateway-enabled
  • –caliper-workspace 指定工作区的路径
  • –caliper-networkconfig 指定网络配置文件的路径
  • –caliper-benchconfig 指定基准配置文件的路径
  • –caliper-flow-only-test 指定只执行测试阶段。因为链码已经安装和初始化
  • –caliper-fabric-gateway-enabled和 --caliper-fabric-gateway-discovery 指定使
    用fabric的网关和服务发现功能。因为fabric网络已启用了服务发现。
  • Benchmark configuration
    基准配置文件描述了应该如何执行基准。它告诉Caliper它应该执行多少轮,TX应该以什么速度提交以及哪个模块将生成TX内容。它还包括有关监视SUT的设置。
    Network configuration
    网络配置文件的内容是特定于SUT的。该文件通常描述SUT的拓扑结构,其节点位于何处(其端点地址)网络中存在哪些身份/客户端,以及Caliper应该部署或与之交互的智能合约。
    Workload modules
    工作负载模块是基准测试的大脑。由于Caliper是一个通用的基准框架,它不包含任何具体的基准实现当Caliper为某一轮调度TX时,该轮的工作负载模块的任务是生成TX的内容并提交它

手动创建部署自己的链码时需要配置以下文件
来到fabric-sample 同级目录中,新建如下文件和文件夹
mkdir caliper-workspace
cd caliper-workspace
mkdir networks benchmarks workload
cd networks
touch networkConfig.yaml
cd workload
touch readAsset.js
修改如下三个配置文件
networkConfig.yaml
readAsset js
myAssetBenchmark.yaml

结果示例:
【Hyperledger Fabric 性能测试5.1】Fabric2.2下的Caliper测试吞吐量--示例链码fabcar_第1张图片

最终还会在caliper-beachmark下生成一个report.html文件。

其他推荐文章:

https://blog.csdn.net/Sbs5218/article/details/126038751?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-126038751-blog-125887800.235%5Ev38%5Epc_relevant_sort&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-126038751-blog-125887800.235%5Ev38%5Epc_relevant_sort&utm_relevant_index=4

https://blog.csdn.net/weixin_42694422/article/details/129834696?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-129834696-blog-125887800.235%5Ev38%5Epc_relevant_sort&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-129834696-blog-125887800.235%5Ev38%5Epc_relevant_sort&utm_relevant_index=3

你可能感兴趣的:(hyperledger,fabric,fabric,运维)