我正在尝试fabric-samples balance-transfer示例,我尝试使用以下命令创建新频道。通道被创建但是当我尝试将对等体加入通道时,我得到以下错误。任何人都可以建议我错过或出错的步骤
[client-utils.js]:sendPeersProposal - 拒绝承诺:错误: chaincode错误(状态:500,消息:无法创建分类帐 由于LedgerID已经存在,因此
命令我用来创建新的通道配置
configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel.tx-channelID channel1
REST Call我用来创建频道
curl -s -X POST http://localhost:4000/channels -H “授权:Bearer XXXXXX”-H“content-type:application / json” -d'{“channelName”:“channel1”, “channelConfigPath”:“../ artifacts / channel / channel.tx”}'
REST Call我正在使用加入频道
curl -s -X POST http://localhost:4000/channels/channel1/peers
-H“授权:Bearer XXXXX”-H“content-type:application / json”-d'{“peers”:[“peer1”,“peer2”]}'
答案 0 :(得分:2)
在大多数情况下,Cannot create ledger from genesis block, due to LedgerID already exists
表示对等方已加入频道。
如果您在对等方上实例化了链代码,那么测试此方法的一种快速方法是使用其中一个对等方对分类帐进行查询。
答案 1 :(得分:0)
此错误在两种不同的情况下发生:
如果对等方已经加入该通道,而您又在进行此操作。您可以运行对等通道列表并检查对等方是否已加入该通道。
停止时,移除docker容器,然后再次将它们移至docker-compose.yaml中,容器中的对等卷将存储先前的数据。因此,即使您认为没有创建通道,由于对等容器中的先前卷,该通道信息仍然可用。因此,您还需要通过运行docker system prune --volumes -f删除这些卷。这将删除未使用的卷和网络。
答案 2 :(得分:0)
如果遇到类似问题,请检查是否设置了以下环境变量:
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