fabric 2.3 搭建网络&安装chaincode(疑难未解决...)

fabric 2.3 搭建网络&安装chaincode(疑难未解决...),第1张

搭建好fabric之后,要在test-network下手动启动一个fabric网络。将下载过来的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"

生成创世块:

export FABRIC_CFG_PATH=${PWD}/configtx
configtxgen -profile TwoOrgsOrdererGenesis -channelID system-channel -outputBlock ./system-genesis-block/genesis.block

之后便可以去启动order和peer,分别进入order和peer1文件夹下,打开终端输入orderer startpeer 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,所以当然找不到这个路径了😂

启动成功的终端界面:
生成通道文件并更新锚节点:

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,缺少了锚节点相关的属性:

        AnchorPeers:
            - Host: peer0.org1.qkltest.com
              Port: 7051     

安装智能合约
在test-network下打开一个终端切换环境:

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

再打开一个终端切换环境:

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

创建通道:

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

这里补充一个点,当打包合约时报错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
这个应该就是由于权限不足引起的,加一个sudo在前面就行了。

链码终于安装成功了


按照学长GitHub上修改peer配置文件后再重新再重启peer后安装新的chaincode,出现错误
只要一重新创建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

学长建议用

sudo ./network.sh down

关闭之前的网络,删掉之前的文件夹,重新试了之后也还是不行

--------------------------------------------分割线-----------------------------------------------------------
2022.5.2
目前的问题还是在让某一节点加入通道的时候,会让这个节点出现连接报错的现象。
检查之后实在不知道是什么环节出现问题,打算再重建个虚拟机试一试。

2022.5.10
重装了虚拟机部署之后还是差不多的问题,但是因为peer2的配置文件一直是我自己修改写的。怀疑两个peer不可同时运行那只能是配置文件哪里写的有问题吧,于是将学长的虚拟机上的peer2配置文件换到了我的虚拟机上,发现就可以运行了,后续在寻找一下到底是哪里写的不对。

各组织审议合约:


通道审议合约:

调用合约成功:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/925000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存