Fabric2.0中first-network生成配置的示例分析
Fabric2.0中first-network生成配置的示例分析
这篇文章主要为大家展示了“Fabric2.0中first-network生成配置的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Fabric2.0中first-network生成配置的示例分析”这篇文章吧。
1.byfn.sh generate
首先从byfn.sh的脚本可以观察到,脚本的第一个参数为执行模式,其中模式包含up、down、generate、restart以及upgrade,代表启动、清除、生成以及升级网络。这里我们关注的是generate,在generate主要执行两个function,分别是 generateCerts :生成证书、 generateChannelArtifacts :生成创始区块与通道文件。
2. generateCerts
generateCerts :生成证书 详细来看脚本 主要执行了两个核心脚本分别是: 1.cryptogen generate --config=./crypto-config.yaml
实现根据crypto-config.yaml生成证书文件。
2../ccp-generate.sh
生成调用nodejsSDK的相关区块链配置文件。
2.1 生成证书文件
打开first-network目录下面的crypto-config.yaml文件。 crypto-config.yaml主要包含的fabric排序节点证书配置以及fabric组织证书配置。
排序节点证书配置 配置了5个排序节点,域名为:Hostname + Domain eg:orderer.example.com
-Name:OrdererDomain:example.comSpecs:-Hostname:orderer-Hostname:orderer2-Hostname:orderer3-Hostname:orderer4-Hostname:orderer5
支持其他配置模式如下:
(1)重写全限定域名
CommonName #默认值为 {{.Hostname}}.{{.Domain}}
OrdererOrgs:-Name:OrdererDomain:example.comSpecs:-Hostname:ordererCommonName:myorderer.example.com
(2)替换Specs为Template配置式
#Template 使用模板定义节点 #Count 节点总数 #Start 节点下标起始值 #Hostname 全限定域名 命名格式 #Prefix 默认 peer #Index 取Start值 无配置从1开始自增
OrdererOrgs:-Name:OrdererDomain:example.comTemplate:Count:5Start:1Prefix:order#Hostname:{{.Prefix}}{{.Index}}#default
组织证书配置 配置了两个组织,每个组织2套公私钥和证书,包含普通User(Admin不包含在计数中)数量为1
PeerOrgs:-Name:Org1Domain:org1.example.comEnableNodeOUs:trueTemplate:Count:2Users:Count:1-Name:Org2Domain:org2.example.comEnableNodeOUs:trueTemplate:Count:2Users:Count:1
#Domain 域名 #Template 参考OrdererOrgs 可替换为Specs配置式 #Users -> Count 添加到管理员的用户帐户数 #EnableNodeOUs 允许节点 OUS -> out of service,用于区分clients, admins, peers。假如true会在msp目录生成config.yaml如下:
此处证书结构不做详细说明,详情查看Fabric2.0官方文档
2.2 ./ccp-generate.sh
生成调用nodejs SDK的相关区块链配置文件。此处不作详细配置说明。
3. generateChannelArtifacts
generateChannelArtifacts:生成创始区块与通道文件
3.1 生成创始区块
脚本:
configtxgen-profileSampleMultiNodeEtcdRaft-channelIDbyfn-sys-channel-outputBlock./channel-artifacts/genesis.block
由于我接触Fabric是从2018年开始就是1.x时代,2.x的话完全是没有接触,看到上面的shell,明显就有了点2.0的味道,按照常规套路先看2.0官方文档解释:
configtxgen 命令参数的使用在2.0发生了变化,为了方便比较我放一下1.4官方文档的:
差别在于 创世区块的网络共识模式定义变了,删除了TwoOrgsOrdererGenesis(原本的排序节点创始区块配置)、SampleDevModeKafka (kafka共识配置)。
剩余的还是解释一下:
SampleMultiNodeEtcdRaft:用于生成创始区块的,配合-o一起用,支持etcdraft模式的共识。
TwoOrgsChannel:用于生成通道的。
剩下生成通道的脚本与原先的没有太大差距此处不作详细说明,详情请看官方文档说明,
3.2 通道文件生成
通道配置:
TwoOrgsChannel:#通道联盟名称,现在默认是SampleConsortiumConsortium:SampleConsortium#引用ChannelDefaults通道详细配置<<:*ChannelDefaultsApplication:#//引用ApplicationDefaults<<:*ApplicationDefaults#//通道组织定义Organizations:-*Org1-*Org2Capabilities:<<:*ApplicationCapabilities
通道详细配置:
Channel:&ChannelDefaults#通道权限策略<ALL|ANY|MAJORITY><sub_policy>Policies:#Whomayinvokethe'Deliver'APIReaders:Type:ImplicitMetaRule:"ANYReaders"#Whomayinvokethe'Broadcast'APIWriters:Type:ImplicitMetaRule:"ANYWriters"#Bydefault,whomaymodifyelementsatthisconfiglevelAdmins:Type:ImplicitMetaRule:"MAJORITYAdmins"#Capabilitiesdescribesthechannellevelcapabilities,seethe#dedicatedCapabilitiessectionelsewhereinthisfileforafull#descriptionCapabilities:<<:*ChannelCapabilities
上面主要是对通道权限策略配置,其中策略这块主要有两种类型:
1.Signature策略
SIGNATURE策略指定通过签名来对数据进行认证,例如数据必须满足一定的签名身份组合 这种策略比较灵活,主要定义MSP主体组合规范。在验证签名策略的基础上,支持AND、OR、NOutOf,可以构建如:‘An admin of org A and 2 other admins, or 11 of 20 org admins’等规范。 2.ImplicitMeta策略
这种策略不如SignaturePolicy灵活,并且只在配置上下文中有效。它不直接进行签名检查,而是通过引用其子元素的策略(最终还是通过Signature策略)来进行检查 检查结果又Rule限制,它支持默认规则,如:‘A majority of the organization admin policies’。
共识配置
SampleMultiNodeEtcdRaft:<<:*ChannelDefaultsCapabilities:#通道Capabilities指定2.0<<:*ChannelCapabilitiesOrderer:<<:*OrdererDefaults#排序节点类型etcdraftOrdererType:etcdraft#系统通道中raft节点配置raft服务是在order节点内EtcdRaft:Consenters:-Host:orderer.example.comPort:7050ClientTLSCert:crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crtServerTLSCert:crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crtAddresses:-orderer.example.com:7050Organizations:-*OrdererOrgCapabilities:#排序节点Capabilities指定2.0<<:*OrdererCapabilitiesApplication:<<:*ApplicationDefaultsOrganizations:-<<:*OrdererOrgConsortiums:SampleConsortium:Organizations:-*Org1-*Org2
以上是“Fabric2.0中first-network生成配置的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
hyperledger fabric中Raft共识插件的示例分析
-
fabric Transient Data与Private Data使用的示例分析
-
Fabric Node SDK中CouchDB钱包怎么用
-
Fabric链码开发的原则有哪些
Fabric链码开发的原则有哪些这篇文章主要介绍了Fabric链码...
-
fabric示例e2e_cli中network_setup.sh流程是怎么样的
-
Fabric 2.0中链码操作过程是怎么样的
-
如何实现Fabric区块链基于Prometheus和StatsD的运维监控
-
如何下载Fabric-Sampl与二进制包
-
fabric go sdk是什么
-
Fabric区块链官方浏览器怎么用