1. 程式人生 > 其它 >hyperledger fabric 2.X 官方文件演示

hyperledger fabric 2.X 官方文件演示

技術標籤:區塊鏈 - hyperledger fabric區塊鏈fabrichyperledger

還沒搭建的mac使用者請參考我的上一篇文章搭建:

https://blog.csdn.net/smallone233/article/details/111356040

接下來開始跟著官網文件走

一、使用fabric test network

1.啟動

首先進入對應目錄:cd fabric-samples/test-network

然後啟動: ./network.sh up

出現這個代表成功

接著可以看看docker容器 docker ps -a

應該有剛剛啟動出來的order 和peer

2.建立通道

建立通道:./network.sh createChannel 預設名mychannel

也可以自定義名字建立: ./network.sh createChannel -c channel2 自定義名字channel2

3.測試

首先執行:./network.sh deployCC

這條命令安裝asset-transfer (basic)chaincode 到我們之前啟動的節點上去,這個目錄在我們的fabric-samples 目錄下

接著要進行互動了

首先要匯入一些環境變數,執行下下面的語句

export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/
[email protected]
/msp export CORE_PEER_ADDRESS=localhost:7051

然後初始化下我們的賬本:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"InitLedger","Args":[]}'

成功的話會有以下一句話

-> INFO 001 Chaincode invoke successful. result: status:200

然後查詢下我們的資產

peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'

會得到這些值

接著呼叫鏈上程式碼

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"TransferAsset","Args":["asset6","Christopher"]}'

會得到

2019-12-04 17:38:21.048 EST [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Chaincode invoke successful. result: status:200

之後我們可以對Org2進行同樣操作

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/[email protected]/msp
export CORE_PEER_ADDRESS=localhost:9051

peer chaincode query -C mychannel -n basic -c '{"Args":["ReadAsset","asset6"]}'

最後關閉網路

./network.sh down