中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hyperledger Fabric 1.4 Kafka集群如何部署

發布時間:2021-12-06 14:06:53 來源:億速云 閱讀:204 作者:小新 欄目:互聯網科技

這篇文章主要介紹Hyperledger Fabric 1.4 Kafka集群如何部署,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Hyperledger Fabric區塊鏈網絡搭建已繁瑣著稱。本教程將介紹如何部署一個分布在4個主機上包含多個排序節點和對等節點的hyperledger fabric區塊鏈集群網絡,同時提供源碼和配置文件下載。

1、服務結構

我們要搭建的Hyperledger Fabric網絡拓撲結構如下:

Hyperledger Fabric 1.4 Kafka集群如何部署 網絡包含如下服務:

  • 1個機構:org1.example.com

  • 3個對等節點:peer0.example.com、peer1.example.com、peer2.example.com

  • 1個CA節點:ca.example.com

  • 3個排序節點:order0.example.com、order1.example.com、order2.example.com

  • 3個zookeeper節點:zookeeper0、zookeeper1、zookeeper2

  • 4個kafka節點:kafka0、kafka1、kafka2、kafka3

2、部署服務

2.1 部署ca、orderer和kafka

如上圖所示,首先在server1上部署CA節點、排序節點、kafka節點和zookeeper節點,使用的docker-compose文件文件為docker-compose-kafka.yml

# deploy ca, zookeerper, kafka and orderers on server0
docker-compose  -f deployment/docker-compose-kafka.yml up -d

在docker-compose文件中,我們為ca和orderer服務定義了extra_hosts屬性,其中包含了所有對等節點的信息。由于ca和orderer可能需要與對等節點通信,因此它們需要了解對等節點的信息。peers部署在不同的主機上,因此我們可以在extra_hosts字段定義peer0、peer1和peer2的主機。

extra_hosts:
    - "peer0.org1.example.com:172.31.26.5"
    - "peer1.org1.example.com:172.31.20.177"
    - "peer2.org1.example.com:172.31.27.143"

2.2 部署peer0和cli0

我們在server2上部署peer0和cli0,其中cli0將接入peer0。使用的docker-compose文件為docker-compose-peer0.yml和docker-compose-cli.yml:

# deploy peer0
docker-compose -f deployment/docker-compose-peer0.yml up -d

# deploy cli0
docker-compose -f deployment/docker-compose-cli0.yml up -d

在docker-compose-peer0.yml中,我們定義了如下的extra_hosts字段,其中包含了所有排序節點、peer1和peer2的主機信息。添加其他對等節點信息的主要原因在于,對等節點使用gossip協議來向其他peer廣播區塊。

extra_hosts:
    - "orderer0.example.com:172.31.25.198"
    - "orderer1.example.com:172.31.25.198"
    - "orderer2.example.com:172.31.25.198"
    - "ca.example.com:172.31.25.198"
    - "peer1.org1.example.com:172.31.20.177"
    - "peer2.org1.example.com:172.31.27.143"

在docker-compose-cli0.yml中包含了排序節點的主機信息,因為cli命令在執行交易時需要與排序節點通信:

extra_hosts:
  - "orderer0.example.com:172.31.25.198"
  - "orderer1.example.com:172.31.25.198"
  - "orderer2.example.com:172.31.25.198"

2.3 部署peer1和cli1

接下來我們在server3上部署peer1和cli1:

# deploy peer1
docker-compose -f deployment/docker-compose-peer1.yml up -d

# deploy cli1
docker-compose -f deployment/docker-compose-cli1.yml up -d

在docker-compose-peer1.yml中的extra_hosts中包含了排序節點主機和其他對等節點主機(peer0和peer2)的信息。docker-compose-cli.yml中的extra_hosts字段定義了排序節點的主機信息。

2.4 部署peer2和cli2

最后,我們在server4上部署peer2和cli2:

# deploy peer2
docker-compose -f deployment/docker-compose-peer2.yml up -d

# deploy cli2
docker-compose -f deployment/docker-compose-cli2.yml up -d

同樣在docker-compose文件中需要指定extra_hosts。

3、配置通道

現在已經完成了服務部署,接下來就需要配置通道了。

3.1 創建通道

通過接入server2上的peer0,執行如下命令創建通道:

# create channel from peer0 on server2
# it connects to orderer0
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" \
            -e "CORE_PEER_MSPCONFIGPATH=/var/hyperledger/users/Admin@org1.example.com/msp" \
            peer0.org1.example.com peer channel create 
            -o orderer0.example.com:7050 -c mychannel -f /var/hyperledger/configs/channel.tx

接下來我們將把所有三個對等節點加入通道

3.2 將peer0加入通道

現在接入server2上的peer0,執行如下的命令:

# join peer0 to channel
# execute this command from server1
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" \
            -e "CORE_PEER_MSPCONFIGPATH=/var/hyperledger/users/Admin@org1.example.com/msp" \
            peer0.org1.example.com peer channel join -b mychannel.block

上面的命令將在peer0容器內生成mychannel.block。

3.3 將mychannel.block拷貝到peer1和peer2

# copy mychannel.block from peer0 to host(server2)
docker cp peer0.org1.example.com:/mychannel.block .

# transfer mychannel.block to server3 and server4 via scp
scp -r mychannel.block ubuntu@172.31.20.177:
scp -r mychannel.block ubuntu@172.31.27.143:

# copy mychannel.block to peer1 and peer2 
# peer1 is on server3
# peer2 is on server4
docker cp mychannel.block peer1.org1.example.com:/mychannel.block
docker cp mychannel.block peer2.org1.example.com:/mychannel.block

# remove mychannel.block from server2, server3 and server4
rm mychannel.block

3.4 將peer1加入通道

現在可以將server3上的peer1加入通道:

# join peer1 to channel
# execute this command from server3 machine
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/var/hyperledger/users/Admin@org1.example.com/msp" \
            peer1.org1.example.com peer channel join -b mychannel.block

3.5 將peer2加入通道

同樣,可以將server4上的peer2加入通道:

# join peer2 to channel
# execute this command from server4 machine
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/var/hyperledger/users/Admin@org1.example.com/msp" \
            peer2.org1.example.com peer channel join -b mychannel.block

4、配置鏈碼

4.1 安裝鏈碼

鏈碼在chaincode目錄。我們使用cli在每個peer節點上安裝鏈碼。

# install on peer0 on server2
# cli container connects to peer0 
docker exec -it cli peer chaincode install -n mycc -p github.com/chaincode -v v0

# install on peer1 on server3
# cli container connects to peer1 
docker exec -it cli peer chaincode install -n mycc -p github.com/chaincode -v v0

# install on peer2 on server4
# cli container connects to peer2
docker exec -it cli peer chaincode install -n mycc -p github.com/chaincode -v v0

4.2 實例化鏈碼

現在可以實例化鏈碼了。在通道上只需要進行一次實例化。因此我們用server2上的cli0進行鏈碼實例化操作:

# instantiate chaincode from peer0 on server2
# it connects to orderer0 
docker exec -it cli peer chaincode instantiate -o orderer0.example.com:7050 \
            -C mychannel -n mycc github.com/chaincode -v v0 -c '{"Args": ["a", "100"]}'

5、交易的執行與查詢

5.1 執行交易

我們使用server2上的cli0調用鏈碼交易:

# invoke transaction from peer0 on server2
# it connects to orderer0 on server1
docker exec -it cli peer chaincode invoke -o orderer0.example.com:7050 \
            -n mycc -c '{"Args":["set", "a", "20"]}' -C mychannel

5.2 查詢交易

我們使用server4上的cli2查詢交易:

# query transaction from peer2 on server4
docker exec -it cli peer chaincode query \
            -n mycc -c '{"Args":["query","a"]}' -C mychannel

以上是“Hyperledger Fabric 1.4 Kafka集群如何部署”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长垣县| 德清县| 淅川县| 琼中| 潞城市| 崇明县| 营口市| 梁河县| 晋州市| 石台县| 罗源县| 衡山县| 永善县| 二连浩特市| 兴山县| 洛浦县| 阿鲁科尔沁旗| 游戏| 哈尔滨市| 汕头市| 冀州市| 富锦市| 龙海市| 随州市| 上高县| 靖安县| 板桥市| 达拉特旗| 东宁县| 历史| 西藏| 喀什市| 昭平县| 偃师市| 宝清县| 株洲县| 延庆县| 南阳市| 万载县| 屏东县| 樟树市|