Update Blockchain Automation Framework Configure file 之 R3 Corda Configure file简介

1. R3 Corda 简介

      Corda_networkyaml

2. R3 Corda Configure file

       network.yaml文件是用于建立Corda DLT网络的基本配置文件。该文件包含了基础结构和网络规范相关的所有信息。

3. network.yaml文件结构

network.yaml文件架构

设置Corda DLT网络之前,需要使用所需的规格更新此文件。repo路径中提供了一个示例配置文件:platforms/r3-corda/configuration/samples/network-cordav2.yaml

为了更好的理解,这些配置需要按以下内容进行分组。

  • type
  • version
  • frontend
  • env
  • docker
  • orderers
  • organizations
样本配置文件的快照
../_images/NetworkYamlCorda1.png

3. 样本配置文件中的介绍

  type:定义平台选择,例如corda / fabric,在此示例中为Corda

  version:定义了所使用平台的版本,例如在此示例中,Corda版本为4.0,也支持并应使用Corda版本4.1。

  frontend:是一个标志,它定义是否为节点启用前端。其值只能启用/禁用。仅在安装示例供应链应用程序时适用。

  env:部分包含环境类型和其他(8443除外)Ambassador端口配置。由于尚未为Corda实施“ haproxy”,因此本节下“proxy”字段的值必须为“Ambassador”。

env带有示例值的局部的快照如下

   env:
   type: "env_type"                # tag for the environment. Important to run multiple flux on single cluster
   proxy: ambassador               # value has to be 'ambassador' as 'haproxy' has not been implemented for Corda
   ambassadorPorts: 15010,15020    # Any additional Ambassador ports can be given here, must be comma-separated without spaces, this is valid only if proxy='ambassador'
   retry_count: 20                 # Retry count for the checks
   external_dns: enabled           # Should be enabled if using external-dns for automatic route config
   env 字段介绍: 

env下的部分字段是

字段描述
类型(type)环境类型。可以像dev / test / prod。
代理(proxy)选择集群入口控制器。目前支持“ambassador”或“ haproxy”
ambassador端口可以在此处提供任何其他ambassador端口;必须以逗号分隔,且不能使用空格10010,10020。仅在以下情况下有效proxy: ambassador
retry_count重试检查计数。
external_dns如果群集具有外部DNS服务,则必须进行设置,enabled以便自动更新托管区域。

docker部分包含构建和存储所有必需镜像的存储库的凭据。(注意:在运行Ansible脚本之前,请使用NMS Jenkins文件或/和Doorman Jenkins文件来构建和存储Docker镜像)

docker带有示例值的部分的快照如下

  # Docker registry details where images are stored. This will be used to create k8s secrets
  # Please ensure all required images are built and stored in this registry. 
  docker:
    url: "<url>"
    username: "<username>"
    password: "<password>"

docker下的部分字段是

字段描述
网址Docker注册表URL
用户名登录所需的用户名凭证
密码登录需要密码凭证

注意:在运行Ansible剧本之前,请按照以下说明构建和存储docker映像。

orderers带有示例值的部分的快照如下

  # Remote connection information for doorman and networkmap (will be blank or removed for hosting organization)
  orderers:
    - orderer:
      type: doorman
      uri: https://doorman.test.corda.blockchaincloudpoc.com:8443
      certificate: home_dir/platforms/r3-corda/configuration/build/corda/doorman/tls/ambassador.crt
    - orderer:
      type: networkmap
      uri: https://networkmap.test.corda.blockchaincloudpoc.com:8443
      certificate: home_dir/platforms/r3-corda/configuration/build/corda/networkmap/tls/ambassador.crt

orderers显示给网络的包含Doorman/网络映射的列表

字段描述
类型对于Corda,networkmap并且doorman是orderers的唯一有效类型。
uriDoorman/网络映射外部URL。这应该可以从所有节点到达。
证书Doorman和Networkmap的自定义证书的目录路径。

organizations部分允许指定将要连接到网络的一个或多个组织。如果组织还托管网络的根目录(例如,doorman, membership service,etc),则这些服务也应在本节中列出。在简单示例中,1st Organisation托管网络的根,因此services doorman, nms and notary1st Organisation的服务下。

下面是带有示例值的组织字段的快照

    - organization:
      name: manufacturer
      country: CH
      state: Zurich
      location: Zurich
      subject: "O=Manufacturer,OU=Manufacturer,L=Zurich,C=CH"
      type: node
      external_url_suffix: test.corda.blockchaincloudpoc.com
      cloud_provider: aws # Options: aws, azure, gcp

organizations下的每个组织都有以下字段

字段描述
名称机构名称
国家组织所属国家
组织所属州
位置机构所在地
Subject主题格式可以在OpenSSL主题中参考
type该字段可以是doorman-nms-notary / node
external_url_suffix集群的公共URL后缀。这是DNS提供程序上Ambassador服务的已配置路径。
cloud_provider该组织的Kubernetes集群的云提供商。该字段可以是aws,azure或gcp
aws当组织集群位于AWS上时
k8sKubernetes集群部署变量。
vault在示例中包含Hashicorp Vault服务器地址和根令牌
gitopsGit Repo详细信息,它将由GitOps / Flux使用。
services包含可能是peers/doorman/nms/notary服务列表

对于aws和k8s字段,下面是带有示例值的快照

      aws:
        access_key: "<aws_access_key>"    # AWS Access key, only used when cloud_provider=aws
        secret_key: "<aws_secret>"        # AWS Secret key, only used when cloud_provider=aws
  
      # Kubernetes cluster deployment variables.
      k8s:        
        region: "<k8s_region>"
        context: "<cluster_context>"
        config_file: "<path_to_k8s_config_file>"

每个organization下的aws字段包含

字段描述
aws.access_keyAWS访问密钥
aws.secret_keyAWS密钥

每个组织下的k8s字段

字段描述
k8s.regionKubernetes集群部署所在的区域,例如:eu-west-1
k8s.context组织实体应部署到的集群的上下文/名称
k8s.config_filekubernetes集群配置文件的路径
对于gitops字段,下面是带有示例值的示例配置文件中的快照
      # Git Repo details which will be used by GitOps/Flux.
      gitops:
        git_ssh: "git@github.com:<username>/blockchain-automation-framework.git" # Gitops ssh url for flux value files
        branch: "<branch_name>"                                                  # Git branch where release is being made
        release_dir: "platforms/r3-corda/releases/dev" # Relative Path in the Git repo for flux sync per environment. 
        chart_source: "platforms/r3-corda/charts"      # Relative Path where the Helm charts are stored in Git repo
        git_push_url: "github.com/<username>/blockchain-automation-framework.git"
        username: "<username>"          # Git Service user who has rights to check-in in all branches
        password: "<password>"          # Git Server user password/personal token
        private_key: "<path to gitops private key>"

每个organization下的gitops字段包含

字段描述
gitops.git_ssh应当在其中同步通量的存储库的SSH URL
gitops.branch存储Helm Charts and value files的存储库分支
gitops.release_dirflux应同步文件的相对路径
gitops.chart_source存储Helm Charts的相对路径
gitops.git_push_urlgit push的Gitops https URL,例如“ github.com/hyperledger-labs/blockchain-automation-framework.git”
gitops。用户名有权在存储库上进行读写的用户名
gitops.password有权在存储库中进行读写的用户密码
gitops.private_key具有对git repo的写访问权的私钥文件的路径

  organizations中Corda部分下每个组织的服务字段包含服务清单,可以是doorman/nms/notary/peers

下面是带有示例值的Doorman服务的快照

      services:
        doorman:
          name: doormanskar
          subject: "CN=Corda Doorman CA,OU=DLT,O=DLT,L=Berlin,C=DE"
          type: doorman
          ports:
            servicePort: 8080
            targetPort: 8080

Doorman服务的字段

字段描述
services.doorman.nameDoorman服务的名称
services.doorman.subjectDoorman服务的证书主题。主题格式可以在 OpenSSL主题 中引用
services.doorman.type服务类型必须为 doorman
services.doorman.ports.servicePort可访问Doorman服务的HTTP端口号
services.doorman.ports.targetPortDoorman docker-container的HTTP目标端口号

nms服务示例值的快照

        nms:
          name: networkmapskar
          subject: "CN=Network Map,OU=FRA,O=FRA,L=Berlin,C=DE"
          type: networkmap
          ports:
            servicePort: 8080
            targetPort: 8080

nms服务下的字段

字段描述
services.nms.nameNetworkMap服务的名称
services.nms.subjectNetworkMap服务的证书主题。主题格式可以在OpenSSL主题中引用
services.nms.type服务类型必须为 networkmap
services.nms.ports.servicePort可访问NetworkMap服务的HTTP端口号
services.nms.ports.targetPortNetworkMap docker-container的HTTP目标端口号

下面是带有示例值的公证服务的快照

        # Currently only supporting a single notary cluster, but may want to expand in the future
        notary:
          name: notaryskar
          subject: "O=Notary,OU=Notary,L=London,C=GB"
          type: notary          
          p2p:
            port: 10002
            targetPort: 10002
            ambassador: 10010       #Port for ambassador service (use one port per org if using single cluster)
          rpc:
            port: 10003
            targetPort: 10003
          rpcadmin:
            port: 10005
            targetPort: 10005
          dbtcp:
            port: 9101
            targetPort: 1521
          dbweb:             
            port: 8080
            targetPort: 81

Notary服务下的字段是

字段描述
services.notary. nameNotary服务名称
services.notary.subjectNotary服务的证书主题。主题格式可以在 OpenSSL主题 中引用
services.notary.type服务类型必须为 notary
services.notary.p2p.portCorda Notary P2P端口。用于Notary人和同一网络的节点之间的通信
services.notary.p2p.targetport运行Notary服务的P2P端口。
services.notary.p2p.ambassadorport通过大使提供Notary服务的港口
services.notary.rpc.portCorda Notary人RPC端口。用于Notary和同一网络的节点之间的通信
services.notary.rpc.targetport运行Notary服务的RPC端口。
services.notary.rpcadmin.portCorda Notary Rpcadmin端口。用于RPC管理员绑定
services.notary.dbtcp.portCorda Notary DbTcp端口。用于将数据库公开给其他服务
services.notary.dbtcp.targetPortCorda Notary DbTcp目标端口。运行数据库服务的端口
services.notary.dbweb.portCorda Notary dbweb端口。用于将dbweb公开给其他服务
services.notary.dbweb.targetPortCorda Notary dbweb目标端口。dbweb服务运行的端口

下面是带有示例值的Peer服务的快照

      # The participating nodes are named as peers 
      services:
        peers:
        - peer:
          name: manufacturerskar
          subject: "O=Manufacturer,OU=Manufacturer,L=47.38/8.54/Zurich,C=CH"
          type: node
          p2p:
            port: 10002
            targetPort: 10002
            ambassador: 10020       #Port for ambassador service (use one port per org if using single cluster)
          rpc:
            port: 10003
            targetPort: 10003
          rpcadmin:
            port: 10005
            targetPort: 10005
          dbtcp:
            port: 9101
            targetPort: 1521
          dbweb:             
            port: 8080
            targetPort: 81
          springboot:             # This is for the springboot server
            targetPort: 20001
            port: 20001 
          expressapi:             # This is for the express api server
            targetPort: 3000
            port: 3000

Peer服务下的字段是

字段描述
services.peer.nameCorda节点的名称
services.peer.type服务类型必须为 node
services.peer.subject节点legal名称主题。
services.peer.authCorda节点的保险柜授权
services.peer.p2p.portCorda Node P2P端口,用于同一网络的节点之间的通信
services.peer.rpc.portCorda节点RPC端口。用于不同网络的节点之间的通信
services.peer.rpcadmin.portCorda节点Rpcadmin端口。用于RPC管理员绑定
services.peer.dbtcp.portCorda节点DbTcp端口。用于将数据库公开给其他服务
services.peer.dbtcp.targetPortCorda节点DbTcp目标端口。运行数据库服务的端口
services.peer.dbweb.portCorda节点dbweb端口。用于将dbweb公开给其他服务
services.peer.dbweb.targetPortCorda节点dbweb目标端口。dbweb服务运行的端口
services.peer.springboot.portSpringboot服务器端口。用于将springboot暴露给其他服务
services.peer.springboot.targetPortSpringboot服务器目标端口。运行springboot服务的端口
services.peer.expressapi.portExpressapi端口。用于将expressapi暴露给其他服务
services.peer.expressapi.targetPortExpressapi目标端口。运行expressapi服务的端口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值