Hyperledger Fabric搭建首个网络遇FORBIDDEN权限错误求助
解决Fabric Samples启动网络时的FORBIDDEN权限错误
这个权限拒绝的错误我在Fabric社区见得挺多的,本质是你的操作身份没通过通道或链码的权限校验。下面是几个最靠谱的排查和修复步骤,按顺序试就行:
先确认当前用的身份证书是不是对的
Fabric启动网络或执行链码操作时,完全依赖本地的MSP身份证书来验证权限。先检查下你当前的身份配置:- 执行
echo $CORE_PEER_MSPCONFIGPATH看看当前指向的MSP路径,得是对应组织的管理员目录才行,比如Org1的管理员路径应该是fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp - 如果路径不对,赶紧重新设置环境变量,比如切换到Org1管理员身份:
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp export CORE_PEER_ADDRESS=localhost:7051 export CORE_PEER_LOCALMSPID="Org1MSP" export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
- 执行
检查通道的权限策略配置
很多时候是通道的默认策略要求必须用管理员身份操作,但你不小心用了普通用户。可以这么处理:- 打开
configtx.yaml文件,找到Application部分的Policies配置,看看是不是只有管理员才能执行读写操作 - 如果是测试环境,临时把策略改宽松点(生产环境别这么干),比如:
Application: Policies: Readers: Type: ImplicitMeta Rule: "ANY Readers" Writers: Type: ImplicitMeta Rule: "ANY Writers" Admins: Type: ImplicitMeta Rule: "ANY Admins"
修改完后重新生成通道配置文件:
configtxgen -profile TwoOrgsChannel -channelID mychannel -outputCreateChannelTx ./channel-artifacts/channel.tx,然后删掉旧网络重新创建通道。- 打开
彻底清理旧环境再重来
残留的旧证书、通道状态经常会搞出权限冲突,不如直接清干净重来:- 先运行测试网络的清理脚本:
./network.sh down - 手动删掉残留的证书和通道文件:
rm -rf organizations/ channel-artifacts/ - 重新生成证书并启动网络:
./network.sh up createChannel
- 先运行测试网络的清理脚本:
链码操作的话,检查安装/实例化的身份
如果是安装或实例化链码时出错,一定要确保用的是管理员身份:- 执行
peer chaincode install前,先把管理员的环境变量配置好(就是第一步里的那些export命令) - 实例化时记得指定orderer节点,比如
peer chaincode instantiate -o localhost:7050 -C mychannel -n basic -v 1.0 -c '{"Args":["InitLedger"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer')"
- 执行
要是以上步骤都没搞定,把你执行的具体命令、configtx.yaml的关键部分贴出来,我再帮你深挖问题~
内容的提问来源于stack exchange,提问作者Ravi
相关产品推荐
相关产品推荐

