0

我在 Azure Kubernetes Service (AKS) 上的 Hyperledger Fabric consortium 上设置了 hyperledger Fabric 。我已经在网络上安装了这个链码。我已经在 azure-cli 上进行了测试peer invoke和命令。peer query它工作正常。现在我想使用这个 REST API 服务器与这个超级账本网络通信。帮我设置这个 REST 服务器。

编辑:我用以下方式编辑了这个配置文件。但没有运气。

---
name: "balance-transfer"
x-type: "hlfv1"
description: "Balance Transfer Network"
version: "1.0"
#
# The client section will be added on a per org basis see org1.yaml and org2.yaml
#
#client:
#
# [Optional]. But most apps would have this section so that channel objects can be constructed
# based on the content below. If an app is creating channels, then it likely will not need this
# section.
#
channels:
  mychannel:
    orderers:
      - orderer1.OrdererOrg
    peers:
      peer1.org1:
        endorsingPeer: true
        chaincodeQuery: true
        ledgerQuery: true
        eventSource: true

      peer2.org1:
        endorsingPeer: false
        chaincodeQuery: true
        ledgerQuery: true
        eventSource: false
    chaincodes:
      - mycc:v0
organizations:
  Org1:
    mspid: org1

    peers:
      - peer1.org1
      - peer2.org1
    certificateAuthorities:
      - ca-org1
    adminPrivateKey:
      path: ./artifacts/azure/peer/adminPrivateKey
    signedCert:
      path: ./artifacts/azure/peer/signcerts.pem
orderers:
  orderer1.OrdererOrg:
    url: grpcs://orderer1.XXXXXXXXXXXXXXXXX.eastus.aksapp.io:443
    grpcOptions:
      ssl-target-name-override: orderer1.XXXXXXXXXXXXXXXXX.eastus.aksapp.io

    tlsCACerts:
      path: ./artifacts/azure/orderer/ca.crt
peers:
  peer1.org1:
    url: grpcs://peer1.YYYYYYYYYYYYYY.eastus.aksapp.io:443

    grpcOptions:
      ssl-target-name-override: peer1.YYYYYYYYYYYYYY.eastus.aksapp.io
    tlsCACerts:
      path: ./artifacts/azure/peer/peer1_ca.crt

  peer2.org1:
    url: grpcs://peer2.TTTTTTTTTTTTT.eastus.aksapp.io:443
    eventUrl: grpcs://peer2.TTTTTTTTTTTTT.eastus.aksapp.io:443
    grpcOptions:
      ssl-target-name-override: peer2.VVVVVVVVVV.eastus.aksapp.io
    tlsCACerts:
      path: ./artifacts/azure/peer/peer2_ca.crt
certificateAuthorities:
  org1CA:
    url: https://ca.ZZZZZZZZZZZZZ.eastus.aksapp.io:443
    httpOptions:
      verify: false
    tlsCACerts:
      path: ./artifacts/azure/org/org1.pem
    registrar:
      - enrollId: admin
        enrollSecret: adminpw
    caName: ca.org1

org1 的连接配置文件

{
    "certificateAuthorities": {
        "org1CA": {
            "caName": "ca.org1",
            "tlsCACerts": {
                "pem": "pem1"
            },
            "url": "https://ca.m.eastus.aksapp.io:443"
        }
    },
    "client": {
        "connection": {
            "timeout": {
                "orderer": "300",
                "peer": {
                    "endorser": "300"
                }
            }
        },
        "organization": "org1"
    },
    "name": "org1",
    "organizations": {
        "org1": {
            "certificateAuthorities": [
                "org1CA"
            ],
            "mspid": "org1",
            "peers": [
                "peer1.org1",
                "peer2.org1"
            ]
        }
    },
    "peers": {
        "peer1.org1": {
            "grpcOptions": {
                "hostnameOverride": "peer1.x.eastus.aksapp.io",
                "ssl-target-name-override": "peer1.x.eastus.aksapp.io"
            },
            "tlsCACerts": {
                "pem": "pem"
            },
            "url": "grpcs://peer1.x.eastus.aksapp.io:443"
        },
        "peer2.org1": {
            "grpcOptions": {
                "hostnameOverride": "peer2.x.eastus.aksapp.io",
                "ssl-target-name-override": "peer2.x.eastus.aksapp.io"
            },
            "tlsCACerts": {
                "pem": "pem"
            },
            "url": "grpcs://peer2.x.eastus.aksapp.io:443"
        }
    },
    "version": "1.0.0",
    "wallet": "org1"
}

订购者的连接配置文件。

{
    "certificateAuthorities": {
        "OrdererOrgCA": {
            "caName": "ca.OrdererOrg",
            "tlsCACerts": {
                "pem": "pem"
            },
            "url": "https://ca.x.eastus.aksapp.io:443"
        }
    },
    "client": {
        "connection": {
            "timeout": {
                "orderer": "300",
                "peer": {
                    "endorser": "300"
                }
            }
        },
        "organization": "OrdererOrg"
    },
    "name": "OrdererOrg",
    "organizations": {
        "OrdererOrg": {
            "certificateAuthorities": [
                "OrdererOrgCA"
            ],
            "mspid": "OrdererOrg",
            "orderers": [
                "orderer1.OrdererOrg",
                "orderer2.OrdererOrg",
                "orderer3.OrdererOrg"
            ]
        }
    },
    "orderers": {
        "orderer1.OrdererOrg": {
            "grpcOptions": {
                "hostnameOverride": "orderer1.x.eastus.aksapp.io",
                "ssl-target-name-override": "orderer1.x.eastus.aksapp.io"
            },
            "tlsCACerts": {
                "pem": "pem"
            },
            "url": "grpcs://orderer1.x.eastus.aksapp.io:443"
        },
        "orderer2.OrdererOrg": {
            "grpcOptions": {
                "hostnameOverride": "orderer2.x.eastus.aksapp.io",
                "ssl-target-name-override": "orderer2.x.eastus.aksapp.io"
            },
            "tlsCACerts": {
                "pem": "pem"
            },
            "url": "grpcs://orderer2.x.eastus.aksapp.io:443"
        },
        "orderer3.OrdererOrg": {
            "grpcOptions": {
                "hostnameOverride": "orderer3.x.eastus.aksapp.io",
                "ssl-target-name-override": "orderer3.x.eastus.aksapp.io"
            },
            "tlsCACerts": {
                "pem": "pem"
            },
            "url": "grpcs://orderer3.x.eastus.aksapp.io:443"
        }
    },
    "version": "1.0.0",
    "wallet": "OrdererOrg"
}
4

1 回答 1

0

您可以将 REST API 服务器部署为 kubernetes 中的独立 pod(使用部署)。您将需要使用TARGET_NETWORK环境变量提供网络配置。Network configuration considerations可以按照服务器的 README 文件部分中的说明将此配置添加为文件。

所涉及的步骤是

  1. 为 API 服务器创建 docker 镜像并推送到 ACR 存储库。
  2. 创建部署 yaml 文件以部署此 docker 映像(使用网络环境变量)
  3. 在 kubernetes 中创建类型的服务,该服务LoadBalancer在 azure 中创建负载均衡器,允许进行 http 调用。

需要特别注意使用环境变量和文件连接到超级账本网络。

于 2020-07-03T14:29:19.837 回答