Hyperledger fabric 结构示例:无法从genesis块创建分类账,因为分类账已经存在

Hyperledger fabric 结构示例:无法从genesis块创建分类账,因为分类账已经存在,hyperledger-fabric,hyperledger,Hyperledger Fabric,Hyperledger,我正在尝试这个例子,我尝试用下面的命令创建一个新频道。通道已创建,但当我尝试将对等方加入到通道时,会出现以下错误。有人能告诉我我错过了哪一步或是走错了哪一步吗 [客户端utils.js]:sendPeersProposal-承诺被拒绝:错误: 链码错误(状态:500,消息:无法从创建分类账 genesis区块,由于已存在LedgerID) 用于创建新通道配置的命令 configtxgen-配置文件TwoOrgsChannel-输出CreateChannelTx ./channel.tx-chan

我正在尝试这个例子,我尝试用下面的命令创建一个新频道。通道已创建,但当我尝试将对等方加入到通道时,会出现以下错误。有人能告诉我我错过了哪一步或是走错了哪一步吗

[客户端utils.js]:sendPeersProposal-承诺被拒绝:错误: 链码错误(状态:500,消息:无法从创建分类账 genesis区块,由于已存在LedgerID)

用于创建新通道配置的命令

configtxgen-配置文件TwoOrgsChannel-输出CreateChannelTx ./channel.tx-channelID channel1

我正在使用REST调用创建通道

curl-s-X POST-H “授权:承载XXXXXX”-H“内容类型:应用程序/json” -d'{“channelName”:“channel1”, “channelConfigPath”:“./artifacts/channel/channel.tx”}”

我正在使用REST呼叫加入频道

卷曲-s-X柱
-H“授权:承载XXXXX”-H“内容类型:应用程序/json”-d'{“对等方”:[“对等方1”,“对等方2”]}”


在大多数情况下,
无法从genesis块创建分类账,因为分类账已存在
,表明对等方已加入该渠道


如果您在对等方上实例化了chaincode,则快速测试此问题的方法是使用其中一个对等方在分类账上执行查询。

此错误发生在两种不同的情况下:

  • 如果对方已加入频道,而您正在重新加入。您可以运行对等通道列表并检查对等通道是否已加入该通道

  • 停止时,移除docker容器,然后在docker-compose.yaml中再次启动容器,容器中的对等卷将存储以前的数据。因此,即使您认为您没有创建通道,但由于对等容器中以前的卷,此通道信息仍然可用。因此,您还需要通过运行docker系统prune--volumes-f来删除这些卷。这将删除未使用的卷和网络


  • 如果遇到类似问题,请检查是否设置了以下环境变量:

    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