Hyperledger-Composer:在 ping 网络管理卡时得到 "access denied"
Hyperledger-Composer: Getting "access denied" when pinging network admin card
我在 Hyperledger Fabric 上使用 Hyperledger Composer 来部署 .bna 文件。为不同组织创建 networkAdmin 卡时出现问题,它们无法访问网络。
背景
项目结构如下:
- 组织:
- exporter01 有一个同行和一个 CA
- maritimeAgency01 与一位同行和一位 CA
- terminal01 有一个对等点和一个 CA
- terrestrialTransport01 有一个对等点和一个 CA
解决问题的步骤如下:
- 使用证书和privateKey文件创建PeerAdmin卡[=41] =]/msp/keystore/ 每个组织
- 使用
composer network install ...
为每个使用PeerAdmin卡 的组织同级安装网络存档
- 为
composer network start ...
命令中指定的每个网络管理员请求的身份(每个组织一个)
- 使用
为所有对等点启动网络
composer network start \
--card PeerAdmin@$NETWORK_NAME-exporter01 \
--networkName $NETWORK_NAME \
--networkVersion $NETWORK_VERSION \
-o endorsementPolicyFile=./endorsement-policy.json \
-A exporter01 \
-C $TMP_BASEDIR/exporter01/admin-pub.pem \
-A maritimeAgency01 \
-C $TMP_BASEDIR/maritimeAgency01/admin-pub.pem \
-A terminal01 \
-C $TMP_BASEDIR/terminal01/admin-pub.pem \
-A terrestrialTransport01 \
-C $TMP_BASEDIR/terrestrialTransport01/admin-pub.pem
问题
使用 composer card create ...
后
- connectionProfile.json(与创建 PeerAdmin 卡片相同)
- 用户:与
composer network start ...
中的-A
标志相同
- 证书:与
composer network start ...
中的-C
标志相同
- privateKey:对应
composer identity request ...
生成的证书
并用composer card import ...
导入卡成功导入。 但是 在使用 composer network ping -c <created networkAdmin card>
时命令失败并显示以下消息
Error: Error trying to ping. Error: 2 UNKNOWN: access denied: channel [mychannel] creator org [Exporter01MSP]
知道为什么会这样吗?
谢谢!
两周后发现错误。在这里为社区记录。
这是 Hyperledger-Fabric 配置错误。
当使用多个 CA(每个组织一个)时,您必须将证书添加到订购者 docker 容器作为环境变量 ORDERER_GENERAL_TLS_ROOTCAS
否则这些 CA 颁发的任何身份将无法连接。
在下面的 fabric-sample Repo 第 55 行中找到了解决方案。不要忘记 link 卷(第 63-64 行)。
我在 Hyperledger Fabric 上使用 Hyperledger Composer 来部署 .bna 文件。为不同组织创建 networkAdmin 卡时出现问题,它们无法访问网络。
背景
项目结构如下:
- 组织:
- exporter01 有一个同行和一个 CA
- maritimeAgency01 与一位同行和一位 CA
- terminal01 有一个对等点和一个 CA
- terrestrialTransport01 有一个对等点和一个 CA
解决问题的步骤如下:
- 使用证书和privateKey文件创建PeerAdmin卡[=41] =]/msp/keystore/ 每个组织
- 使用
composer network install ...
为每个使用PeerAdmin卡 的组织同级安装网络存档
- 为
composer network start ...
命令中指定的每个网络管理员请求的身份(每个组织一个) - 使用
为所有对等点启动网络composer network start \ --card PeerAdmin@$NETWORK_NAME-exporter01 \ --networkName $NETWORK_NAME \ --networkVersion $NETWORK_VERSION \ -o endorsementPolicyFile=./endorsement-policy.json \ -A exporter01 \ -C $TMP_BASEDIR/exporter01/admin-pub.pem \ -A maritimeAgency01 \ -C $TMP_BASEDIR/maritimeAgency01/admin-pub.pem \ -A terminal01 \ -C $TMP_BASEDIR/terminal01/admin-pub.pem \ -A terrestrialTransport01 \ -C $TMP_BASEDIR/terrestrialTransport01/admin-pub.pem
问题
使用 composer card create ...
后
- connectionProfile.json(与创建 PeerAdmin 卡片相同)
- 用户:与
composer network start ...
中的 - 证书:与
composer network start ...
中的 - privateKey:对应
composer identity request ...
生成的证书
-A
标志相同
-C
标志相同
并用composer card import ...
导入卡成功导入。 但是 在使用 composer network ping -c <created networkAdmin card>
时命令失败并显示以下消息
Error: Error trying to ping. Error: 2 UNKNOWN: access denied: channel [mychannel] creator org [Exporter01MSP]
知道为什么会这样吗? 谢谢!
两周后发现错误。在这里为社区记录。
这是 Hyperledger-Fabric 配置错误。
当使用多个 CA(每个组织一个)时,您必须将证书添加到订购者 docker 容器作为环境变量 ORDERER_GENERAL_TLS_ROOTCAS
否则这些 CA 颁发的任何身份将无法连接。
在下面的 fabric-sample Repo 第 55 行中找到了解决方案。不要忘记 link 卷(第 63-64 行)。