NPM方式安装Caliper
Caliper发布的一种方式为NPM包:@hyperledger/caliper-cli,它提供了安装所有 支持的Caliper适配器的单一入口。
版本语义
在介绍安装Caliper的具体步骤之前,让我们看一下caliper命令行工具的版本帮助信息。
由于Caliper目前还在预发行阶段(<1.0.0),这意味着即使小版本的升级也会引入不兼容的 变化。因此如果你在项目中使用Caliper,可能会时不时地碰到一些问题。
现在我们先忽略tag,看一看两种类型的版本号:
- 0.2.0:稳定版本,尽可能使用这种版本
- 0.3.0-unstable-20200206065953:不稳定版本
安装Caliper的前提要求
采用NPM方式安装Caliper命令行需要以下工具:
- node-gyp, python2, make, g++ 和git (安装过程中的提取代码及编译)
- Node.js v8.X LTS 或 v10.X LTS (运行Caliper所需基础环境)
- Docker和Docker Compose (仅在运行本地环境时,或者采用Caliper的Docker镜像时)
本地NPM安装
主要步骤如下:
- 在工作目录使用npm init初始化项目package.json文件
- 安装Caliper NPM包,推荐指定版本号,例如:@hyperledger/caliper-cli@0.2.0
- 将caliper工具绑定到所需的平台SDK,例如Fabric + 1.4.0 SDK
- 使用恰当的参数调用本地caliper命令行
具体命令如下:
user@hubwiz:~/caliper-benchmarks$ npm init -y
user@hubwiz:~/caliper-benchmarks$ npm install --only=prod \
@hyperledger/caliper-cli@0.2.0
user@hubwiz:~/caliper-benchmarks$ npx caliper bind \
--caliper-bind-sut fabric:1.4.0
user@hubwiz:~/caliper-benchmarks$ npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
在启动Caliper主进程时,也可以进行自动绑定,注意下面caliper launch master 中的额外参数:
user@hubwiz:~/caliper-benchmarks$ npm init -y
user@hubwiz:~/caliper-benchmarks$ npm install --only=prod \
@hyperledger/caliper-cli@0.2.0
user@hubwiz:~/caliper-benchmarks$ npx caliper launch master \
--caliper-bind-sut fabric:1.4.0 \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
全局NPM安装
采用全局方式安装CaliperNPM包时,与本地安装方式有一些区别:
- 在当前目录不需要package.json文件
- 可以在任何目录执行install、bind和run
- 需要全局安装caliper命令行
- 绑定步骤也要全局安装,--caliper-bind-args parameter
- 可以省略npx命令,因为caliper已经在PATH路径中
具体命令如下:
user@hubwiz:~$ npm install -g --only=prod @hyperledger/caliper-cli@0.2.0
user@hubwiz:~$ caliper bind \
--caliper-bind-sut fabric:1.4.0 \
--caliper-bind-args=-g
user@hubwiz:~$ caliper launch master \
--caliper-workspace ~/caliper-benchmarks \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml