在Hyperledger Fabric 2.0中添加第四个组织时出错

问题描述 投票:0回答:1

我是Fabric 2.0的新手,最近安装了所有的样本,我能够顺利运行test-network,有2个组织。然后我按照addOrg3上的目录添加了第3个组织,并加入了我之前创建的通道。

现在,有趣的部分来了,当我想添加第4个组织时,我的做法是,我复制了第3个组织的目录,并加入我之前创建的通道。我所做的是,我复制了addOrg3文件夹,并重命名了每个文件中的几乎所有内容,以代表第四个组织。我甚至为这个组织分配了新的PORT。然而,我看到以下错误。

我在ScriptsenvVar.sh中加入了以下内容

export PEER0_ORG4_CA=${PWD}organizationspeerOrganizationsorg4.example.compeerspeer0.org4.example.comtlsca.crt。

并在envVarCLI.sh中添加了以下内容。

elif [ $ORG -eq 4 ]; then

CORE_PEER_LOCALMSPID="Org4MSP"

CORE_PEER_TLS_ROOTCERT_FILE=$PEER0_ORG4_CA

CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/organizations/peerOrganizations/org4.example.com/users/Admin@.../msp



CORE_PEER_ADDRESS=peer0.org4.example.com:12051

我也添加了步骤1Org4.sh和步骤2Org4.sh,基本上是按照addOrg3的结构进行的。

你是按照什么步骤来添加其他组织的?请大家帮忙。

"No such container: Org4cli"

很抱歉,因为我无法用编码风格来格式化,但这里是运行命令的输出结果 ".addOrg4.sh up"

**在通道'mychannel'中添加Org4,时间为'10'秒,CLI延迟'3'秒,使用数据库'leveldb'。

桌面区块链BSIfabric-最简单的网络添加Org4...bincryptogen。

#Generate certificates using cryptogen tool######### Create Org4 Identities#。
  • cryptogen generate --config=org4-crypto.yaml --output=.org4.example.com组织。
  • res=0
  • 设置+x

为Org4DesktopblockchainBSIfabric-samplest-networkaddOrg4...binconfigtxgen生成CCP文件。

##生成Org4组织定义#。
  • configtxgen -printOrg Org4MSP2020-05-29 13:33:04.609 EDT [common.tools.configtxgen] main -> INFO 001 加载配置2020-05-29 13:33:04.617 EDT [common.tools.configtxgen.localconfig] LoadTopLevel -> INFO 002 加载配置。负载了配置:DesktopblockchainBSIfabric-samplest-networkaddOrg4configtx.yaml。
  • res=0
  • 设置+x
## 生成并提交config tx以添加Org4#。

错误。没有这样的容器。Org4cliERROR !!! 无法创建配置TX **。

docker docker-compose hyperledger-fabric hyperledger
1个回答
0
投票

从这个 "No such container: Org4cli",这说明Org4cli容器要么没有创建,要么有一些问题,如果你能分享整个日志和你的docker文件,将会很有帮助。


0
投票

在你的addOrg4.sh里有这样的条件检查。

CONTAINER_IDS=$(docker ps -a | awk '($2 ~ /fabric-tools/) {print $1}')
if [ -z "$CONTAINER_IDS" -o "$CONTAINER_IDS" == " " ]; then
  echo "Bringing up network"
  Org4Up
fi

如果你已经运行了 addOrg3.sh up, CONTAINER_IDS总是有值的(例如: 51b4ad60d812). 它是Org3cli的ContainerID,所以函数Org4Up不会被调用。所以函数Org4Up不会被调用。简单的方法是在代码中加入这样的注释,它就会弹出你遗漏的Org4cli。

# CONTAINER_IDS=$(docker ps -a | awk '($2 ~ /fabric-tools/) {print $1}')
# if [ -z "$CONTAINER_IDS" -o "$CONTAINER_IDS" == " " ]; then
  echo "Bringing up network"
  Org4Up
# fi

它将会调用你所丢失的Org4cli.


0
投票

首先检查容器是否已经启动,如果已经启动,那么我认为执行命令的CLI没有启动Org4的详细信息。

我已经从三个Org Hyperledger Fabric Network中添加了第四个组织.首先,你必须创建Org4-artifacts(Crypto.yaml和Org4 docker文件,包括Org4Cli),然后尝试按照手动(一步一步)的过程从官方文档中添加新组织。

https:/hyperledger-fabric.readthedocs.ioenrelease-2.0channel_update_tutorial.html。

省略编辑脚本的过程(步骤1 Org3.sh......),因为添加第4个或新的Org的工作流程略有改变,所以,你会花很多时间在修改脚本上。我会在Medium上写一篇添加新的Org(4th)的文章,也会把链接贴在这里。

© www.soinside.com 2019 - 2024. All rights reserved.