搭建好fabric之后,要在test-network下手動啟動一個fabric網(wǎng)絡(luò)。將下載過來的order和peer1兩個文件夾放到~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network目錄下。
生成證書文件:
cryptogen generate --config=./organizations/cryptogen/crypto-config-org1.yaml --output="organizations"
cryptogen generate --config=./organizations/cryptogen/crypto-config-org2.yaml --output="organizations"
cryptogen generate --config=./organizations/cryptogen/crypto-config-orderer.yaml --output="organizations"
生成創(chuàng)世塊:
export FABRIC_CFG_PATH=${PWD}/configtx
configtxgen -profile TwoOrgsOrdererGenesis -channelID system-channel -outputBlock ./system-genesis-block/genesis.block
之后便可以去啟動order和peer,分別進(jìn)入order和peer1文件夾下,打開終端輸入orderer start
和peer node start
。
我在這里犯了個非常愚蠢的錯誤,啟動order時候報錯:Failed to get local msp config: could not load a valid signer certificate from directory /home/user/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts:…
是因為在配置文件寫的/home/user路徑中,我自己的用戶名不是user,所以當(dāng)然找不到這個路徑了??
啟動成功的終端界面:
生成通道文件并更新錨節(jié)點:
configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP
如果報錯 Error on inspectChannelCreateTx: org ‘Org1MSP’ does not have any anchor peers defined,說明configtx.yaml配置文件中的Org1,缺少了錨節(jié)點相關(guān)的屬性:
AnchorPeers:
- Host: peer0.org1.qkltest.com
Port: 7051
安裝智能合約
在test-network下打開一個終端切換環(huán)境:
export FABRIC_CFG_PATH=/home/user/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/peer1
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_ADDRESS=localhost:7051
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
再打開一個終端切換環(huán)境:
export FABRIC_CFG_PATH=/home/user/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/peer2
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_ADDRESS=localhost:9051
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
創(chuàng)建通道:
peer channel create -o localhost:7050 -c mychannel --ordererTLSHostnameOverride orderer.example.com -f ./configtx/channel-artifacts/mychannel.tx --outputBlock ./configtx/channel-artifacts/mychannel.block –tls --cafile /home/user/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
加入通道
peer channel join -b ./configtx/channel-artifacts/mychannel.block
這里補充一個點,當(dāng)打包合約時報錯Error: failed to normalize chaincode path: ‘go list’ failed with: error obtaining VCS status: exit status 128
Use -buildvcs=false to disable VCS stamping.: exit status 1
這個應(yīng)該就是由于權(quán)限不足引起的,加一個sudo在前面就行了。
鏈碼終于安裝成功了
按照學(xué)長GitHub上修改peer配置文件后再重新再重啟peer后安裝新的chaincode,出現(xiàn)錯誤
只要一重新創(chuàng)建channel命令,orderer就無法連接,并且報錯日志文件
Error: failed to create deliver client for orderer: orderer client failed to connect to localhost:7050: failed to create new connection: context deadline exceeded
學(xué)長建議用
sudo ./network.sh down
關(guān)閉之前的網(wǎng)絡(luò),刪掉之前的文件夾,重新試了之后也還是不行
--------------------------------------------分割線-----------------------------------------------------------
2022.5.2
目前的問題還是在讓某一節(jié)點加入通道的時候,會讓這個節(jié)點出現(xiàn)連接報錯的現(xiàn)象。
檢查之后實在不知道是什么環(huán)節(jié)出現(xiàn)問題,打算再重建個虛擬機試一試。
2022.10.24補充:
評論區(qū)大佬說這個加入通道問題可能是此節(jié)點已經(jīng)掛掉,可以用docker ps -a查看一下節(jié)點是否是up狀態(tài),如果按照文檔來的話很少是證書得問題。還有就是可以嘗試一下docker-compose down關(guān)停docker,然后docker volume prune清空容器內(nèi)的東西,然后重啟網(wǎng)絡(luò)。
2022.5.10
重裝了虛擬機部署之后還是差不多的問題,但是因為peer2的配置文件一直是我自己修改寫的。懷疑兩個peer不可同時運行那只能是配置文件哪里寫的有問題吧,于是將學(xué)長的虛擬機上的peer2配置文件換到了我的虛擬機上,發(fā)現(xiàn)就可以運行了,后續(xù)在尋找一下到底是哪里寫的不對。文章來源:http://www.zghlxwxcb.cn/news/detail-820445.html
各組織審議合約:
通道審議合約:
調(diào)用合約成功:文章來源地址http://www.zghlxwxcb.cn/news/detail-820445.html
到了這里,關(guān)于fabric 2.3 手動搭建網(wǎng)絡(luò)&安裝chaincode智能合約的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!