热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Fabric各种配置文件梳理

1.core.yaml:Peer节点的示例配置文件,有六个部分(会随版本变化略加改动)日志部分:指定模块日志级别peer部

1.core.yaml : Peer节点的示例配置文件,有六个部分(会随版本变化略加改动)


  • 日志部分:指定模块日志级别
  • peer部分:Peer服务核心配置内容
  • vm部分:配置链码运行的环境,比如Docker容器
  • 链码部分:链码相关配置
  • ledger部分:分类账本配置信息
  • metrics(指标)部分:系统性能度量框架

2.orderer.yaml :Orderer节点示例配置文件


  • General部分 :配置文件的基础配置信息部分
  • FileLedge部分:如果指定分类账本类型为文件类型,则通过该部分配置文件账本的相关信息
  • RAMLedge:指定内存账本类型区块最大数量
  • Kafka:Kafka排序服务的配置信息指定
  • Debug:主要指定广播服务与交付服务的请求保存目录

3.crypto-config.yaml : 指定整个网络中相关组织的详细信息(2.x版本后分成了三个yaml文件)组织结构及身份证书所需配置文件


 OrdererOrgs:
  - Name: Orderer
    Domain: example.com     #域名
    EnableNodeOUs: true
    Specs:
      - Hostname: orderer      #hostname+Domain的值组成Orderer节点完整域名
        SANS:
          - localhost

PeerOrgs:
  - Name: Org1
    Domain: org1.example.com  #完整域名:peer0.org1.example.com
    EnableNodeOUs: true     #在msp下生产config.yaml文件
    Template:
      Count: 1                #指定节点数量
      SANS:
        - localhost
    Users:
      Count: 1                #指定用户数

PeerOrgs:
  - Name: Org2
    Domain: org2.example.com
    EnableNodeOUs: true
    Template:
      Count: 1
      SANS:
        - localhost
    Users:
      Count: 1



4.config.tx : 生产创世区块(GenesisBlock)与通道(Channel)所需配置文件。如指定orderer服务的相关配置,以及当前的联盟信息、联盟中所属包含的组织信息,这些信息的配置被定义在该文件中。

configtx文件主要用于生成创世区块、创建通道配置交易和创建锚节点更新配置交易(配置交易是Fabric中交易的一种,它可以被order节点解析并用来配置order节点)。

configtx.yaml文件分为几大section:Organizations, Capabilities, Application,  Orderer, CHANNEL, Profile。 


##################################################################

#   Section: Organizations

##################################################################

Organizations:  #指定OrdererOrg和PeerOrg的权限信息
    - &OrdererOrg
        Name: OrdererOrg
        ID: OrdererMSP
        MSPDir: ../organizations/ordererOrganizations/example.com/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('OrdererMSP.member')"
            Writers:
                Type: Signature
                Rule: "OR('OrdererMSP.member')"
            Admins:
                Type: Signature
                Rule: "OR('OrdererMSP.admin')"
        OrdererEndpoints:
            - orderer.example.com:7050
    - &Org1
        Name: Org1MSP
        ID: Org1MSP
        MSPDir: ../organizations/peerOrganizations/org1.example.com/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')"
            Writers:
                Type: Signature
                Rule: "OR('Org1MSP.admin', 'Org1MSP.client')"
            Admins:
                Type: Signature
                Rule: "OR('Org1MSP.admin')"
            Endorsement:
                Type: Signature
                Rule: "OR('Org1MSP.peer')"
    - &Org2
        Name: Org2MSP
        ID: Org2MSP
        MSPDir: ../organizations/peerOrganizations/org2.example.com/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('Org2MSP.admin', 'Org2MSP.peer', 'Org2MSP.client')"
            Writers:
                Type: Signature
                Rule: "OR('Org2MSP.admin', 'Org2MSP.client')"
            Admins:
                Type: Signature
                Rule: "OR('Org2MSP.admin')"
            Endorsement:
                Type: Signature
                Rule: "OR('Org2MSP.peer')"

##################################################################

#   SECTION: Capabilities 

#Capabilities配置段,capability直接翻译是能力,这里可以理解为对Fabric网络中组件版本的控制, 通过版本进而控制相应的特性。新更新的特性旧版本的组件不支持, 就可能无法验证或提交transaction从而导致不同版本的节点上有不同的账本,因此使用Capabilities来使不支持特性的旧组件终止处理transaction直到其更新升级Channel表示orderers和peers同时都要满足,Orderer只需要orderers满足,Application只需要peers满足即可。

##################################################################

Capabilities:   #指定通道的权限信息

    Channel: &ChannelCapabilities

        V2_0: true    //通道版本号

    Orderer: &OrdererCapabilities

        V2_0: true    //orderer版本

    Application: &ApplicationCapabilities

        V2_0: true    //应用版本

##################################################################

#   SECTION: Application    应用程序 

#Application配置段用来定义要写入创世区块或配置交易的应用参数。
# Application配置段,一些和应用有关的将会编进创世区块或配置transaction的应用相关的参数,其中 organizations:在此处不进行配置,在后面profiles配置段中,根据需要生成的文件类型进行配置。

##################################################################

Application: &ApplicationDefaults  #指定初始加入通道的组织

    Organizations:

    Policies:  # 定义本层级的应用控制策略

        Readers:

            Type: ImplicitMeta

            Rule: "ANY Readers"

        Writers:

            Type: ImplicitMeta

            Rule: "ANY Writers"

        Admins:

            Type: ImplicitMeta

            Rule: "MAJORITY Admins"

        LifecycleEndorsement:

            Type: ImplicitMeta

            Rule: "MAJORITY Endorsement"

        Endorsement:

            Type: ImplicitMeta

            Rule: "MAJORITY Endorsement"

    Capabilities:

        <<: *ApplicationCapabilities

##################################################################

#      SECTION: Orderer   排序节点

#Orderer配置段用来定义要编码写入创世区块或通道交易的排序节点参数。

##################################################################

Orderer: &OrdererDefaults   #指定Orderer节点的信息

    OrdererType: etcdraft     //排序算法

    Addresses:

        - orderer.flight.com:7050    //排序节点地址与端口号

    EtcdRaft:      //raft共识配置

        Consenters:

        - Host: orderer.flight.com

          Port: 7050

          ClientTLSCert: ../organizations/ordererOrganizations/flight.com/orderers/orderer.flight.com/tls/server.crt        //客户端TLS认证路径

          ServerTLSCert: ../organizations/ordererOrganizations/flight.com/orderers/orderer.flight.com/tls/server.crt        //服务器端TLS认证路径

    BatchTimeout: 2s     //批处理超时时间

    BatchSize:         //与消息相关的批处理大小

        MaxMessageCount: 10   //一个区块最大交易数

        AbsoluteMaxBytes: 99 MB    //一个区块最大字节数

        PreferredMaxBytes: 512 KB  //一个区块的建议字节数&#xff08;若超过&#xff0c;放入更大的区块&#xff09;

    Organizations:

    Policies:

        Readers:

            Type: ImplicitMeta

            Rule: "ANY Readers"

        Writers:

            Type: ImplicitMeta

            Rule: "ANY Writers"

        Admins:

            Type: ImplicitMeta

            Rule: "MAJORITY Admins"

        BlockValidation:       //块验证条件

            Type: ImplicitMeta

            Rule: "ANY Writers"

##################################################################

#   CHANNEL   通道部分 本节定义了将代码编码为与通道相关的参数的配置事务或生成块的值。

##################################################################

Channel: &ChannelDefaults          # 定义本层级的通道访问策略

    Policies:

        Readers:        //可以invoke “deliver”API的

            Type: ImplicitMeta

            Rule: "ANY Readers"

        Writers:         //可以invoke “broadcast”API的

            Type: ImplicitMeta

            Rule: "ANY Writers"

        Admins:       # 默认情况下&#xff0c;谁可以在此配置级别上修改元素

            Type: ImplicitMeta

            Rule: "MAJORITY Admins"

    Capabilities:      # Capabilities配置描通道层级的能力需求&#xff0c;这里直接引用

        <<: *ChannelCapabilities

##################################################################

#   Profile#    自定义配置部分 

#   profiles配置段相当于configtxgen工具的统一入口&#xff0c;通过设置不同的configtxgen -profile参数决定要使用 configtxgen生成什么文件&#xff0c;profiles配置段通过使用上面准备好的配置段来根据需要配置不同的文件&#xff08;虽然可以显示配置但是最好采用引用默认配置的方式&#xff0c;有封装的意思&#xff09;。

##################################################################

Profiles:         //这个部分按照项目角色来更改

     TwoOrgsApplicationGenesis:    #组织定义标识符,可自定义,命令中的 -profile参数二者要保持一致
        <<: *ChannelDefaults              # 引用为 ChannelCapabilities 的属性
        Orderer:                          # 配置属性&#xff0c;系统关键字&#xff0c;不能修改
            <<: *OrdererDefaults          # 引用为 OrdererDefaults 的属性
            Organizations:
                - *OrdererOrg             # 引用为 OrdererOrg 的属性
            Capabilities:
                <<: *OrdererCapabilities
        Consortiums:                      # 定义了系统中包含的组织
            SampleConsortium:
                Organizations:            # 系统中包含的组织
                    - *Org1               # 引用了下文包含的配置
                    - *Org2
    TwoOrgsChannel:                       # 通道定义标识符&#xff0c;可自定义
        Consortium: SampleConsortium
        <<: *ChannelDefaults                
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2
            Capabilities:
                <<: *ApplicationCapabilities
 



  configtxgen --help 
  # 输出创始块区块文件的路径和名字
  &#96;-outputBlock string&#96;
  # 指定创建的channel的名字, 如果没指定系统会提供一个默认的名字.
  &#96;-channelID string&#96;
  # 表示输通道文件路径和名字
  &#96;-outputCreateChannelTx string&#96;
  # 指定配置文件中的节点
  &#96;-profile string&#96;
  # 更新channel的配置信息
  &#96;-outputAnchorPeersUpdate string&#96;
  # 指定所属的组织名称
  &#96;-asOrg string&#96;


 生成创始块文件&#xff0c;其中-profile后面对应的是我们在前面配置文件中所定义的名称&#xff0c;-outputBlock指定生成的创世块文件路径以及名称&#xff0c;-channelID为通道的名称&#xff08;通道的名称随意起&#xff0c;但是注意要与下面生成通道文件时的通道名称不同&#xff09;。使用以下命令在当前目录下的channel-artifacts目录下得到一个文件genesis.block

configtxgen -profile TwoOrgsApplicationGenesis -outputBlock ./channel-artifacts/genesis.block -channelID fabric-channel

生成通道文件&#xff0c;其中-profile后面对应的是我们在前面配置文件中所定义的名称&#xff0c;-outputBlock指定生成的通道文件路径以及名称&#xff0c;-channelID 为通道的名称。通道的名称随意起&#xff0c;但是注意要与上面生成创世块文件时的通道名称不同&#xff09;。使用以下命令在当前目录下的channel-artifacts目录下得到一个文件channel.tx

configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel

生成锚节点更新文件&#xff0c;其中-profile后面对应的是我们在前面配置文件中所定义的名称&#xff0c;-outputBlock指定生成的锚节点文件路径以及名称&#xff0c;-channelID为通道的名称&#xff08;要与上面生成通道文件时的通道名称相同&#xff09;。使用以下命令在当前目录下的channel-artifacts目录下得到一个文件Org1MSPanchors.tx

configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了sqlserver云存储和本地存储的区别,云存储是将数据存储在网络上,方便查看和调用;本地存储是将数据存储在电脑磁盘上,只能在存储的电脑上查看。同时提供了几种启动sqlserver的方法。此外,还介绍了如何导出数据库的步骤和工具。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt ... [详细]
author-avatar
X---CAR
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有