docker中的composer-playground不能连接到hlf v1

我在MacOS上的docker中运行hyperledger结构V1。 我正在Docker容器中启动Composer-playground,但未能将其连接到Fabric。 产生的错误如下:

0|composer | PlaygroundAPI :createServer() > 8080 0|composer | ConnectionProfileManager :constructor() Created a new ConnectionProfileManager {"fs":{"constants":{"O_RDONLY":0,"O_WRONLY":1,"O_RDWR":2,"S_IFMT":61440,"S_IFREG":32768,"S_IFDIR":16384,"S_IFCHR":8192,"S_IFBLK":24576,"S_IFIFO":4096,"S_IFLNK":40960,"S_IFSOCK":49152,"O_CREAT":64,"O_EXCL":128,"O_NOCTTY":256,"O_TRUNC":512,"O_APPEND":1024,"O_DIRECTORY":65536,"O_NOATIME":262144,"O_NOFOLLOW":131072,"O_SYNC":1052672,"O_DIRECT":16384,"O_NONBLOCK":2048,"S_IRWXU":448,"S_IRUSR":256,"S_IWUSR":128,"S_IXUSR":64,"S_IRWXG":56,"S_IRGRP":32,"S_IWGRP":16,"S_IXGRP":8,"S_IRWXO":7,"S_IROTH":4,"S_IWOTH":2,"S_IXOTH":1,"F_OK":0,"R_OK":4,"W_OK":2,"X_OK":1},"F_OK":0,"R_OK":4,"W_OK":2,"X_OK":1}} 0|composer | PlaygroundAPI :createServer() Playground API started on port 8080 0|composer | PlaygroundAPI :createServer() < 0|composer | Composer :main() > 0|composer | PlaygroundAPI :createServer() Client with ID 'xu14_MFwFdP2dVzEAAAA' on host '::ffff:172.18.0.1' connected 0|composer | ConnectorServer :constructor() > {"fs":{"constants":{"O_RDONLY":0,"O_WRONLY":1,"O_RDWR":2,"S_IFMT":61440,"S_IFREG":32768,"S_IFDIR":16384,"S_IFCHR":8192,"S_IFBLK":24576,"S_IFIFO":4096,"S_IFLNK":40960,"S_IFSOCK":49152,"O_CREAT":64,"O_EXCL":128,"O_NOCTTY":256,"O_TRUNC":512,"O_APPEND":1024,"O_DIRECTORY":65536,"O_NOATIME":262144,"O_NOFOLLOW":131072,"O_SYNC":1052672,"O_DIRECT":16384,"O_NONBLOCK":2048,"S_IRWXU":448,"S_IRUSR":256,"S_IWUSR":128,"S_IXUSR":64,"S_IRWXG":56,"S_IRGRP":32,"S_IWGRP":16,"S_IXGRP":8,"S_IRWXO":7,"S_IROTH":4,"S_IWOTH":2,"S_IXOTH":1,"F_OK":0,"R_OK":4,"W_OK":2,"X_OK":1},"F_OK":0,"R_OK":4,"W_OK":2,"X_OK":1}}, {}, [object Object] 0|composer | ConnectorServer :constructor() < 0|composer | PlaygroundAPI :createServer() Client with ID 'Lg2HwkkQdPng9PlXAAAB' on host '::ffff:172.18.0.1' connected 0|composer | ConnectorServer :constructor() > {"fs":{"constants":{"O_RDONLY":0,"O_WRONLY":1,"O_RDWR":2,"S_IFMT":61440,"S_IFREG":32768,"S_IFDIR":16384,"S_IFCHR":8192,"S_IFBLK":24576,"S_IFIFO":4096,"S_IFLNK":40960,"S_IFSOCK":49152,"O_CREAT":64,"O_EXCL":128,"O_NOCTTY":256,"O_TRUNC":512,"O_APPEND":1024,"O_DIRECTORY":65536,"O_NOATIME":262144,"O_NOFOLLOW":131072,"O_SYNC":1052672,"O_DIRECT":16384,"O_NONBLOCK":2048,"S_IRWXU":448,"S_IRUSR":256,"S_IWUSR":128,"S_IXUSR":64,"S_IRWXG":56,"S_IRGRP":32,"S_IWGRP":16,"S_IXGRP":8,"S_IRWXO":7,"S_IROTH":4,"S_IWOTH":2,"S_IXOTH":1,"F_OK":0,"R_OK":4,"W_OK":2,"X_OK":1},"F_OK":0,"R_OK":4,"W_OK":2,"X_OK":1}}, {}, [object Object] 0|composer | ConnectorServer :constructor() < 0|composer | ConnectorServer :connectionManagerConnect() > hlfv1, org.acme.biznet, {"name":"hlfv1","description":"A description for a V1 Profile","type":"hlfv1","orderers":[{"url":"grpc://orderer0:7050","cert":"","hostnameOverride":""}],"channel":"mychannel","mspID":"Org1MSP","ca":"http://ca_peerOrg1:7054","peers":[{"requestURL":"grpc://peer0:7051","eventURL":"grpc://peer0:7053","cert":"","hostnameOverride":""},{"requestURL":"grpc://peer1:7056","eventURL":"grpc://peer1:7058","cert":"","hostnameOverride":""}],"keyValStore":"/home/ubuntu/.hfc-key-store","deployWaitTime":300,"invokeWaitTime":30} 0|composer | FSConnectionProfileStore :load() Failed to loaded connection profile hlfv1 {"stack":["{Error}ENOENT: no such file or directory, open '/home/composer/.composer-connection-profiles/hlfv1/connection.json' Error: ENOENT: no such file or directory, open '/home/composer/.composer-connection-profiles/hlfv1/connection.json'"," at Error (native)"]} 0|composer | FSConnectionProfileStore :save() Saved connection profile hlfv1 0|composer | ConnectionProfileManager :connect() Connecting using hlfv1 org.acme.biznet 0|composer | FSConnectionProfileStore :load() Loaded connection profile hlfv1 { 0|composer | "name": "hlfv1", 0|composer | "description": "A description for a V1 Profile", 0|composer | "type": "hlfv1", 0|composer | "orderers": [ 0|composer | { 0|composer | "url": "grpc://orderer0:7050", 0|composer | "cert": "", 0|composer | "hostnameOverride": "" 0|composer | } 0|composer | ], 0|composer | "channel": "mychannel", 0|composer | "mspID": "Org1MSP", 0|composer | "ca": "http://ca_peerOrg1:7054", 0|composer | "peers": [ 0|composer | { 0|composer | "requestURL": "grpc://peer0:7051", 0|composer | "eventURL": "grpc://peer0:7053", 0|composer | "cert": "", 0|composer | "hostnameOverride": "" 0|composer | }, 0|composer | { 0|composer | "requestURL": "grpc://peer1:7056", 0|composer | "eventURL": "grpc://peer1:7058", 0|composer | "cert": "", 0|composer | "hostnameOverride": "" 0|composer | } 0|composer | ], 0|composer | "keyValStore": "/home/ubuntu/.hfc-key-store", 0|composer | "deployWaitTime": 300, 0|composer | "invokeWaitTime": 30 0|composer | } ..... 0|composer | Error: Connect Failed 0|composer | at ClientDuplexStream._emitStatusIfDone (/usr/local/lib/node_modules/composer-playground/node_modules/fabric-client/node_modules/grpc/src/node/src/client.js:201:19) 0|composer | at ClientDuplexStream._readsDone (/usr/local/lib/node_modules/composer-playground/node_modules/fabric-client/node_modules/grpc/src/node/src/client.js:169:8) 0|composer | at readCallback (/usr/local/lib/node_modules/composer-playground/node_modules/fabric-client/node_modules/grpc/src/node/src/client.js:229:12) PM2 | App [composer-playground] with id [0] and pid [22], exited with code [1] via signal [SIGINT] 

HLFV1已经开始使用composer-sample-applications-hlfv1 / packages / getting-started / scripts中的脚本

composer php操场已经启动:

 docker run --network hlfv1_default --name composer-playground --publish 8080:8080 --detach hyperledger/composer-playground:latest 

试图从composer-playground UI使用的连接configuration文件是:

 { "name": "hlfv1", "description": "A description for a V1 Profile", "type": "hlfv1", "orderers": [ { "url": "grpc://orderer0:7050", "cert": "", "hostnameOverride": "" } ], "channel": "mychannel", "mspID": "Org1MSP", "ca": <removed because of stackoverflow, see in the error trace>, "peers": [ { "requestURL": "grpc://peer0:7051", "eventURL": "grpc://peer0:7053", "cert": "", "hostnameOverride": "" }, { "requestURL": "grpc://peer1:7056", "eventURL": "grpc://peer1:7058", "cert": "", "hostnameOverride": "" } ], "keyValStore": "/home/ubuntu/.hfc-key-store", "deployWaitTime": 300, "invokeWaitTime": 30 } 

并且用于连接的身份是admin与其关联的密码。

“docker ps”给出:

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bbdae13a9be5 hyperledger/composer-playground:latest "pm2-docker compos..." 29 hours ago Up 31 minutes 0.0.0.0:8080->8080/tcp composer-playground 19ae93e5746c hyperledger/fabric-peer:x86_64-1.0.0-alpha "peer node start -..." 30 hours ago Up About an hour 0.0.0.0:7056->7051/tcp, 0.0.0.0:7058->7053/tcp peer1 50afdba6d769 hyperledger/fabric-peer:x86_64-1.0.0-alpha "peer node start -..." 30 hours ago Up About an hour 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0 bb7ece8cab53 hyperledger/fabric-orderer:x86_64-1.0.0-alpha "orderer" 30 hours ago Up About an hour 0.0.0.0:7050->7050/tcp orderer0 c409909e93cc hyperledger/fabric-ca:x86_64-1.0.0-alpha "sh -c 'fabric-ca-..." 30 hours ago Up About an hour 0.0.0.0:7054->7054/tcp ca_peerOrg1 S 

我认为ENOENT是正常的,但我不明白为什么composer php实例无法连接到Fabric。

我错过了什么?

您可以使用all-in-one安装程序(启动HLF v1和Playground并将它们连接在一起):curl -sSL hyperledger.github.io/composer/install-hlfv1.sh | 庆典

或者,您可以按照Composer的安装说明单独安装HLF v1和Playground,然后创build连接configuration文件。