Fabric各种配置⽂件梳理(⼀)
⽇志部分:指定模块⽇志级别
peer部分:Peer服务核⼼配置内容
vm部分:配置链码运⾏的环境,⽐如Docker容器
链码部分:链码相关配置
ledger部分:分类账本配置信息
metrics(指标)部分:系统性能度量框架
General部分 :配置⽂件的基础配置信息部分
FileLedge部分:如果指定分类账本类型为⽂件类型,则通过该部分配置⽂件账本的相关信息
RAMLedge:指定内存账本类型区块最⼤数量
Kafka:Kafka排序服务的配置信息指定
Debug:主要指定⼴播服务与交付服务的请求保存⽬录
OrdererOrgs:
- Name: Orderer
Domain: example    #域名
EnableNodeOUs: true
Specs:
- Hostname: orderer      #hostname+Domain的值组成Orderer节点完整域名
SANS:
- localhost
PeerOrgs:
- Name: Org1
Domain: ample  #完整域名:ample
EnableNodeOUs: true    #在msp下⽣产config.yaml⽂件
Template:
Count: 1                #指定节点数量
SANS:
- localhost
Users:
Count: 1                #指定⽤户数
PeerOrgs:
- Name: Org2
Domain: ample
EnableNodeOUs: true
Template:
Count: 1
SANS:
- localhost
Users:
Count: 1
< : ⽣产创世区块(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/msp
Policies:
Readers:
Type: Signature
Rule: "OR('ber')"
Writers:
Type: Signature
Rule: "OR('ber')"
Admins:
Type: Signature
Rule: "OR('OrdererMSP.admin')"
OrdererEndpoints:
-
ample:7050
- &Org1
Name: Org1MSP
ID: Org1MSP
MSPDir: ../organizations/ample/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/ample/msp
Policies:
Readers:
Type: Signature
Rule: "OR('Org2MSP.admin', 'Org2MSP.peer', 'Org2MSP.client')"
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:7050    //排序节点地址与端⼝号
EtcdRaft:      //raft共识配置
Consenters:
- Host: orderer.flight
Port: 7050
ClientTLSCert: ../organizations/ordererOrganizations/flight/orderers/orderer.flight/      //客户端TLS认证路径
ServerTLSCert: ../organizations/ordererOrganizations/flight/orderers/orderer.flight/      //服务器端TLS认证路径
BatchTimeout: 2s    //批处理超时时间
BatchSize:        //与消息相关的批处理⼤⼩
MaxMessageCount: 10  //⼀个区块最⼤交易数
AbsoluteMaxBytes: 99 MB    //⼀个区块最⼤字节数
PreferredMaxBytes: 512 KB  //⼀个区块的建议字节数(若超过,放⼊更⼤的区块)
Organizations:
Policies:
Readers:
Type: ImplicitMeta
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "MAJORITY Admins"
kafka最新版本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:      # 默认情况下,谁可以在此配置级别上修改元素
Type: ImplicitMeta
Rule: "MAJORITY Admins"
Capabilities:      # Capabilities配置描通道层级的能⼒需求,这⾥直接引⽤
<<: *ChannelCapabilities
>>>>>>>>>>>>>#
#  Profile#    ⾃定义配置部分
#  profiles配置段相当于configtxgen⼯具的统⼀⼊⼝,通过设置不同的configtxgen -profile参数决定要使⽤ configtxgen⽣成什么⽂件,profiles配置段通过使⽤上⾯准备好的配置段来根据需要配置不同的⽂件(虽然可以显⽰配置但是最好采⽤引⽤默认配置的⽅式,有封装的意思)。
>>>>>>>>>>>>>#
Profiles:        //这个部分按照项⽬⾓⾊来更改
TwoOrgsApplicationGenesis:    #组织定义标识符,可⾃定义,命令中的 -profile参数⼆者要保持⼀致
<<: *ChannelDefaults              # 引⽤为 ChannelCapabilities 的属性

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论