【问题标题】:First network in hyperledger超级账本中的第一个网络
【发布时间】:2018-01-08 02:39:04
【问题描述】:

我正在尝试在 Hyperledger Fabric 中使用我的第一个网络。使用以下文档 http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html

我已经完成了设置,直到 http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html#create-join-channel

但是当我运行

peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

我得到了错误

错误:出现意外状态:BAD_REQUEST

搜索我遇到的问题 http://hyperledgerdocs.readthedocs.io/en/latest/asset_trouble.html

因此我尝试使用给定的新频道名称(旧频道名称=mychannel), 我试过下面的cmds

CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer:7050 peer channel create -c myc1

CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer.example.com:7050 peer channel create -c myc1

CORE_PEER_COMMITTER_LEDGER_ORDERER=172.18.0.2:7050 peer channel create -c myc1

对于这三个我都遇到了错误

错误:订购服务端点无效或缺失 用法: 对等通道创建 [标志]

假设频道已经创建,我也尝试跳过它。 于是跑了

peer channel join -b ./mychannel.block

得到了

错误:提案失败(错误:rpc 错误:code = Unknown desc = chaincode 错误(状态:500,消息:无法从创世块创建分类帐,因为 LedgerID 已经存在))

我的操作系统是 Ubuntu 16.04

码头工人ps 请帮忙

【问题讨论】:

  • 您是否先尝试运行开箱即用版本以确保一切设置正确:./byfn.sh -m down./byfn.sh -m generate./byfn.sh -m up 如果可行,那么我们可以尝试进一步调试。如果它不起作用,它应该有助于提供有关问题可能是什么的线索
  • 是的,我试过了,它工作正常...但后来我开始运行各个命令并收到此错误。
  • 开箱即用版本的输出pastebin.com/76nDaA6u
  • 您可能想再次运行./byfn.sh -m down 来清理所有内容?
  • 运行./byfn.sh -m down 它停止并删除了所有容器,但仍然出现相同的错误

标签: hyperledger hyperledger-fabric hyperledger-composer


【解决方案1】:

让我们尝试确保您按照docs 中所述的所有步骤运行。

  1. 首先,您需要编辑docker-compose-cli.yaml 文件的cli 部分,以注释掉负责运行频道创建和加入的自动流程的行:

    command: /bin/bash -c './scripts/script.sh ${CHANNEL_NAME}; sleep $TIMEOUT'
    

例如

# command: /bin/bash -c './scripts/script.sh ${CHANNEL_NAME}; sleep $TIMEOUT'
  1. 您正在使用的下一个导出频道名称:

    export CHANNEL_NAME=mychannel

  2. 启动网络(使用默认超时60s):

    CHANNEL_NAME=$CHANNEL_NAME docker-compose -f docker-compose-cli.yaml up -d

  3. 进入cli容器:

    docker exec -it cli bash

  4. 导出环境变量:

    export CHANNEL_NAME=mychannel

  5. 创建频道:

    peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
    
  6. 加入频道:

    peer channel join -b mychannel.block
    

【讨论】:

  • 对不起,我错过了 # 命令:/bin/bash -c './scripts/script.sh ${CHANNEL_NAME}; sleep $TIMEOUT' 因此出现错误
  • 不用担心,我在第二次阅读您的问题并看到“错误:提案失败(错误:rpc错误:代码=未知描述=链码错误(状态:500,消息: 由于 LedgerID 已经存在,无法从创世块创建分类帐))”错误消息。
  • 我也在浏览本教程,发现了这个非常有用的答案!我已经完成了这些步骤,在第 6 步中,我看到了以下错误 - 我将不胜感激任何帮助我解决它!.....错误:得到意外状态:BAD_REQUEST - 授权更新错误: 验证 ReadSet 时出错:readset 预期密钥 [Group] /Channel/Application 在版本 0,但获得了版本 1
猜你喜欢
  • 1970-01-01
  • 2018-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 2020-02-21
  • 2020-03-29
相关资源
最近更新 更多