频道访问被拒绝

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

我在我的联盟网络中添加了一个新组织。 能够成功加入新组织同行的渠道。 现在我尝试使用以下命令获取有关我的频道的信息:

peer channel getinfo -c my-channel

但是我得到了这个错误:

Error: received bad response, status 500: access denied for [GetChainInfo][my-channel]: [Failed evaluating policy on signed data during check policy on channel [my-channel] with policy [/Channel/Application/Readers]: [implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Readers' sub-policies to be satisfied]]

我也在同行日志中收到此错误:

Peer Logs - 2021-10-20 07:18:45.057 UTC [policies] SignatureSetToValidIdentities -> WARN d1a93c invalid identity: certificate subject=CN=peer1,OU=peer,O=Hyperledger,ST=North Carolina,C=US serialnumber=41365438365218511579049 error="MSP Org3 is not defined on channel
hyperledger-fabric hyperledger hyperledger-chaincode
2个回答
0
投票

您是否在运行 configtxlator 时更新了通道以包含 Org3MSP。我假设您可能已经参考了有关如何添加和加入频道的教程。


0
投票

要解决此问题,请首先检查 docker 容器上的排序者日志,以明确问题的定义。这是我的样子: “2024-04-08 18:15:41 2024-04-08 09:15:41.277 UTC 0015 WARN [策略] SignatureSetToValidIdentities -> 无效身份错误=”MSP org1MSP 未在通道上定义“identity=”(mspid =org1MSP 主题=CN=admin-org0,OU=admin,O=Hyperledger,ST=北卡罗来纳州,C=US 发行人=CN=orderer,OU=Fabric,O=Hyperledger,ST=北卡罗来纳州,C=US序列号=228762635103336907509231022203806602497531368511)" 2024-04-08 18:15:41 2024-04-08 09:15:41.277 UTC 0016 WARN [策略] SignatureSetToValidIdentities -> 无效身份错误=“MSP org1MSP 未在通道上定义”identity=“(mspid=org1MSP 主题) =CN=admin-org0,OU=admin,O=Hyperledger,ST=北卡罗来纳州,C=美国发行人=CN=订购者,OU=Fabric,O=Hyperledger,ST=北卡罗来纳州,C=美国序列号=228762635103336907509231022203806602497531368511)" 2024-04-08 18:15:41 2024-04-08 09:15:41.277 UTC 0017 WARN [common.configtx] verifyDeltaSet -> 不满足通道配置更新 key="[Group] /Channel/Application" 策略的策略="{0xc00012c200 /Channel/Application/ChannelCreationPolicy}"signingIdenties="(mspid=org1MSP subject=CN=admin-org0,OU=admin,O=Hyperledger,ST=北卡罗来纳州,C=美国发行人=CN=orderer,OU =Fabric、O=Hyperledger、ST=北卡罗来纳州、C=美国序列号=228762635103336907509231022203806602497531368511)"" #------------------------------------------------- -------- 然后我在终端上收到此错误: “错误:获得意外状态:BAD_REQUEST - 验证新通道“mychannel”的通道创建事务时出错,无法成功将更新应用于模板配置:授权更新时出错:验证 DeltaSet 时出错:[组]/通道/应用程序的策略不满足:隐式策略评估失败 - 满足 0 个子策略,但此策略需要满足 1 个“管理员”子策略”

为了解决这个问题, 1:) 检查 docker-compose.yaml 对等节点和排序节点配置,然后检查 configtx.yaml 文件中组织的 ID。它们的拼写必须相同。 -*从我的错误日志文件中可以看出,问题源于此:“无效身份错误=”MSP org1MSP未在通道上定义“identity=”(mspid=org1MSP subject=CN=admin-”,名称我的 docker compose 文件中的 :CORE_PEER_LOCALMSPID=org1MSP 与我的 configtx.yaml 中的不同,在组织下,我将 org1 的 ID 设置为:Org1MSP。所以在我的 docker 上,我有 CORE_PEER_LOCALMSPID= org1MSP 和我的 configtx.yaml ID=Org1MSP,因此 ID 拼写的差异是导致此问题的原因,因为在创建通道以及每个对等点想要加入通道时必须引用相同的 ID。 因此,就我而言,该通道是使用 ID:Org1MSP 创建的,并且我尝试使用 ID:org1MSP 通过peer1 连接到该通道,因此出现了问题。

2:)在您的 docker compose.yaml 文件中,确保所有对等点排序者和 cli 具有与每个组织下的 configtx.yaml 中相同的 CORE_PEER_LOCALMSPID= Org1MSP 。 也就是说,在我的 docker-compose.yaml 文件中,我的 org1 中的所有对等点都将具有相同的:CORE_PEER_LOCALMSPID=Org1MSP SET AS "Org1MSP",然后在组织下的 configtx.yaml 文件中,org1 的 ID= Org1MSP,这是完全相同的与我的 docker-compose.yaml 文件中的拼写相同。

  • 还要确保在 configtx.yaml 文件中每个组织的策略下,在每个组织中分配策略规则时维护相同的 ID“Org1MSP”。即:

“&组织1 名称:组织1 ID:Org1MSP MSPDir:/home/billion/go/src/fabric-ca/org1/msp 政策: 读者: 类型: 签名 规则:“OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')”

  • 可以看出,在为管理员、同级和客户端定义角色时,规则保持相同的 ID:“Org1MSP.admin”。因此 ID:Org1MSP 必须在每个组织的 configtx.yaml 和 docker-compose.yaml 中保持一致。

3:) 还要确保您的 docker 容器的名称与您的组织地址相同,因为 docker 容器的名称=该容器的地址。

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