fabric

Fabirc性能测试工具之Caliper介绍

2018-11-25  本文已影响35人  funkol2007

Caliper介绍

Caliper是区块链性能测试框架,用户可以在定义好测试集的情况下针对自己的区块链网络进行性能测试,获取一系列的测试结果并生成测试报告。

当前支持的区块链解决方案

当前支持的性能指标

架构

参见 Architecture introduction.

image.png

Adaptation Layer 适配器层

Adaptation Layer 将现有的区块链系统集成到Caliper框架中来,每一个适配器都通过相应的区块链的SDK或者RESTful API实现了对应的'Caliper Blockchain NBIs'

Interface&Core Layer 接口和核心层

Interface&Core Layer 实现了核心功能并提供了北向接口,包括了四种NBIs:

Benchmark Engine 基准引擎

image.png

Configuration File 配置文件

主要有两种配置文件,一种是测试基准配置文件,一种是区块链网络拓扑配置文件。
示例:

{
  "blockchain": {
    "type": "fabric",
    "config": "./fabric.json"
  },
  "command" : {
    "start": "docker-compose -f ../../network/fabric/simplenetwork/docker-compose.yaml up -d",
    "end" : "docker-compose -f ../../network/fabric/simplenetwork/docker-compose.yaml down;docker rm $(docker ps -aq)"
  },
  "test": {
    "name": "simple",
    "description" : "This is an example benchmark for caliper",
    "clients": {
      "type": "local",
      "number": 5
    },
    "rounds": [{
        "label" : "open",
        "txNumber" : [5000, 5000, 5000],
        "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 100}}, {"type": "fixed-rate", "opts": {"tps" : 200}}, {"type": "fixed-rate", "opts": {"tps" : 300}}],
        "arguments": {  "money": 10000 },
        "callback" : "benchmark/simple/open.js"
      },
      {
        "label" : "query",
        "txNumber" : [5000, 5000],
        "rateControl" : [{"type": "fixed-rate", "opts": {"tps" : 300}}, {"type": "fixed-rate", "opts": {"tps" : 400}}],
        "callback" : "benchmark/simple/query.js"
      }]
  },
  "monitor": {
    "type": ["docker", "process"],
    "docker":{
      "name": ["peer0.org1.example.com", "http://192.168.1.100:2375/orderer.example.com"]
    },
    "process": [
      {
        "command" : "node",
        "arguments" : "local-client.js",
        "multiOutput" : "avg"
      }
    ],
    "interval": 1
  }
}

Master

定义了三个默认的测试阶段

Clients

User defined test module

定义了测试函数和以及提交交易,用户可以在这里自定义测试逻辑。
需要定义三个函数:

环境准备

git clone https://github.com/hyperledger/caliper.git
cd caliper
npm install
npm install grpc@1.10.1 fabric-ca-client@1.1.0 fabric-client@1.1.0

执行测试

node ./benchmark/simple/main.js -c ./config.json -n ./fabric.json

-c : 基准测试配置文件, 如果不设置,默认使用 config.json .
-n : 账本网络的配置文件. 如果不设置, 默认使用 config.json中设置的 blockchain config值.
注:以上都是基于fabric v1.1版本
跑一个自带的2org4peer的测试例子:

node benchmark/smallbank/main.js

成功生成报告则表明环境OK。

上一篇下一篇

猜你喜欢

热点阅读