ASP圖書信息管理系統(tǒng)網(wǎng)站建設(shè)百度知道下載
確保自己已經(jīng)安裝了fabric。沒有安裝的可以參考我之前的教程fabric中bootstrap.sh到底幫助我們干了什么?(手動(dòng)執(zhí)行相關(guān)操作安裝fabric2.4)_./bootstrap.sh_小小小小關(guān)同學(xué)的博客-CSDN博客小伙伴們?cè)诟俜绞纠齺戆惭bfabric的時(shí)候都是相當(dāng)煩惱的,curl -sSL https://bit.ly/2ysbOFE | bash -s 這個(gè)命令怎么執(zhí)行都是失敗的,搞來搞去也沒搞明白到底在干嘛最后白白浪費(fèi)掉了一天的時(shí)間(實(shí)際上由于網(wǎng)絡(luò)的原因)。這篇文章介紹如何快速穩(wěn)定安裝官方示例fabric-samples文件、拉取二進(jìn)制文件和下載所需要的鏡像來代替官方示例的這行代碼。選取自己的版本后就可以看到官方文檔我選取的是2.4。https://blog.csdn.net/qq_45875349/article/details/128138469?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128138469%22%2C%22source%22%3A%22qq_45875349%22%7D
1.環(huán)境準(zhǔn)備
進(jìn)入test-network目錄下,使用which peer 檢查一下環(huán)境是否有問題
如果有問題就下面指令配置一下(后面的路徑根據(jù)自己的fabric-sample路徑確定)
export PATH=$PATH:/home/ubuntu/go/src/github.com/hyperledger/fabric-samples/bin
使用 echo $FABRIC_CFG_PATH 查看是否輸入相關(guān)路徑,否則輸入指令
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
可以啟動(dòng)兩個(gè)回話模擬兩個(gè)組織 org1 和 org2 ,在兩個(gè)會(huì)話中分別輸入下面的指令以配置環(huán)境
org1
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/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051
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/Admin@org2.example.com/msp
export CORE_PEER_ADDRESS=localhost:9051
然后使用peer channel list指令查看目前通道情況
報(bào)錯(cuò)情況:
ubuntu@VM-16-12-ubuntu:~/go/src/github.com/hyperledger/fabric-samples/test-network$ peer channel list
2022-12-06 21:07:20.412 CST 0001 ERRO [main] InitCmd -> Cannot run peer because cannot init crypto, specified path "/home/ubuntu/go/src/github.com/hyperledger/fabric-samples/config/msp" does not exist or cannot be accessed: stat /home/ubuntu/go/src/github.com/hyperledger/fabric-samples/config/msp: no such file or directory
原因是因?yàn)闆]有配置環(huán)境變量來使用org1或者org2來進(jìn)行交互
2. erc20部署
2.1 打包鏈碼
在打包鏈碼之前先檢查一下erc20鏈碼所在的目錄中是否包含vendor,如果沒有的話依舊是手動(dòng)拉取
ls ../token-erc-20/chaincode-go/
我這里沒有,所以需要執(zhí)行下面命令手動(dòng)拉取
cd ../token-erc-20/chaincode-go/
go mod vendor
然后再回到test-network目錄下打包鏈碼(org1)
peer lifecycle chaincode package erc20.tar.gz --path ../token-erc-20/chaincode-go/ --lang golang --label erc20_1.0
2.2 安裝鏈碼(1&2)
peer lifecycle chaincode install erc20.tar.gz
查看鏈碼安裝情況
peer lifecycle chaincode queryinstalled
設(shè)置環(huán)境變量(org1+org2)
export ERC20_ID=erc20_1.0:7c99f9616d100b2736ad1d03850e24b844e0d5d1af433b8ab673ba934acf8e8c
approve(org1+org2)
peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name erc20 --version 1.0 --package-id $ERC20_ID --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
可以檢查一下是否可以commit
peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name erc20 --version 1.0 --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
commit(org1/org2)
peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name erc20 --version 1.0 --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --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
2.3 測(cè)試erc20
mint測(cè)試(只有org1可以執(zhí)?) mint相當(dāng)于初始化最初的資源數(shù)量 類似于發(fā)行貨幣
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 erc20 --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":"Mint","Args":["900"]}'