我在Hyperledger Fabric上使用Hyperledger Composer部署了 .bna 文件。当为不同的组织创建 networkAdmin 卡时,就会出现问题,它们无法访问网络。
项目结构如下:
解决此问题的步骤如下:
composer network install ...
安装网络归档文件composer network start ...
命令上指定的每个networkAdmin的请求身份(每个组织一个)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 ...
与以下内容一起使用
-A
中的composer network start ...
标志相同-C
中的composer network start ...
标志相同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]
任何想法为什么会这样? 谢谢!
答案 0 :(得分:2)
这是Hyperledger-Fabric配置错误。
使用多个CA(每个组织一个)时,必须将证书作为env变量ORDERER_GENERAL_TLS_ROOTCAS
添加到订购者docker容器中,否则这些CA颁发的任何身份将无法连接。
在下面的fabric-sample Repo第55行中找到了解决方案。请不要忘记链接这些卷(第63-64行)。