Hyperledger fabric 2.0.1 面临 4 个订购者的连接配置文件问题
Hyperledger fabric 2.0.1 facing issue with connection profile with 4 orderer
下面是我尝试使用 javascript 连接到 hyperledger fabric 网络 v2.0.1
的 organization-1 的连接配置文件。我指的是测试网络。当我尝试查询或调用时,我创建了 5 个有序的 2 组织,我遇到了如下错误。请帮我解决这个问题
(node:18278) UnhandledPromiseRejectionWarning: Error: Endorser must be connected
at Channel.addEndorser (/Users/nagaraj/gowork/src/github.com/hyperledger-fabric-2.0/javascript/node_modules/fabric-common/lib/Channel.js:259:10)
at buildChannel (/Users/nagaraj/gowork/src/github.com/hyperledger-fabric-2.0/javascript/node_modules/fabric-network/lib/impl/ccp/networkconfig.js:52:21)
at Function.loadFromConfig (/Users/nagaraj/gowork/src/github.com/hyperledger-fabric-2.0/javascript/node_modules/fabric-network/lib/impl/ccp/networkconfig.js:37:17)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async Gateway.connect (/Users/nagaraj/gowork/src/github.com/hyperledger-fabric-2.0/javascript/node_modules/fabric-network/lib/gateway.js:171:13)
at async main (/Users/nagaraj/gowork/src/github.com/hyperledger-fabric-2.0/javascript/invoke.js:32:9)
(node:18278) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict
(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
2020-05-14T07:43:29.964Z - 错误:[ServiceEndpoint]:错误:无法在 Committer-name 的截止日期前连接:orderer1.example.com:7050,url:grpcs:/ /本地主机:7050
2020-05-14T07:43:29.966Z - 错误:[ServiceEndpoint]: waitForReady - 无法连接到远程 gRPC 服务器 orderer1.example.com:7050 url:grpcs://localhost:7050 timeout:3000
2020-05-14T07:43:29.966Z - 错误:[DiscoveryService]: _buildOrderer[mychannel] - 由于错误无法连接到已发现的订购者 orderer1.example.com:7050:无法在提交者姓名的截止日期前连接: orderer1.example.com:7050, url:grpcs://localhost:7050
{
"name": "test-network-org1",
"version": "1.0.0",
"client": {
"organization": "Org1",
"connection": {
"timeout": {
"peer": {
"endorser": "300"
}
}
}
},
"channels": {
"mychannel": {
"orderers": [
"orderer.example.com",
"orderer1.example.com",
"orderer2.example.com",
"orderer3.example.com",
"orderer4.example.com"
],
"peers": [
"peer0.org1.example.com",
"peer0.org1.example.com"
]
}
},
"organizations": {
"Org1": {
"mspid": "Org1MSP",
"peers": [
"peer0.org1.example.com"
],
"certificateAuthorities": [
"ca.org1.example.com"
]
}
},
"orderers": {
"orderer.example.com": {
"url": "grpcs://localhost:7050",
"grpcOptions": {
"ssl-target-name-override": "orderer.example.com"
},
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n -----END CERTIFICATE-----\n"
}
},
"orderer1.example.com": {
"url": "grpcs://localhost:7082",
"grpcOptions": {
"ssl-target-name-override": "orderer1.example.com"
},
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n -----END CERTIFICATE-----\n"
}
},
"orderer2.example.com": {
"url": "grpcs://localhost:7084",
"grpcOptions": {
"ssl-target-name-override": "orderer2.example.com"
},
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n -----END CERTIFICATE-----\n"
}
},
"orderer3.example.com": {
"url": "grpcs://localhost:7086",
"grpcOptions": {
"ssl-target-name-override": "orderer3.example.com"
},
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n -----END CERTIFICATE-----\n"
}
},
"orderer4.example.com": {
"url": "grpcs://localhost:7088",
"grpcOptions": {
"ssl-target-name-override": "orderer4.example.com"
},
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n -----END CERTIFICATE-----\n"
}
}
},
"peers": {
"peer0.org1.example.com": {
"url": "grpcs://localhost:7051",
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n-----END CERTIFICATE-----\n"
},
"grpcOptions": {
"ssl-target-name-override": "peer0.org1.example.com",
"hostnameOverride": "peer0.org1.example.com"
}
},
"peer1.org1.example.com": {
"url": "grpcs://localhost:7062",
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n-----END CERTIFICATE-----\n"
},
"grpcOptions": {
"ssl-target-name-override": "peer1.org1.example.com",
"hostnameOverride": "peer1.org1.example.com"
}
}
},
"certificateAuthorities": {
"ca.org1.example.com": {
"url": "https://localhost:7054",
"caName": "ca-org1",
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n-----END CERTIFICATE-----\n"
},
"httpOptions": {
"verify": false
}
}
}
}
背书属性未正确定义,通道块下的对等点已定义wrong.That这就是它向背书人抛出突出显示更改的原因issues.Add。
"channels": {
"mychannel": {
"orderers": [
"orderer.example.com",
"orderer1.example.com",
"orderer2.example.com",
"orderer3.example.com",
"orderer4.example.com"
],
"peers": [
"peer0.org1.example.com",
"peer0.org1.example.com" //this should be "peer1.org1.example.com"
]
}
},
并且连接配置文件还应包括 endorsingPeer 属性 和其他详细信息,如下所示。
1.4 Fabric Network 示例网络连接配置文件
name: "Network"
version: "1.0"
channels:
mychannel:
orderers:
- orderer.example.com
peers:
peer0.org1.example.com:
endorsingPeer: true
chaincodeQuery: true
ledgerQuery: true
eventSource: true
peer0.org2.example.com:
endorsingPeer: true
chaincodeQuery: false
ledgerQuery: true
eventSource: false
organizations:
Org1:
mspid: Org1MSP
peers:
- peer0.org1.example.com
certificateAuthorities:
- ca-org1
adminPrivateKey:
path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/keystore/9022d671ceedbb24af3ea69b5a8136cc64203df6b9920e26f48123fcfcb1d2e9_sk
signedCert:
path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/signcerts/Admin@org1.example.com-cert.pem
Org2:
mspid: Org2MSP
peers:
- peer0.org2.example.com
certificateAuthorities:
- ca-org2
adminPrivateKey:
path: test/fixtures/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/keystore/5a983ddcbefe52a7f9b8ee5b85a590c3e3a43c4ccd70c7795bec504e7f74848d_sk
signedCert:
path: test/fixtures/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/signcerts/Admin@org2.example.com-cert.pem
orderers:
orderer.example.com:
url: grpcs://localhost:7050
grpcOptions:
ssl-target-name-override: orderer.example.com
grpc-max-send-message-length: 4194304
tlsCACerts:
path: test/fixtures/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tlscacerts/example.com-cert.pem
peers:
peer0.org1.example.com:
url: grpcs://localhost:7051
grpcOptions:
ssl-target-name-override: peer0.org1.example.com
grpc.keepalive_time_ms: 600000
tlsCACerts:
path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tlscacerts/org1.example.com-cert.pem
peer0.org2.example.com:
url: grpcs://localhost:8051
grpcOptions:
ssl-target-name-override: peer0.org2.example.com
tlsCACerts:
path: test/fixtures/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tlscacerts/org2.example.com-cert.pem
certificateAuthorities:
ca-org1:
url: https://localhost:7054
httpOptions:
verify: false
tlsCACerts:
path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/ca/org1.example.com-cert.pem
registrar:
- enrollId: admin
enrollSecret: adminpw
caName: caorg1
ca-org2:
url: https://localhost:8054
httpOptions:
verify: false
tlsCACerts:
path: test/fixtures/channel/crypto-config/peerOrganizations/org2.example.com/ca/org2.example.com-cert.pem
registrar:
- enrollId: admin
enrollSecret: adminpw
caName: caorg2
下面是我尝试使用 javascript 连接到 hyperledger fabric 网络 v2.0.1
的 organization-1 的连接配置文件。我指的是测试网络。当我尝试查询或调用时,我创建了 5 个有序的 2 组织,我遇到了如下错误。请帮我解决这个问题
(node:18278) UnhandledPromiseRejectionWarning: Error: Endorser must be connected at Channel.addEndorser (/Users/nagaraj/gowork/src/github.com/hyperledger-fabric-2.0/javascript/node_modules/fabric-common/lib/Channel.js:259:10) at buildChannel (/Users/nagaraj/gowork/src/github.com/hyperledger-fabric-2.0/javascript/node_modules/fabric-network/lib/impl/ccp/networkconfig.js:52:21) at Function.loadFromConfig (/Users/nagaraj/gowork/src/github.com/hyperledger-fabric-2.0/javascript/node_modules/fabric-network/lib/impl/ccp/networkconfig.js:37:17) at processTicksAndRejections (internal/process/task_queues.js:97:5) at async Gateway.connect (/Users/nagaraj/gowork/src/github.com/hyperledger-fabric-2.0/javascript/node_modules/fabric-network/lib/gateway.js:171:13) at async main (/Users/nagaraj/gowork/src/github.com/hyperledger-fabric-2.0/javascript/invoke.js:32:9) (node:18278) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag
--unhandled-rejections=strict
(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
2020-05-14T07:43:29.964Z - 错误:[ServiceEndpoint]:错误:无法在 Committer-name 的截止日期前连接:orderer1.example.com:7050,url:grpcs:/ /本地主机:7050 2020-05-14T07:43:29.966Z - 错误:[ServiceEndpoint]: waitForReady - 无法连接到远程 gRPC 服务器 orderer1.example.com:7050 url:grpcs://localhost:7050 timeout:3000 2020-05-14T07:43:29.966Z - 错误:[DiscoveryService]: _buildOrderer[mychannel] - 由于错误无法连接到已发现的订购者 orderer1.example.com:7050:无法在提交者姓名的截止日期前连接: orderer1.example.com:7050, url:grpcs://localhost:7050
{
"name": "test-network-org1",
"version": "1.0.0",
"client": {
"organization": "Org1",
"connection": {
"timeout": {
"peer": {
"endorser": "300"
}
}
}
},
"channels": {
"mychannel": {
"orderers": [
"orderer.example.com",
"orderer1.example.com",
"orderer2.example.com",
"orderer3.example.com",
"orderer4.example.com"
],
"peers": [
"peer0.org1.example.com",
"peer0.org1.example.com"
]
}
},
"organizations": {
"Org1": {
"mspid": "Org1MSP",
"peers": [
"peer0.org1.example.com"
],
"certificateAuthorities": [
"ca.org1.example.com"
]
}
},
"orderers": {
"orderer.example.com": {
"url": "grpcs://localhost:7050",
"grpcOptions": {
"ssl-target-name-override": "orderer.example.com"
},
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n -----END CERTIFICATE-----\n"
}
},
"orderer1.example.com": {
"url": "grpcs://localhost:7082",
"grpcOptions": {
"ssl-target-name-override": "orderer1.example.com"
},
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n -----END CERTIFICATE-----\n"
}
},
"orderer2.example.com": {
"url": "grpcs://localhost:7084",
"grpcOptions": {
"ssl-target-name-override": "orderer2.example.com"
},
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n -----END CERTIFICATE-----\n"
}
},
"orderer3.example.com": {
"url": "grpcs://localhost:7086",
"grpcOptions": {
"ssl-target-name-override": "orderer3.example.com"
},
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n -----END CERTIFICATE-----\n"
}
},
"orderer4.example.com": {
"url": "grpcs://localhost:7088",
"grpcOptions": {
"ssl-target-name-override": "orderer4.example.com"
},
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n -----END CERTIFICATE-----\n"
}
}
},
"peers": {
"peer0.org1.example.com": {
"url": "grpcs://localhost:7051",
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n-----END CERTIFICATE-----\n"
},
"grpcOptions": {
"ssl-target-name-override": "peer0.org1.example.com",
"hostnameOverride": "peer0.org1.example.com"
}
},
"peer1.org1.example.com": {
"url": "grpcs://localhost:7062",
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n-----END CERTIFICATE-----\n"
},
"grpcOptions": {
"ssl-target-name-override": "peer1.org1.example.com",
"hostnameOverride": "peer1.org1.example.com"
}
}
},
"certificateAuthorities": {
"ca.org1.example.com": {
"url": "https://localhost:7054",
"caName": "ca-org1",
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n-----END CERTIFICATE-----\n"
},
"httpOptions": {
"verify": false
}
}
}
}
背书属性未正确定义,通道块下的对等点已定义wrong.That这就是它向背书人抛出突出显示更改的原因issues.Add。
"channels": {
"mychannel": {
"orderers": [
"orderer.example.com",
"orderer1.example.com",
"orderer2.example.com",
"orderer3.example.com",
"orderer4.example.com"
],
"peers": [
"peer0.org1.example.com",
"peer0.org1.example.com" //this should be "peer1.org1.example.com"
]
}
},
并且连接配置文件还应包括 endorsingPeer 属性 和其他详细信息,如下所示。
1.4 Fabric Network 示例网络连接配置文件
name: "Network"
version: "1.0"
channels:
mychannel:
orderers:
- orderer.example.com
peers:
peer0.org1.example.com:
endorsingPeer: true
chaincodeQuery: true
ledgerQuery: true
eventSource: true
peer0.org2.example.com:
endorsingPeer: true
chaincodeQuery: false
ledgerQuery: true
eventSource: false
organizations:
Org1:
mspid: Org1MSP
peers:
- peer0.org1.example.com
certificateAuthorities:
- ca-org1
adminPrivateKey:
path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/keystore/9022d671ceedbb24af3ea69b5a8136cc64203df6b9920e26f48123fcfcb1d2e9_sk
signedCert:
path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/signcerts/Admin@org1.example.com-cert.pem
Org2:
mspid: Org2MSP
peers:
- peer0.org2.example.com
certificateAuthorities:
- ca-org2
adminPrivateKey:
path: test/fixtures/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/keystore/5a983ddcbefe52a7f9b8ee5b85a590c3e3a43c4ccd70c7795bec504e7f74848d_sk
signedCert:
path: test/fixtures/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/signcerts/Admin@org2.example.com-cert.pem
orderers:
orderer.example.com:
url: grpcs://localhost:7050
grpcOptions:
ssl-target-name-override: orderer.example.com
grpc-max-send-message-length: 4194304
tlsCACerts:
path: test/fixtures/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tlscacerts/example.com-cert.pem
peers:
peer0.org1.example.com:
url: grpcs://localhost:7051
grpcOptions:
ssl-target-name-override: peer0.org1.example.com
grpc.keepalive_time_ms: 600000
tlsCACerts:
path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tlscacerts/org1.example.com-cert.pem
peer0.org2.example.com:
url: grpcs://localhost:8051
grpcOptions:
ssl-target-name-override: peer0.org2.example.com
tlsCACerts:
path: test/fixtures/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tlscacerts/org2.example.com-cert.pem
certificateAuthorities:
ca-org1:
url: https://localhost:7054
httpOptions:
verify: false
tlsCACerts:
path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/ca/org1.example.com-cert.pem
registrar:
- enrollId: admin
enrollSecret: adminpw
caName: caorg1
ca-org2:
url: https://localhost:8054
httpOptions:
verify: false
tlsCACerts:
path: test/fixtures/channel/crypto-config/peerOrganizations/org2.example.com/ca/org2.example.com-cert.pem
registrar:
- enrollId: admin
enrollSecret: adminpw
caName: caorg2