Hyperledger Composer登录获取用户上下文报错(代码20)求助
我刚接触Hyperledger Composer的时候也踩过这个Error: Error trying login and get user Context. (code 20)的坑,大概率是环境兼容性或者网络配置的小问题,给你几个实际试过有效的排查步骤:
检查版本兼容性
这个错误最常见的诱因就是Hyperledger Fabric和Composer的版本不匹配,两者的版本对应关系很严格。比如Composer v0.20.x必须搭配Fabric v1.3.x,v0.19.x对应Fabric v1.2.x。
先查看当前Composer版本:composer -v确认对应的Fabric版本后,如果不匹配,先清理旧的Fabric容器和镜像:
docker kill $(docker ps -q) docker rm $(docker ps -aq) docker rmi $(docker images dev-* -q)然后按照教程重新部署对应版本的Fabric网络。
验证Fabric网络状态
先确认所有Fabric容器都正常运行:docker ps确保orderer、peer、CA、couchdb这些核心容器都处于
Up状态。如果有容器退出,查看日志找原因:docker logs <container-name>另外,测试CA服务是否可访问:
curl http://localhost:7054/cainfo如果返回CA的配置信息,说明CA服务正常;如果连接失败,检查端口是否被占用或者CA容器是否启动异常。
重新注册用户身份
有时候是用户身份没有正确注册到Fabric CA中导致的登录失败。尝试重新注册用户:composer identity register -c PeerAdmin@hlfv1 -u alice -s adminpw注册完成后用新身份测试连接:
composer network ping -c alice@your-network-name排查端口冲突
确认Fabric用到的端口(7050、7051、7054等)没有被其他程序占用:lsof -i :7054如果端口被占用,关闭占用程序或者修改Fabric配置文件中的端口号后重新启动网络。
清理Composer本地缓存
本地身份卡片缓存出错也可能引发这个问题,清理后重新导入身份:composer card delete -c your-card-name rm -rf ~/.composer然后按照教程步骤重新创建并导入身份卡片,再尝试登录。
如果以上步骤都试过还是不行,建议你再仔细核对教程里的每一步,尤其是Fabric网络启动、身份注册的环节,新手很容易在这些细节上遗漏操作。
内容的提问来源于stack exchange,提问作者k.burk

