我有一个Hyperledger设置,包含一个会员服务和一个验证同伴。
我可以使用以下命令运行会员服务并验证对等。
会员服务:
docker run --name c_membersrvc --net mynet --ip 172.17.0.50 --rm -it -e MEMBERSRVC_CA_ACA_ENABLED=true hyperledger/fabric-membersrvc membersrvc
验证对等方:
docker run --name c_vp0 --net mynet --ip 172.17.0.100 -p 172.17.0.1:7050:7050 -p 172.17.0.1:7053:7053 --rm -it -v /var/run/docker.sock:/var/run/docker.sock -e CORE_VM_ENDPOINT=unix:///var/run/docker.sock -e CORE_PEER_ID=vp0 -e CORE_PEER_ADDRESSAUTODETECT=true -e CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=noop -e CORE_LOGGING_LEVEL=ERROR -e CORE_SECURITY_ENABLED=true -e CORE_SECURITY_PRIVACY=true -e CORE_PEER_PKI_ECA_PADDR=172.17.0.50:7054 -e CORE_PEER_PKI_TCA_PADDR=172.17.0.50:7054 -e CORE_PEER_PKI_TLSCA_PADDR=172.17.0.50:7054 -e CORE_SECURITY_ENROLLID=test_vp0 -e CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT hyperledger/fabric-peer peer node start
但是,当我停止验证对等体并使用上面指示的相同命令重新启动它时,我遇到以下错误:
Error: rpc error: code = 2 desc = Identity or token does not match.
如果我先重启会员服务,我可以成功重启验证对等体。在实际部署中,我不认为每次验证对等方需要重启时重启会员服务的方法都是切实可行的。
是否有另一种方法可以成功重新启动验证对等方而无需重新启动成员资格服务?
我在错误标识或标记不匹配上看到了类似的帖子,但这是由于用户/客户端通过验证对等方登录。建议的解决方案是使用Node.js SDK注册/注册客户端。我不确定相同的解决方案是否适用于验证对等重启问题。
答案 0 :(得分:1)
第一次启动VP时:
当您尝试重新启动VP时,docker会创建一个空/var/hyperledger/prodution/...
个文件夹的新容器。 VP尝试使用相同的凭据生成新的Enrloment证书,但会员服务将拒绝此请求并显示Identity or token does not match.
错误消息。这是因为每个帐户只能生成一个注册证书。
如果重新启动会员服务,它将从头开始,并且没有关于先前注册的信息,因此将接受下一个注册请求。
作为选项,您可以将证书保存在容器之外。只需将主机系统中的任何文件夹映射到容器中的/var/hyperledger/prodution/...
即可。