Hyperledger双组织网络新增身份无法访问,报错身份未注册
解决Hyperledger Composer身份未注册的Ping失败问题
看起来你在创建Rock的业务名片时漏了关键一步:只从CA获取了身份证书,但没在supply-chain业务网络中注册这个身份,所以链码会返回"身份未注册"的错误。下面是完整的修复流程:
1. 确保你有业务网络的管理员权限卡片
首先得用业务网络的管理员卡片(比如默认生成的admin@supply-chain)来操作。如果还没导入这个卡片,执行:
composer card import -f admin@supply-chain.card
要是你没有这个卡片,可以通过PeerAdmin卡片初始化业务网络时生成,或者确认你手头有其他具备业务网络管理员权限的卡片。
2. 在业务网络中注册并颁发Rock的身份
这是核心步骤——让supply-chain业务网络认可Rock的身份。用管理员卡片执行composer identity issue命令:
composer identity issue -c admin@supply-chain -f rock.id -u rock -n supply-chain
参数说明:
-c:指定业务网络管理员卡片-f:生成的身份配置文件,后续创建卡片会用到-u:要注册的用户名(这里是rock)-n:你的业务网络名称(supply-chain)
如果你的业务网络定义了参与者类型(比如org1.example.com.User),并且已经创建了Rock对应的参与者实例,可以加上-a参数关联身份与参与者:
composer identity issue -c admin@supply-chain -f rock.id -u rock -a "org1.example.com.User#rock" -n supply-chain
3. 重新创建并导入Rock的业务名片
现在结合CA证书和业务网络的身份配置来创建合法的卡片:
composer card create -p connection-org1.json -u rock -n supply-chain -c rock/admin-pub.pem -k rock/admin-priv.pem -f rock@supply-chain.card --file rock.id
然后导入卡片:
composer card import -f rock@supply-chain.card
4. 测试网络连接
最后执行ping命令验证:
composer network ping -c rock@supply-chain
为什么之前的操作失败?
composer identity request只是从CA获取了加密用的公私钥证书,但Hyperledger Composer的业务网络需要单独注册身份,确认该身份的权限和合法性。跳过composer identity issue这一步,业务网络就会认为Rock是"未注册"的陌生身份,直接拒绝访问。
内容的提问来源于stack exchange,提问作者user9040429
相关产品推荐
相关产品推荐

