第1.2-1.5節(jié)的四個配置文件完成之后育勺,這四個配置文件放在“CardChain/artifacts/channel”文件夾下檩电,然后進入該文件夾嗜憔,按步驟執(zhí)行一下命令即可運行一個Fabric網(wǎng)絡(luò)晤柄。
- 生成密鑰文件
$ cryptogen generate --config=crypto-config.yaml
- 生成orderer創(chuàng)世塊
$ configtxgen -profile OrdererOrg --outputBlock orderer.genesis.block
- 啟動orderer節(jié)點(需要在另外一個終端中執(zhí)行)
$ orderer start
- 啟動peer節(jié)點(需要在另外一個終端中執(zhí)行)
$ peer node start
- 創(chuàng)建通道提案文件
$ configtxgen -profile TxChannel -outputCreateChannelTx fabricchannel.tx -channelID fabricchannel
- 創(chuàng)建錨節(jié)點通知提案
$ configtxgen -profile TxChannel -outputAnchorPeersUpdate OrgAMSPanchors.tx -channelID fabricchannel -asOrg OrgAMSP
- 設(shè)置環(huán)境變量拦焚,創(chuàng)建Channel的組織的編號怜奖。必須和core.yaml中保持一致浑测。
$ export CORE_PEER_LOCALMSPID=OrgAMSP
- 設(shè)置環(huán)境變量,執(zhí)行創(chuàng)建channel的用戶賬號歪玲。路徑需要根據(jù)第1步中生成的文件修改迁央。
$ export CORE_PEER_MSPCONFIGPATH=/home/stone/go/src/github.com/stone-ch/CardChain/artifacts/channel/crypto-config/peerOrganizations/orga.cardchain.com/users/Admin@orga.cardchain.com/msp
- 創(chuàng)建Channel創(chuàng)世塊
$ peer channel create -o 127.0.0.1:7050 -c fabricchannel -f fabricchannel.tx
- 加入Channel
$ peer channel join -b fabricchannel.block
- 通知錨節(jié)點
$ peer channel update -o 127.0.0.1:7050 -c fabricchannel -f OrgAMSPanchors.tx
- 安裝鏈碼。-p后邊的路徑是相對$GOPATH/src目錄下的路徑滥崩。該命令會自動尋找目錄下代碼的main入口岖圈。
$ peer chaincode install -n cc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/example02/cmd/
- 實例化鏈碼
$ peer chaincode instantiate -o 127.0.0.1:7050 -C fabricchannel -n cc -v 1.0 -c '{"Args":["init","a","100","b","200"]}'
- 查詢鏈碼。正常情況下會返回a的余額钙皮,即100蜂科。
$ peer chaincode query -C fabricchannel -n cc -c '{"Args":["query","a"]}'
- 鏈碼執(zhí)行交易。交易之后可以再查詢短条,就可以看到賬戶余額的變化了导匣。
$ peer chaincode invoke -o 127.0.0.1:7050 -C fabricchannel -n cc -c '{"Args":["invoke","a","b","1"]}'
執(zhí)行過程中,經(jīng)常遇到的問題就是配置證書文件的路徑有誤茸时,以及和configtx.yaml中MSPID對應不上贡定。
多想想其中的相關(guān)關(guān)系,多踩踩坑才能真正理解這個系統(tǒng)可都。
至此缓待,基本的Fabric環(huán)境搭建就完成了蚓耽,下一步就需要編寫鏈碼了。