[英]How to modify the connection.json file in the cards issued by the Hyperledger Composer REST server
我遵循了将REST服务器与Google OAUTH 2.0一起使用的教程, 以使用MongoDB Docker映像持久化商务网卡。 我正在尝试构建一个包含两个作曲家其余服务器的Web应用程序。
第一个没有身份验证,并且允许用户创建新的参与者和发行新的卡。
此时,第二个作曲者REST服务器(通过Google OAUTH2.0身份验证)应允许用户执行所有其他操作。 无论如何,我一直收到错误消息:
尝试登录并获取用户上下文时出错。 错误:尝试注册用户或加载频道配置时出错。 错误:呼叫注册端点失败,并显示错误[错误:连接ECONNREFUSED 127.0.0.1:7054]
我几乎可以确定问题在于,由于REST服务器位于docker中,因此应更改名片中的文件connection.json
以便主机可访问。
我已经对用于安装和启动网络的卡进行了此操作,因此该卡的文件为:
{"name":"hlfv1",
"x-type":"hlfv1",
"x-commitTimeout":300,
"version":"1.0.0",
"client":
{"organization":"Org1"
,"connection":
{"timeout":
{
"peer":{"endorser":"300","eventHub":"300","eventReg":"300"},
"orderer":"300"
}
}
},
"channels":
{"composerchannel":
{
"orderers":["orderer.example.com"],
"peers":{"peer0.org1.example.com":{}}
}
},
"organizations":
{
"Org1":{
"mspid":"Org1MSP",
"peers":["peer0.org1.example.com"],
"certificateAuthorities":["ca.org1.example.com"]
}
},
"orderers":
{
"orderer.example.com":
{"url":"grpc://orderer.example.com:7050"}
},
"peers":
{
"peer0.org1.example.com":
{"url":"grpc://peer0.org1.example.com:7051"}
},
"certificateAuthorities":
{
"ca.org1.example.com":
{"url":"http://ca.org1.example.com:7054","caName":"ca.org1.example.com"}
}
}
但是我的问题是,如何为REST服务器发行的每张新卡更改此文件? 有没有一种方法可以将REST服务器配置为自动执行此操作?
假设您在本地运行一个简单的Fabric(例如Composer Tools提供的Development Fabric),则可以利用Docker Port Forwarding连接到本地主机(通常为127.0.0.1)上的Fabric。 但是,当您在Docker容器中运行时,localhost只会反射回该容器,因此不使用Docker主机上的端口转发。 本教程为该容器创建了一个专用的“ restadmin”卡,该卡用包含Fabric容器的容器名称的URL替换了localhost URL,并且由于它们使用相同的Docker网络桥(composer_default),因此一切正常。
当您使用Composer REST服务器发布身份时,将使用“当前” ID的Connection.json发出新的身份(和卡)。
因此,我想在您的情况下,您的第一个REST服务器(无身份验证)不在容器中本地运行,而第二个多用户REST服务器在容器中运行。 因此,您在2个REST服务器的结构URL之间不匹配。
也许解决方案是同时在本地或作为容器运行它们,以便服务器之间的卡保持一致。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.