联盟链 Hyperledger Fabric v1.4.4 性能测试工具 Stupid 使用方式

在区块链测试方面来说,相较于 Caliper,stupid 这个开源工具更加的轻量化,且配置更加容易,可以对正在运行的区块链直接进行测试。但缺点就是无法像 Caliper 那样自定义测试脚本,且不知道在哪能看到成功率这一项数据等等,希望作者后面能补上吧~
附上作者项目地址:https://github.com/guoger/stupid

一、环境简述

本次进行压测的区块链环境,为CentOS 7,fabric 和 samples 版本均为 v1.4.4,且已经是启动状态的 byfn 网络。
若还不熟悉搭建示例区块链网络同学的可以点这里的链接看我之前的文章哈,先搭建起来,才好进行下一步。 >从零搭建区块链示例网络<

二、stupid 搭建

1. 下载

这里可以用 git 来把项目克隆下来

> 当前位置:/root
[root@localhost ~]# git clone https://github.com/guoger/stupid

2. golang 代理

作者的步骤是说拉下来后进入里面执行 go build,可是大部分人由于网络原因很难把 golang 模块拉下来,所以我们先要使用 https://goproxy.cn/ 的方法,为我们的环境打上 golang 代理:

[root@localhost ~]# export GO111MODULE=on
[root@localhost ~]# export GOPROXY=https://goproxy.cn

3. 构建

上好了代理,就可以进入 stupid 文件夹内执行构建啦,会发现速度快很多。

> 当前路径:/root/stupid
[root@localhost stupid]# go build

构建完成后,能看到当前文件夹下生成一个名为 stupid 的执行文件,就表明成功啦~

三、进行压测

1. 配置文件 config.json

这个 stupid 简单就简单在只需要配置 1 个文件,就可以即刻开始压测。要注意证书签名路径以及端口指向均要设置为当前已经启动的区块链网络的配置,在这里我就都设置指向 byfn 的配置。
接下来我放出修改前和修改后的 config 文件来作为对比把~
【修改前】

{
  "peer_addr": "peer0.org1.example.com:7051",		#(peer 节点地址与端口)
  "orderer_addr": "orderer.example.com:7050",		#(orderer 节点地址与端口)
  "channel": "mychannel",							#(通道名称)
  "chaincode": "mycc",								#(链码名称,区块链内指定的那个,不是文件名称)
  "args": ["put", "key", "value"],					#【压测可调整参数】(指定测试项目方法,及传入参数)
  "mspid": "Org1MSP",								#(MSP 的 ID)
  "private_key": "/path/to/private.key",			#(私钥文件)
  "sign_cert": "/path/to/sign.cert",				#(签名证书)
  "tls_ca_certs": ["/path/to/peer/tls/ca/cert","/path/to/orderer/tls/ca/cert"],		#(两个证书,第一个是 peer 的,第二个是 orderer 的)
  "num_of_conn": 20,								#【压测可调整参数】
  "client_per_conn": 40								#【压测可调整参数】
}

配置里最后两项我还是奉上作者的原话把,我自己的理解怕给大家造成困扰

num_of_conn: number of gRPC connection established between client/peer, client/orderer. If you think client has not put enough pressure on Fabric, increase this.

client_per_conn: number of clients per connection used to send proposals to peer. If you think client has not put enough pressure on Fabric, increase this.

【修改后】

{
  "peer_addr": "peer0.org1.example.com:7051",
  "orderer_addr": "orderer.example.com:7050",
  "channel": "mychannel",
  "chaincode": "mycc",
  "args": ["query", "a"],		#(若要测试 transfer,则对应修改为 "args": ["invoke","a","b","10"])
  "mspid": "Org1MSP",
  "private_key": "/root/go/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/96f4c10ebf4e8de1da3ea7f541172d7b61831a07c9519f2806072c16cd04a3da_sk",
  "sign_cert": "/root/go/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem",
  "tls_ca_certs": ["/root/go/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem","/root/go/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem"],
  "num_of_conn": 20,
  "client_per_conn": 40
}

2. 启动

执行 stupid,指定配置文件 config 与要发送的交易数,即可开始压测

root@localhost stupid]# ./stupid config.json 1000

这里关于第三个参数同样我贴出作者的原话给大家

Run
Execute ./stupid config.json 40000 to generate 40000 transactions to Fabric.
Set this to integer times of batchsize, so that last block is not cut due to timeout. For example, if you have batch size of 500, set this to 500, 1000, 40000, 100000, etc

2G 内存 2 核虚拟机的 stupid 压测结果:

[root@localhost stupid]# ./stupid config.json 100
Start sending transactions...

Time     0.10s	Block    556	Tx     10
Time     0.17s	Block    557	Tx     10
Time     0.18s	Block    558	Tx     10
Time     0.20s	Block    559	Tx     10
Time     0.22s	Block    560	Tx     10
Time     0.26s	Block    561	Tx     10
Time     0.27s	Block    562	Tx     10
Time     0.28s	Block    563	Tx     10
Time     0.29s	Block    564	Tx     10
Time     0.30s	Block    565	Tx     10
tx: 100, duration: 302.373519ms, tps: 330.716791

顺便提示一下,结果中的 Tx 10,是可以修改的,在 fabric 下 configtx.yaml 文件中的出块策略,对其调整后就会变化,如下所示:

> 文件位置:fabric-samples/first-network/configtx.yaml 出块策略部分

Orderer: &OrdererDefaults
    OrdererType: solo
    BatchTimeout: 2s
    BatchSize:
        MaxMessageCount: 10		#(比如说这条,我把他调整为 500,stupid 结果里的 Tx 就变为 500 了)
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB

至此本文结束,感谢大家阅读~~~~

### 回答1: 要安装Hyperledger Fabric v1.4.4,您可以按照以下步骤操作: 1. 安装必要的软件:您需要在计算机上安装以下软件:Docker,Docker Compose,Go语言环境,Node.js和npm包管理器。 2. 克隆Hyperledger Fabric源代码:使用git工具,您可以克隆Hyperledger Fabric源代码到您的计算机上。使用以下命令: ``` git clone -b v1.4.4 https://github.com/hyperledger/fabric.git ``` 3. 下载所需的Docker镜像:使用以下命令下载所需的Docker镜像: ``` cd fabric curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/v1.4.4/scripts/bootstrap.sh | bash -s -- 1.4.4 ``` 4. 启动Fabric网络:使用以下命令启动Fabric网络: ``` cd fabric-samples/first-network ./byfn.sh generate ./byfn.sh up ``` 这将启动一个由两个组织和四个对等节点组成的Fabric网络。 5. 安装Fabric CLI:使用以下命令安装Fabric CLI: ``` npm install -g fabric-cli ``` 6. 测试Fabric网络:使用以下命令测试Fabric网络: ``` fabric-cli chaincode invoke -o orderer.example.com:7050 -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}' ``` 这将在Fabric网络上调用名为“mycc”的智能合约,并将“a”账户中的10个单位的货币转移到“b”账户中。 这些步骤将帮助您在您的计算机上安装Hyperledger Fabric v1.4.4并运行一个简单的Fabric网络。 ### 回答2: 安装Hyperledger Fabric v1.4.4 可以按照以下步骤进行: 1. 首先,确保你已经安装了Docker和Docker Compose。如果没有安装,你可以在官方网站上找到安装教程并按照步骤安装。 2. 进入Hyperledger Fabric官方Github仓库(https://github.com/hyperledger/fabric)并下载Fabric v1.4.4 的发布包。你可以选择下载源码或者已构建好的二进制文件。 3. 解压下载的文件并进入解压后的目录。 4. 打开终端并使用以下命令运行Fabric的二进制文件进行安装: ``` ./scripts/bootstrap.sh ``` 此命令会下载必需的镜像文件、二进制文件和示例代码。 5. 安装完成后,我们可以启动一个示例网络以验证安装成功。使用以下命令启动示例网络: ``` cd fabric-samples/first-network ./byfn.sh generate ./byfn.sh up ``` 这将在本地计算机上启动一个简单的Fabric网络并运行示例链码。 6. 在运行脚本之后,你可以使用以下命令关闭网络: ``` ./byfn.sh down ``` 以上是安装Hyperledger Fabric v1.4.4 的基本步骤。你可以通过阅读官方文档和使用其他资源来深入了解和使用Hyperledger Fabric。 ### 回答3: 要安装Hyperledger Fabric v1.4.4,您可以按照以下步骤进行操作: 1. 首先,确保您的计算机系统满足Hyperledger Fabric的硬件和软件要求。您需要一台运行Linux操作系统的计算机,并安装Docker和Docker Compose。 2. 下载Hyperledger Fabric的二进制文件。您可以从Hyperledger Fabric的官方网站下载适用于Linux的二进制文件。解压缩下载的文件并将其放在您希望安装的位置。 3. 配置Docker和Docker Compose。确保您具有适当的Docker权限,并安装和配置Docker Compose,以便能够运行多个Docker容器。 4. 设置Hyperledger Fabric网络。在您的计算机上创建一个目录,并将其作为Fabric网络的根目录。在此目录中,创建一个配置文件,其中包括网络的拓扑结构、组织、通道和节点等信息。您可以使用Hyperledger Fabric提供的示例配置文件作为参考。 5. 生成加密材料和初始区块。使用Fabric提供的工具生成加密材料,包括证书、私钥和MSP(Membership Service Provider)文件。然后,使用生成的材料创建初始区块。 6. 启动Hyperledger Fabric网络。使用Docker Compose命令在您的计算机上启动Fabric网络。这将根据您在配置文件中定义的拓扑结构创建和运行相应的Docker容器。 7. 部署智能合约。使用Fabric提供的工具,将您的智能合约部署到Fabric网络中的适当通道上。这将包括安装链码、实例化链码和建立合约的版本。 8. 运行和测试Fabric网络。一旦部署了智能合约,您可以使用Fabric提供的SDK或CLI工具与网络进行交互。通过执行交易和查询等操作,测试网络的功能和性能。 以上是安装Hyperledger Fabric v1.4.4的基本步骤。根据您的实际需求,可能还需要进行其他配置和操作。您可以参考Hyperledger Fabric的官方文档和社区资源,以获取更详细的安装说明和教程。
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值