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