Hyperledger Caliper基準測試多排序節點Fabric網絡

在這個教程中,我們將學習如何使用Hyperledger Caliper對包含 多個排序節點的Fabric網絡進行基準測試,我們使用Docker Swarm 作為容器編排工具。

Hyperledger Fabric區塊鏈開發教程:

Fabric區塊鏈Node.js開發詳解Fabric區塊鏈Java開發詳解Fabric區塊鏈Golang開發詳解

1、待測Fabric網絡的基本配置

測試環境使用3臺虛擬機,配置如下:

  • Google cloud VM instance (n1-standard-4)
  • 4 vCPUs, 15 GB memory
  • Ubuntu 18.04.2 LTS

每臺虛擬機需要提前安裝以下軟件:

  • Docker version 18.09.8, build 0dd43dd87f or above
  • docker-compose version 1.17.1 or above
  • Node.js v8.16.0
  • NPM 6.4.1

2、待測Fabric網絡的拓撲結構

需要測試的Hyperledger Fabric網絡中包含3個參與機構,共3個排序節點採用Raft共識算法, 每個機構提供1個排序節點和1個對等節點,對等節點使用GoLevelDB作為狀態數據庫。

3、安裝Hyperledger Caliper

首先參考官方文檔 在HOST1上安裝Hyperledger Caliper。

然後在單機模式下運行基準測試以確認Hyperledger Caliper安裝正確。

在所有參與Fabric網絡的虛擬機上克隆Hyperledger Caliper軟件倉庫,或者創建HOST1的鏡像。

在所有虛擬機上將本文提供的測試網絡配置文件 克隆到本地以下目錄:

<code>~/caliper/packages/caliper-samples/network/fabric-v1.4.1/swarm-3org1peer-raft/<code>

現在,我們已經準備好了進行Hyperledger Caliper基準測試的Fabric網絡環境。下圖展示了本文 示例基準測試的架構(Fabric version 1.4.1, 3org1peergoleveldb, Fabric-CCP adaptor):


Hyperledger Caliper基準測試多排序節點Fabric網絡


查看虛擬機的內部IP,確保虛擬機之間可以彼此通信。你可能需要配置 防火牆規則以放行Caliper使用的某些端口,例如7050,7051,7054,8051,8054等。

4、運行Caliper基準測試

我們使用Docker Swarm來管理容器。

4.1 創建Docker Swarm

首先在我們運行基準Caliper測試的虛擬機上創建一個Docker Swarm。如果 你的所有主機在同一個網段,你也可以使用主機的內部IP。

<code>$ docker swarm init --listen-addr HOST1-REACHABLE-PUBLIC-IP:2377/<code>

注意:在上面的命令中,需要將IP換成你自己的IP。

運行上述命令後應當可以看到如下輸出顯示:

<code># To add a worker to this swarm, run the following command:
# docker swarm join --token xxxxxxxxxxxxx IP:2377/<code>

這意味著你的Host1已經作為管理者加入了Swarm。

4.2 將其他節點加入Swarm集群

將以下命令複製到其他主機並執行:

<code>docker swarm join --token xxxxxxxxxxxxx IP:2377/<code>

上述命令執行後將輸入如下內容,表示該主機已經加入Swarm集群:

<code># This node joined a swarm as a worker./<code>

在所有需要運行Caliper基準測試的機器上運行上述命令以加入Swarm集群。

注意:所有參與Hyperledger Caliper基準測試的主機上,Caliper倉庫的目錄都應該和 HOST1上的一致,因為系統需要在此路徑定位密碼學材料。例如:

<code>#home/HOST1/caliper/packages/caliper-samples/network/fabric-v1.4.1/swarm-3org1peer-raft/
#home/HOST2/caliper/packages/caliper-samples/network/fabric-v1.4.1/swarm-3org1peer-raft/
#home/HOST3/caliper/packages/caliper-samples/network/fabric-v1.4.1/swarm-3org1peer-raft//<code>

4.3 檢查Docker Swarm狀態

在HOST1上運行以下命令查看Swarm集群中的主機清單:

<code>$ docker node ls/<code>

結果如下:

<code>ID        HOSTNAME         STATUS   AVAILABILITY     MANAGER STATUS 
xxx * caliper-latest Ready Active Leader
xxx caliper-latest2 Ready Active
xxx caliper-latest3 Ready Active/<code>

4.4 將Fabric服務容器分配到主機

在編輯器裡打開 docker-swarm-compose-tls.yaml文件,該文件中 Services下定義了Peer/Order/CA容器。在Service定義的末尾部分 可以找到容器部署的細節:

<code>deploy: 

placement:
constraints: [node.hostname == YOUR-HOSTNAME]/<code>

將YOUR-HOSTNAME修改為你希望該服務部署的目標主機名。

4.5、運行Hyperledger Caliper基準測試

現在在HOST1的Caliper目錄下運行如下命令啟動基準測試:

<code>$ caliper benchmark run -w ./packages/caliper-samples \\
-c benchmark/simple/config.yaml \\
-n network/fabric-v1.4.1/swarm-3org1peer-raft/fabric-ccp-go-tls.yaml/<code>

原文鏈接:http://blog.hubwiz.com/2020/03/10/hyperledger-caliper-multi-host/


分享到:


相關文章: