https://i.imgur.com/nGh5orv.png
我在AWS ec2环境中进行设置。在尝试进行多用户模式之前,一切正常。
I am facing this issue where I had setup the mongoldb persistent data store following the tutorials.
这是我在envvars.txt上的设置
COMPOSER_CARD=admin@property-network
COMPOSER_NAMESPACES=never
COMPOSER_AUTHENTICATION=true
COMPOSER_MULTIUSER=true
COMPOSER_PROVIDERS='{
"github": {
"provider": "github",
"module": "passport-github",
"clientID": "xxxx",
"clientSecret": "xxxx
"authPath": "/auth/github",
"callbackURL": "/auth/github/callback",
"successRedirect": "/",
"failureRedirect": "/"
}
}'
COMPOSER_DATASOURCES='{
"db": {
"name": "db",
"connector": "mongodb",
"host": "mongo"
}
}'
我已将h1lfv1和admin @ xxx-network的连接配置文件更改为0.0.0.0,如此处所示。
https://github.com/hyperledger/composer/issues/1784
我在这里尝试了他的解决方案并且它不起作用。 谢谢!
答案 0 :(得分:0)
目前管理员重新注册存在问题(严格来说是REST服务器的问题),即使管理卡有证书(它忽略了它 - 但在0.18.x中修复)。
此外,由于Docker需要能够从持久性REST服务器容器中解析容器名称,因此您需要解决主机名解析问题 - 我们需要更改主机名以表示docker resolvable主机名,因为它们当前设置为localhost
值 - (示例显示了为了使用它启动REST服务器并使用标准而创建的新发布的' restadmin'卡'开发人员设置'作曲家环境):
创建REST Adninistrator身份restadmin和关联的业务网卡(稍后用于启动REST服务器)。
composer participant add -c admin@property-network -d '{"$class":"org.hyperledger.composer.system.NetworkAdmin", "participantId":"restadmin"}'
发出' restadmin'身份,映射到上述参与者:
composer identity issue -c admin@property-network -f restadmin.card -u restadmin -a "resource:org.hyperledger.composer.system.NetworkAdmin#restadmin"
导入并测试卡片:
composer card import -f restadmin.card
composer network ping -c restadmin@property-network
运行此单行程序可轻松执行分辨率更改:
sed -e 's/localhost:/orderer.example.com:/' -e 's/localhost:/peer0.org1.example.com:/' -e 's/localhost:/peer0.org1.example.com:/' -e 's/localhost:/ca.org1.example.com:/' < $HOME/.composer/cards/restadmin@property-network/connection.json > /tmp/connection.json && cp -p /tmp/connection.json $HOME/.composer/cards/restadmin@property-network
尝试使用卡-c restadmin@property-network
运行REST服务器 - 如果您正在运行此教程https://hyperledger.github.io/composer/latest/integrating/deploying-the-rest-server,则需要将此CARD NAME放在{{3}的顶部1}}然后确保您运行envvars.txt
以便在当前的shell环境中设置它&#39;
如果您希望从REST客户端发出更多身份(例如下面的source envvars.txt
- (目前为您提供#restadmin&#39;),您只需执行以下操作(首先两个也可以在Playground完成FYI):
作曲家参与者添加-c admin @ trade-network -d&#39; {&#34; $ class&#34;:&#34; org.acme.trading.Trader&#34;,&#34; tradeId& #34;:&#34; trader2&#34;,&#34; firstName&#34;:&#34; Ken&#34;,&#34; lastName&#34;:&#34; Coe&#34;}& #39;
作曲家身份问题-c admin @ trade-network -f kcoe.card -u kcoe -a&#34;资源:org.acme.trading.Trader #trader2&#34;
作曲家卡片导入-f kcoe.card#导入卡片商店
下一步 - 从持久性dockerized REST服务器内部获取docker主机名解析权的单行:
kcoe
码头运行 -d \ -e COMPOSER_CARD = $ {COMPOSER_CARD} \ -e COMPOSER_NAMESPACES = $ {COMPOSER_NAMESPACES} \ -e COMPOSER_AUTHENTICATION = $ {COMPOSER_AUTHENTICATION} \ -e COMPOSER_MULTIUSER = $ {COMPOSER_MULTIUSER} \ -e COMPOSER_PROVIDERS =&#34; $ {COMPOSER_PROVIDERS}&#34; \ -e COMPOSER_DATASOURCES =&#34; $ {COMPOSER_DATASOURCES}&#34; \ -v~ / .composer:/home/composer/.composer \ - 名字休息 --network composer_default \ -p 3000:3000 MYORG /我的作曲家静止服务器
从http://localhost:3000/explorer中的系统REST API - 转到sed -e 's/localhost:/orderer.example.com:/' -e 's/localhost:/peer0.org1.example.com:/' -e 's/localhost:/peer0.org1.example.com:/' -e 's/localhost:/ca.org1.example.com:/' < $HOME/.composer/cards/kcoe@trade-network/connection.json > /tmp/connection.json && cp -p /tmp/connection.json $HOME/.composer/cards/kcoe@trade-network
操作并导入卡文件POST /wallet/import
,其中(在这种情况下)卡名称设置为{{ 1}}然后点击“尝试一下”&#39;导入它 - 它应该返回一个成功的(204)响应。
通过系统REST API端点将其设置为电子钱包中的默认ID
(如果您需要将任何进一步导入的卡片设置为我们的REST客户端电子钱包中的默认卡片名称 - 请转到kcoe.card
方法并选择卡片名称并单击“试用它”。这将是默认卡)。
返回REST API客户端中的kcoe@trade-network
方法并展开POST /wallet/name/setDefault/
端点,然后点击“尝试”#39; 。它应该确认我们现在正在使用业务网络中的卡,并且应该能够与REST服务器交互并获得交易者列表(已添加到您的业务网络中)..