Ibm cloud 将composer连接到Bluemix上的区块链时出现问题-标识或令牌不匹配

Ibm cloud 将composer连接到Bluemix上的区块链时出现问题-标识或令牌不匹配,ibm-cloud,blockchain,hyperledger-composer,Ibm Cloud,Blockchain,Hyperledger Composer,我在mac电脑上安装了fabric composer 0.72,我能够按照此线程将其连接到Bluemix上我的区块链(fabric的v.61) 现在我正试图构建一个ubuntu(16.04)docker容器并在那里运行composer rest服务器。当我尝试从docker容器(使用我在mac上使用的相同id WebAppAdmin)连接到区块链服务时,我收到一个错误: Discovering types from business network definition ... Connect

我在mac电脑上安装了fabric composer 0.72,我能够按照此线程将其连接到Bluemix上我的区块链(fabric的v.61)

现在我正试图构建一个ubuntu(16.04)docker容器并在那里运行composer rest服务器。当我尝试从docker容器(使用我在mac上使用的相同id WebAppAdmin)连接到区块链服务时,我收到一个错误:

Discovering types from business network definition ...
Connection fails: Error: Identity or token does not match.
It will be retried for the next request.
{ Error: Identity or token does not match.
     at /home/composer/.nvm/versions/node/v6.10.3/lib/node_modules  /composer-rest-server/node_modules/grpc/src/node/src/client.js:417:17 code: 2, metadata: Metadata { _internal_repr: {} } }
我尝试将证书从mac复制到docker容器:

/home/composer/.composer-credentials/member.WebAppAdmin
但当我这样做的时候,我得到了一个不同的错误,上面写着“签名不能验证”。我做了一些额外的测试,我发现如果我使用了一个我以前没有在composer中使用过的id(即user_type1_0),那么我可以连接,并且我可以在我的.composer凭据目录中看到一个新的证书

我试着删除那个容器并构建一个新的容器(我弄坏了其他东西),我不能再使用相同的用户ID了

有人知道安全和这些证书应该如何工作吗?似乎证书生成/验证与客户端(即硬件地址)有关,因此,如果我尝试在不同的机器上重复使用id,则证书或密钥或其他内容不匹配。我有办法让事情顺利进行,但如果我不能在不同的机器上使用相同的id,这似乎不是正确的方法


谢谢

我也面对过这个问题,并得出结论

在云环境(包括Bluemix)上使用composer部署网络时存在不一致的行为。问题不在于composer,而在于fabric 0.6

我假设这个问题也间接与fabric 0.6中的以下已知错误有关,而fabric 0.6中不会修复这些错误

错误:

"

抛出器;//未处理的“错误”事件 ^

错误 在ClientDuplexStream._emitStatusIfDone(/home/ubuntu/.nvm/versions/node/v6.9.5/lib/node_modules/composer cli/node_modules/grpc/src/node/src/client.js:189:19) 在ClientDuplexStream.\u readsDone(/home/ubuntu/.nvm/versions/node/v6.9.5/lib/node\u modules/composer cli/node\u modules/grpc/src/node/src/client.js:158:8) 在readCallback(/home/ubuntu/.nvm/versions/node/v6.9.5/lib/node_modules/composer cli/node_modules/grpc/src/node/src/client.js:217:12)

"

到目前为止,我们已经了解到以下三个JIRA是根本原因,即云网络层在一段时间的不活动后最终会终止空闲事件中心连接,fabric SDK无法处理这一问题

FAB-3310

或FAB-2787

结论:

  • 使用Bluemix或任何使用fabric 0.6的云环境都无法解决此问题
  • 您可能不会在Fabric 1.0中遇到此问题,但由于上述所有缺陷尚未修复,因此仍有可能出现此问题
您好,我试图通过在unix机器上运行区块链来重新创建它,然后我将我的连接配置文件和证书复制到我的mac,然后编辑我的连接配置文件以更新ip地址和密钥存储。然后我做了一个
作曲家网络ping
,效果很好


我正在使用composer v0.7.4,所以您可以尝试一下吗?

我已经从使用Fabric v0.61切换到了v1.0.0的alpha 1版本,我没有遇到过同样的问题。我不能确定我是否已经尝试过使用两台不同机器上的composer,但我能够使用docker官方图片来完成。我在mac上使用composer(0.72)将我的业务网络部署到docker容器中的fabric,然后在另一个docker容器中使用composer rest服务器,所以我们可以说它被限制在v0.6.1。谢谢戴夫