postgresql - 在 hyperledger fabric 2.2.0 中集成 hyperledger explorer,在注册客户端时遇到问题无法创建钱包
问题描述
使用 BAF,我在 kubernetes 集群中设置了带有 6 个 orgs 和 1 个 orderer 的结构 2.2.0。每个组织都有一个同行。现在我正在尝试通过为 explorer 和 postgresql 创建单独的 pod 将 Explorer v1.1.2 与 nodejs v12.16.0 apline3.11、postgresql v10 集成。我在启动资源管理器应用程序(main.js)时遇到以下问题
[2020-12-10T01:44:56.894] [DEBUG] main - false ssl-certs /opt/explorer/ssl-certs
[2020-12-10T01:44:56.995] [INFO] PgService - SSL to Postgresql disabled
[2020-12-10T01:44:56.995] [INFO] PgService - connecting to Postgresql postgres://hppoc:******@explorerdb:5432/fabricexplorer
[2020-12-10T01:44:57.621] [DEBUG] Platform - ******* Initialization started for hyperledger fabric platform ******
[2020-12-10T01:44:57.622] [DEBUG] Platform - ******* Initialization started for hyperledger fabric platform ******, {
Bankema: { name: 'Bankema', profile: './connection-profile/Bankema.json' }
}
[2020-12-10T01:44:57.622] [DEBUG] Platform - Setting admin organization enrolment files
[2020-12-10T01:44:57.622] [INFO] Platform - client_configs.name Bankema client_configs.profile ./connection-profile/Bankema.json
[2020-12-10T01:44:57.622] [DEBUG] Platform - Creating client [Bankema] >> { name: 'Bankema', profile: './connection-profile/Bankema.json' }
[2020-12-10T01:44:57.623] [DEBUG] User - User : admin
[2020-12-10T01:44:57.646] [INFO] Platform - Already registered : admin
[2020-12-10T01:44:57.647] [DEBUG] FabricUtils - ************ Initializing fabric client for [Bankema]************
[2020-12-10T01:44:57.647] [DEBUG] FabricClient - Client configuration [Bankema] ... this.client_config { name: 'Bankema', profile: './connection-profile/Bankema.json' }
[2020-12-10T01:44:57.648] [INFO] FabricConfig - config.client.tlsEnable true
[2020-12-10T01:44:57.648] [DEBUG] FabricGateway - LOADING CONFIGURATION [OBJECT OBJECT]
[2020-12-10T01:44:57.648] [INFO] FabricConfig - FabricConfig, this.config.channels bankemachannel
[2020-12-10T01:44:57.756] [INFO] FabricGateway - enrollUserIdentity: userName : admin
[2020-12-10T01:44:57.923] **[ERROR] FabricGateway - TypeError: org.peers is not iterable
[2020-12-10T01:44:57.924] [ERROR] FabricClient - ExplorerError: [
'Failed to create wallet, please check the configuration, and valid file paths'
]
at FabricGateway.initialize (/opt/explorer/app/platform/fabric/gateway/FabricGateway.js:135:10)
[2020-12-10T01:44:57.925] [ERROR]** main - <<<<<<<<<<<<<<<<<<<<<<<<<< Explorer Error >>>>>>>>>>>>>>>>>>>>>
[2020-12-10T01:44:57.925] [ERROR] main - Error : [ 'Invalid platform configuration, Please check the log' ]
[2020-12-10T01:44:59.926] [INFO] main - Received kill signal, shutting down gracefully
[2020-12-10T01:44:59.927] [INFO] main - Closed out connections
谁能建议我如何解决这个问题?这是我正在使用的连接配置文件
`{
"name": "Bankema",
"version": "1.0.0",
"client": {
"tlsEnable": true,
"caCredential": {
"id": "bankema-admin",
"password": "bankema-adminpw"
},
"adminCredential": {
"id": "exploreradmin",
"password": "exploreradminpw"
},
"enableAuthentication": true,
"organization": "bankema",
"channel": ["bankemachannel"]
},
"channels": {
"bankemachannel": {
"peers": {
"peer0.bankema-net": {
"ledgerQuery": true
},
"peer0.vendor-net": {
"ledgerQuery": true
},
"peer0.factor-net": {
"ledgerQuery": true
},
"peer0.corg-net": {
"ledgerQuery": true
},
"peer0.insurer-net": {
"ledgerQuery": true
},
"peer0.investor3-net": {
"ledgerQuery": true
}
},
"orderers": {
"orderer1.ordorg-net": {}
},
"connection": {
"timeout": {
"peer": {
"endorser": "6000",
"eventHub": "6000",
"eventReg": "6000"
}
}
}
}
},
"organizations": {
"bankema": {
"mspid": "bankemaMSP",
"peers": {
"peer0.bankema-net": {}
},
"certificateAuthorities": {
"ca.bankema-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/bankema-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/bankema-net/msp/signcerts/server.crt"
}
},
"bankemaMSP": {
"mspid": "bankemaMSP",
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/ordererOrganizations/ordorg-net/orderers/orderer1.ordorg-net/msp/keystore/server.key"
}
},
"vendor": {
"mspid": "vendorMSP",
"peers": {
"peer0.vendor-net": {}
},
"certificateAuthorities": {
"ca.vendor-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/vendor-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/vendor-net/msp/signcerts/server.crt"
}
},
"vendorMSP": {
"mspid": "vendorMSP",
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/ordererOrganizations/ordorg-net/orderers/orderer1.ordorg-net/msp/keystore/server.key"
}
},
"factor": {
"mspid": "factorMSP",
"peers": {
"peer0.factor-net": {}
},
"certificateAuthorities": {
"ca.factor-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/factor-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/factor-net/msp/signcerts/server.crt"
}
},
"factorMSP": {
"mspid": "factorMSP",
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/ordererOrganizations/ordorg-net/orderers/orderer1.ordorg-net/msp/keystore/server.key"
}
},
"corg": {
"mspid": "corgMSP",
"peers": {
"peer0.corg-net": {}
},
"certificateAuthorities": {
"ca.corg-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/corg-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/corg-net/msp/signcerts/server.crt"
}
},
"corgMSP": {
"mspid": "corgMSP",
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/ordererOrganizations/ordorg-net/orderers/orderer1.ordorg-net/msp/keystore/server.key"
}
},
"insurer": {
"mspid": "insurerMSP",
"peers": {
"peer0.insurer-net": {}
},
"certificateAuthorities": {
"ca.insurer-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/insurer-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/insurer-net/msp/signcerts/server.crt"
}
},
"insurerMSP": {
"mspid": "insurerMSP",
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/ordererOrganizations/ordorg-net/orderers/orderer1.ordorg-net/msp/keystore/server.key"
}
},
"investor3": {
"mspid": "investor3MSP",
"peers": {
"peer0.investor3-net": {}
},
"certificateAuthorities": {
"ca.investor3-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/investor3-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/investor3-net/msp/signcerts/server.crt"
}
},
"investor3MSP": {
"mspid": "investor3MSP",
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/ordererOrganizations/ordorg-net/orderers/orderer1.ordorg-net/msp/keystore/server.key"
}
}
},
"peers": {
"peer0.bankema-net": {
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/bankema-net/msp/tlscacerts/tlsca.crt"
},
"url": "grpcs://peer0.bankema-net:7051",
"grpcOptions": {
"ssl-target-name-override": "peer0.bankema-net"
}
},
"peer0.vendor-net": {
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/vendor-net/msp/tlscacerts/tlsca.crt"
},
"url": "grpcs://peer0.vendor-net:7051",
"grpcOptions": {
"ssl-target-name-override": "peer0.vendor-net"
}
},
"peer0.factor-net": {
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/factor-net/msp/tlscacerts/tlsca.crt"
},
"url": "grpcs://peer0.factor-net:7051",
"grpcOptions": {
"ssl-target-name-override": "peer0.factor-net"
}
},
"peer0.corg-net": {
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/corg-net/msp/tlscacerts/tlsca.crt"
},
"url": "grpcs://peer0.corg-net:7051",
"grpcOptions": {
"ssl-target-name-override": "peer0.corg-net"
}
},
"peer0.insurer-net": {
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/insurer-net/msp/tlscacerts/tlsca.crt"
},
"url": "grpcs://peer0.insurer-net:7051",
"grpcOptions": {
"ssl-target-name-override": "peer0.insurer-net"
}
},
"peer0.investor3-net": {
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/investor3-net/msp/tlscacerts/tlsca.crt"
},
"url": "grpcs://peer0.investor3-net:7051",
"grpcOptions": {
"ssl-target-name-override": "peer0.investor3-net"
}
}
},
"orderers": {
"orderer1.ordorg-net": {
"url": "grpcs://orderer1.ordorg-net:7050",
"grpcOptions": {
"ssl-target-name-override": "orderer1.ordorg-net"
},
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/ordererOrganizations/ordorg-net/orderers/orderer1.ordorg-net/tls/ca.crt"
}
}
},
"certificateAuthorities": {
"ca.bankema-net": {
"url": "https://ca.bankema-net:7054",
"httpOptions": {
"verify": false
},
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/bankema-net/ca/ca.bankema-net-cert.pem"
},
"registrar": {
"enrollId": "bankema-admin",
"enrollSecret": "bankema-adminpw"
},
"caName": "ca.bankema-net"
},
"ca.vendor-net": {
"url": "https://ca.vendor-net:7054",
"httpOptions": {
"verify": false
},
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/vendor-net/ca/ca.vendor-net-cert.pem"
},
"caName": "ca.vendor-net"
},
"ca.factor-net": {
"url": "https://ca.factor-net:7054",
"httpOptions": {
"verify": false
},
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/factor-net/ca/ca.factor-net-cert.pem"
},
"caName": "ca.factor-net"
},
"ca.corg-net": {
"url": "https://ca.corg-net:7054",
"httpOptions": {
"verify": false
},
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/corg-net/ca/ca.corg-net-cert.pem"
},
"caName": "ca.corg-net"
},
"ca.insurer-net": {
"url": "https://ca.insurer-net:7054",
"httpOptions": {
"verify": false
},
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/insurer-net/ca/ca.insurer-net-cert.pem"
},
"caName": "ca.insurer-net"
},
"ca.investor3-net": {
"url": "https://ca.investor3-net:7054",
"httpOptions": {
"verify": false
},
"tlsCACerts": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/investor3-net/ca/ca.investor3-net-cert.pem"
},
"caName": "ca.investor3-net"
}
},
"configtxgenToolPath": "/mnt/fabric/fabric-samples/bin",
"license": "Apache-2.0"
}
解决方案
组织似乎错了。peers
密钥是必需的。
参考:结构/连接配置文件
- 银行卡MSP
- 供应商MSP
- 因子MSP
- 科格MSP
- 保险公司MSP
- 投资者3MSP
上述部分的意图是什么?如果看到mspid有同一个组织,好像不是一个单独的组织,看来需要删除了。
尝试如下修改,参见连接配置文件示例
{
~~~
"organizations": {
"bankema": {
"mspid": "bankemaMSP",
"peers": {
"peer0.bankema-net": {}
},
"certificateAuthorities": {
"ca.bankema-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/bankema-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/bankema-net/msp/signcerts/server.crt"
}
},
"vendor": {
"mspid": "vendorMSP",
"peers": {
"peer0.vendor-net": {}
},
"certificateAuthorities": {
"ca.vendor-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/vendor-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/vendor-net/msp/signcerts/server.crt"
}
},
"factor": {
"mspid": "factorMSP",
"peers": {
"peer0.factor-net": {}
},
"certificateAuthorities": {
"ca.factor-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/factor-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/factor-net/msp/signcerts/server.crt"
}
},
"corg": {
"mspid": "corgMSP",
"peers": {
"peer0.corg-net": {}
},
"certificateAuthorities": {
"ca.corg-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/corg-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/corg-net/msp/signcerts/server.crt"
}
},
"insurer": {
"mspid": "insurerMSP",
"peers": {
"peer0.insurer-net": {}
},
"certificateAuthorities": {
"ca.insurer-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/insurer-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/insurer-net/msp/signcerts/server.crt"
}
},
"investor3": {
"mspid": "investor3MSP",
"peers": {
"peer0.investor3-net": {}
},
"certificateAuthorities": {
"ca.investor3-net": {}
},
"fullpath": true,
"adminPrivateKey": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/investor3-net/msp/keystore/server.key"
},
"signedCert": {
"path": "/mnt/fabric/crypto-config/peerOrganizations/investor3-net/msp/signcerts/server.crt"
}
}
}
~~~
}
推荐阅读
- image-processing - How to fill the texture within a reactangle and fill (0.0,0.0,0.0) outside reactangle in a destination texture.?
- html5-canvas - In html canvas, how can I make "new component" an unicode font instead of image?
- rest - Agora cloud recording not starting
- jestjs - 方法“模拟”意味着在 1 个节点上运行。找到了 0 个。笑话/酶
- spring-boot - 将 Spring Boot Security SAML 与 Azure AD Gallery 应用程序集成为多租户
- ubuntu-18.04 - 无法在 Windows 10 上的 WSL2(Linux 2 的 Windows 子系统)内实例化 qemu-kvm VM
- android - 为此在 Android 5.1.1 中出现错误 - drawable.setAlpha(127);
- c++ - 使用字符串到对象的插入重载
- azure-aks - 如何在 Azure Kubernetes 服务 (AKS) 上升级 Hyperledger Fabric 联盟中的链代码
- django - 无法在我用于 Nginx 和 Supervisor 的部署时的 Django 应用聊天中连接到 WebSocket Nginx