天天看點

fabric 啟動peer_區塊鍊學習筆記-Fabric單機solo,kafka,raft共識

fabric 啟動peer_區塊鍊學習筆記-Fabric單機solo,kafka,raft共識

對于專注于業務功能開發的小夥伴們如果不想在搭環境上浪費太多時間,以下搭建手冊可以做到一鍵啟動,畢竟和開發者模式還是有些差別的。如果想深入了解fabric的話,建議還是從自己手動搭建開始,可以學到更多。

0. 準備工作,需要提前安裝docker, docker-compose,安裝方法請自行百度

  1. clone檔案
git clone https://github.com/hsxy0820/fabric-test.git
           

2. 如果想以哪種共識啟動,就切換到哪一個目錄下,這裡選擇solo

cd fabric-test/solo
           

3.建立網橋

docker network create fabric
           

4. docker-compose啟動

docker-compose -f solo.yaml up -d 
           

5. 啟動cli,進行建立channel, 部署chaincode, 調用chaincode等操作(詳細指令參考cmd.txt)

docker exec -it cli bash #進入容器
#建立通道
CORE_PEER_LOCALMSPID="Org1MSP" CORE_PEER_MSPCONFIGPATH=/admin/msp/org1Admin CORE_PEER_ADDRESS=org1.peer1:7051 peer channel create -o orderer:7050 -c mychannel -f /admin/data/channel.tx
#org1.peer1加入通道(其他節點類似)
CORE_PEER_LOCALMSPID="Org1MSP" CORE_PEER_MSPCONFIGPATH=/admin/msp/org1Admin CORE_PEER_ADDRESS=org1.peer1:7051 peer channel join -b  ./mychannel.block
#安裝chaincode(以example2為例,其他節點類似)
CORE_PEER_LOCALMSPID="Org1MSP" CORE_PEER_MSPCONFIGPATH=/admin/msp/org1Admin CORE_PEER_ADDRESS=org1.peer1:7051 peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/example02/cmd
#執行個體化chaincode(和安裝不同,每個節點都需要安裝,但隻需在channel裡的一個節點做執行個體化即可)
CORE_PEER_LOCALMSPID="Org1MSP" CORE_PEER_MSPCONFIGPATH=/admin/msp/org1Admin CORE_PEER_ADDRESS=org1.peer1:7051 peer chaincode instantiate -o orderer:7050 -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","1000","b","2000"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
#chaincode的query和invoke操作
CORE_PEER_LOCALMSPID="Org1MSP" CORE_PEER_MSPCONFIGPATH=/admin/msp/org1Admin  CORE_PEER_ADDRESS=org1.peer1:7051 peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
CORE_PEER_LOCALMSPID="Org1MSP" CORE_PEER_MSPCONFIGPATH=/admin/msp/org1Admin  CORE_PEER_ADDRESS=org1.peer1:7051 peer chaincode invoke -o orderer:7050 -C mychannel -n mycc --peerAddresses org1.peer1:7051 -c '{"Args":["invoke","a","b","10"]}'
           

6. 停止和初始化操作

docker-compose -f solo.yaml down 
sudo ./reset.sh  #(初始化過程中有些目錄沒有删除權限,故使用sudo操作)