IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Hyperledger Caliper Besu踩坑总结(1)官网Sample排雷 -> 正文阅读

[开发工具]Hyperledger Caliper Besu踩坑总结(1)官网Sample排雷

Abstract

Caliper是Hyperledger的其中一个子项目,它是一种测试区块链智能合约性能的工具。
可以设置非常多样的测试组合,结果包含吞吐量,延迟,资源使用率。
由于主页给出的测试全都是坑无法通过,这里记录其解决过程,留个笔记。

Repository

  • 本文使用的是官网提供的例子

https://hyperledger.github.io/caliper/v0.4.2/getting-started/#sample-networks

  • Github上开源

https://github.com/hyperledger/caliper-benchmarks

Table of contents

  1. Chapter1:先踩一踩坑
  2. Chapter2:结构分析及各项设置
  3. Reference

Chapter1

git clone git@github.com:hyperledger/caliper-benchmarks.git

这里进到项目要init一下,不然后面步骤都会出错

cd caliper-benchmarks
npm init

安装caliper
绑定到最新版本的besu,这里注意可以选择绑定版本,但是后续的一系列设置都要向这个版本看齐

npm install --only=prod @hyperledger/caliper-cli@0.4.2
npx caliper bind --caliper-bind-sut besu:latest

执行Caliper管理员
使用的两个重要设置文件,benchmarks用来配置测试参数,networkconfig顾名思义用来连接到区块链

npx caliper launch manager \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/besu/1node-clique/networkconfig.json \
--caliper-workspace .

当然并不会那么顺利,这里会报错(2022/02/21:执行日)

21 05:58:37.499+00:00 | main | INFO  | Besu | Starting Besu version: besu/v22.1.0-RC4/linux-x86_64/openjdk-java-11

besu_clique  | Invalid value for option '--rpc-ws-apis'

besu_clique  | 

besu_clique  | To display full help:

besu_clique  | besu [COMMAND] --help

报错是说--rpc-ws-apis的值不合法

到network/besu/1node-clique/docker-compose.yml里查看了一下果然不合法
将不合法小写参数改为大写

--rpc-ws-apis admin,eth,miner,web3,net
--rpc-ws-apis ADMIN,ETH,MINER,WEB3,NET

这里Docker的image好像也不太对,相应改成之前绑定的

image: hyperledger/besu:latest

再次运行上面的管理员指令npx caliper launch manager ...
就可以看到一些列的Docker加载安装进来,下面的besu_clique开始启动
然后进行Creating Contracts

Container besu_clique  Starting
Container besu_clique  Started
2022.02.21-15:22:57.588 info  [caliper] [caliper-engine]        Executed start command in 65.953 seconds
2022.02.21-15:22:57.602 info  [caliper] [caliper-engine]        Executed "init" step in 0.014 seconds
2022.02.21-15:22:57.602 info  [caliper] [ethereum-connector]    Creating contracts...
2022.02.21-15:22:57.615 error [caliper] [caliper-engine]        Error while performing "install" step: Error: connection not open on send()

这里还是有个异常不知道什么原因,回头看了看Docker,正常在生成区块没什么问题

1 | INFO  | BlockMiner | Produced #45 / 0 tx / 0 om / 0 (0.0%) gas / (0x6544b1ce8b974d297190d4fc832e0b5229762850197c94a1f0de78c26f6d0f92) in 0.007s

端口设置也没错。。。
找了半天也没找到原因,于是手欠又执行了一次管理员指令,竟然通过了。。。
有点无语
之后就顺利执行测试,输出报告:

+----------+------+------+-----------------+-----------------+-----------------+-----------------+------------------+
| Name     | Succ | Fail | Send Rate (TPS) | Max Latency (s) | Min Latency (s) | Avg Latency (s) | Throughput (TPS) |
|----------|------|------|-----------------|-----------------|-----------------|-----------------|------------------|
| open     | 1000 | 0    | 50.1            | 29.13           | 1.78            | 14.35           | 20.5             |
|----------|------|------|-----------------|-----------------|-----------------|-----------------|------------------|
| query    | 1000 | 0    | 100.1           | 0.01            | 0.00            | 0.00            | 100.1            |
|----------|------|------|-----------------|-----------------|-----------------|-----------------|------------------|
| transfer | 50   | 0    | 5.1             | 4.95            | 0.14            | 2.54            | 3.9              |
+----------+------+------+-----------------+-----------------+-----------------+-----------------+------------------+

在root下会生成一个report.html文件可以通过浏览器查看
Caliper Report

Chapter2

Caliper主要分为三大部分,区块链搭建,智能合约部署和测试,可以随意拆分组合。

No组合备注
1区块链搭建Docker自动搭建,可根据需要自己另行搭建
2智能合约部署提供合约的abi.json,Caliper会将其中的bytecode部署到链
*注意:这里的abi.json有要求,下篇部署自己的智能合约中详细介绍
3测试执行测试生成报告

区块链搭建:
Caliper用Docker自动搭建,设置在networks/besu/1node-clique/docker-compose.yml,启动Start停止end在networks/besu/1node-clique/networkconfig.json的caliper-command中控制。

智能合约部署:
networks/besu/1node-clique/networkconfig.json中配置所有与区块链链接的设置,主要是端口url, contracts的内容。之后部署自己的合约可以参考这里的设置。
contractDeployerAddress, contractDeployerAddressPrivateKey, fromAddressSeed需要设置为Caliper提供的地址,这里Sample运行不用更改,之后部署自己的合约时需要根据自己情况配置。

测试:
测试用例全都在scenario/simple/config.yaml里配置,可以更改发送tps,设置worker数量,等等。

Reference

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-22 20:48:28  更:2022-02-22 20:49:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 6:59:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码