Hyperledger Fabric 通道配置文件和容器环境变量详解

本文详细解析了Hyperledger Fabric的配置文件configtx.yaml,包括Organizations、Capabilities、Application、Orderer、Channel和Profiles部分。此外,还介绍了peer、orderer和fabric-ca容器的环境变量配置,帮助理解Fabric网络启动过程中的配置作用。
摘要由CSDN通过智能技术生成

Python微信订餐小程序课程视频

https://blog.csdn.net/m0_56069948/article/details/122285951

Python实战量化交易理财系统

https://blog.csdn.net/m0_56069948/article/details/122285941

摘要

Fabric 网络启动的过程中需要进行大量配置,新学时对各个配置的作用一无所知,这导致我曾在网络出问题时先对配置文件的内容进行排列组合后再祈祷它能在某个时刻顺利运行,因此掌握 fabric 各个配置项的含义至关重要。本文对 configtxgen 的配置文件 configtx.yaml 进行了详细的分析解释,对 peer 、 orderer 、 fabric-ca 容器的常用环境变量也给除了详细说明,其中某些配置由于比较罕见因此并没有展开介绍,直接使用默认值即可,会在将来用上时再更新。

准备介绍

Fabric 节点的主配置路径为 FABRIC_CFG_PATH 环境变量所指向路径(默认为/etc/hyperledger/fabric)。在不显式指定配置路径时,会尝试从主配置路径下查找相关的配置文件。

配置文件路径 说明
peer $FABRIC_CFG_PATH/core.yaml 指定 peer 节点运行时参数
orderer $FABRIC_CFG_PATH/orderer.yaml 指定 orderer 节点运行时参数
fabric-ca $FABRIC_CA_SERVER_HOME/fabric-ca-server-config.yaml 指定 CA 节点运行时参数
configtxgen $FABRIC_CA_SERVER_HOME/configtx.yaml 指定 configtxgen 命令运行时参数

通常 fabric 服务有两种启动方式,一种是直接通过二进制命令直接在主机根据配置文件启动节点,另一种是使用docker根据环境变量和默认配置文件启动节点,其中除了 configtxgen 必须使用配置文件外,其余各服务都可以通过 docker 启动。因此本文将重点介绍 configtxgen 的配置文件及其它服务的 docker 环境变量。

configtx.yaml 详解

transaction 的英文缩写是TX(表示交易), configtx 表示交易配置,所以和交易相关的配置,如应用通道、锚节点、 Orderer 服务等,都是在 configtx.yaml文件中配置的。 configtx.yaml 文件由6个部分组成,其中前5个部分的配置都是为了在 Profiles 被引用,在 Profiles 中引用其它部分的同时可以覆盖特定配置,本节示例文件来自于 configtx.yaml[1] [2]

Organizations

Organizations 用来定义不同的组织,其中 MSP(Membership Service Provider) 是一个组织的身份标识,在fabric中组织是由 MSPID 来唯一标识。

Organizations:
    - &councilMSP           # 定义一个组织引用,类似于变量,可在Profile部分被引用;所有带 & 符号的都是引用变量,使用 * 来引用
        Name: councilMSP    # 组织名称
        ID: councilMSP      # 组织ID
        MSPDir: ../orgs/council.ifantasy.net/msp    # 组织MSP文件夹的路径
        Policies:           # 组织策略
            Readers:
                Type: Signature
                Rule: "OR('councilMSP.member')"
            Writers:
                Type: Signature
                Rule: "OR('councilMSP.member')"
            Admins:
                Type: Signature
                Rule: "OR('councilMSP.admin')"
        # 此文件内的Orderer端口皆为容器内端口
        OrdererEndpoints:   # 定义排序节点(可多个),客户端和对等点可以分别连接到这些orderer以推送transactions和接收区块。
            - "orderer1.council.ifantasy.net:7051"
            - "orderer2.council.ifantasy.net:7054"
            - "orderer3.council.ifantasy.net:7057"
        AnchorPeers:    # 定义锚节点,锚节点对外代表本组织通信
            - Host: peer1.soft.ifantasy.net
              Port: 7251

Capabilities

Capabilities 定义了 fabric 程序要加入网络所必须支持的特性,通过定义通道的能力,就明确了不满足该能力要求的 fabric 程序,将无法处理交易,除非升级到对应的版本。

Capabilities:
    # Channel配置同时针对通道上的Orderer节点和Peer节点(设置为ture表明要求节点具备该能力);
    Channel: &ChannelCapabilities
        V2\_0: true  # 要求Channel上的所有Orderer节点和Peer节点达到v2.0.0或更高版本
     # Orderer配置仅针对Orderer节点,不限制Peer节点
    Orderer: &OrdererCapabilities
        V2\_0: true  # 要求所有Orderer节点升级到v2.0.0或更高版本
    # Application配置仅应用于对等网络,不需考虑排序节点的升级
    Application: &ApplicationCapabilities
        V2\_0: true

Application

Application 定义了应用内的访问控制策略和参与组织。

Application: &ApplicationDefaults

    # 干预 创建链码的系统链码 的函数访问控制策略
    \_lifecycle/CheckCommitReadiness: /Channel/Application/Writers       # CheckCommitReadiness 函数的访问策略
    \_lifecycle/CommitChaincodeDefinition: /Channel/Application/Writers  # CommitChaincodeDefinition 函数的访问策略
    \_lifecycle/QueryChaincodeDefinition: /Channel/Application/Writers   # QueryChaincodeDefinition 函数的访问策略
    \_lifecycle/QueryChaincodeDefinitions: /Channel/Application/Writers  # QueryChaincodeDefin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值