溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Fabric2.0中first-network生成配置的示例分析

發(fā)布時(shí)間:2021-12-28 17:17:30 來(lái)源:億速云 閱讀:101 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要為大家展示了“Fabric2.0中first-network生成配置的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Fabric2.0中first-network生成配置的示例分析”這篇文章吧。

1.byfn.sh generate

首先從byfn.sh的腳本可以觀察到,腳本的第一個(gè)參數(shù)為執(zhí)行模式,其中模式包含up、down、generate、restart以及upgrade,代表啟動(dòng)、清除、生成以及升級(jí)網(wǎng)絡(luò)。這里我們關(guān)注的是generate,在generate主要執(zhí)行兩個(gè)function,分別是 generateCerts :生成證書(shū)、 generateChannelArtifacts :生成創(chuàng)始區(qū)塊與通道文件。Fabric2.0中first-network生成配置的示例分析

2. generateCerts

generateCerts :生成證書(shū) 詳細(xì)來(lái)看腳本 Fabric2.0中first-network生成配置的示例分析 主要執(zhí)行了兩個(gè)核心腳本分別是: 1.cryptogen generate --config=./crypto-config.yaml

實(shí)現(xiàn)根據(jù)crypto-config.yaml 生成證書(shū)文件。

2../ccp-generate.sh

生成調(diào)用nodejs SDK的相關(guān)區(qū)塊鏈配置文件。

2.1 生成證書(shū)文件

打開(kāi)first-network目錄下面的crypto-config.yaml文件。 crypto-config.yaml主要包含的fabric排序節(jié)點(diǎn)證書(shū)配置以及fabric組織證書(shū)配置。

  • 排序節(jié)點(diǎn)證書(shū)配置 配置了5個(gè)排序節(jié)點(diǎn),域名為:Hostname + Domain eg:orderer.example.com

  - Name: Orderer
    Domain: example.com
    Specs:
      - Hostname: orderer
      - Hostname: orderer2
      - Hostname: orderer3
      - Hostname: orderer4
      - Hostname: orderer5

支持其他配置模式如下:

(1)重寫(xiě)全限定域名

CommonName #默認(rèn)值為 {{.Hostname}}.{{.Domain}}

OrdererOrgs:
  - Name: Orderer
    Domain: example.com
    Specs:
      - Hostname: orderer
        CommonName: myorderer.example.com

(2)替換Specs為T(mén)emplate配置式

#Template 使用模板定義節(jié)點(diǎn) #Count 節(jié)點(diǎn)總數(shù) #Start 節(jié)點(diǎn)下標(biāo)起始值 #Hostname 全限定域名 命名格式 #Prefix 默認(rèn) peer #Index 取Start值 無(wú)配置從1開(kāi)始自增

OrdererOrgs:
  - Name: Orderer
    Domain: example.com
    Template:
      Count: 5
      Start: 1
      Prefix:order    
     # Hostname: {{.Prefix}}{{.Index}} # default
  • 組織證書(shū)配置 配置了兩個(gè)組織,每個(gè)組織2套公私鑰和證書(shū),包含普通User(Admin不包含在計(jì)數(shù)中)數(shù)量為1

PeerOrgs:
  - Name: Org1
    Domain: org1.example.com
    EnableNodeOUs: true
    Template:
      Count: 2
     Users:
      Count: 1

  - Name: Org2
    Domain: org2.example.com
    EnableNodeOUs: true
    Template:
      Count: 2
    Users:
      Count: 1

#Domain 域名 #Template 參考OrdererOrgs 可替換為Specs配置式 #Users -> Count 添加到管理員的用戶(hù)帳戶(hù)數(shù) #EnableNodeOUs 允許節(jié)點(diǎn) OUS -> out of service,用于區(qū)分clients, admins, peers。假如true會(huì)在msp目錄生成config.yaml如下: Fabric2.0中first-network生成配置的示例分析

此處證書(shū)結(jié)構(gòu)不做詳細(xì)說(shuō)明,詳情查看Fabric2.0官方文檔

2.2 ./ccp-generate.sh

生成調(diào)用nodejs SDK的相關(guān)區(qū)塊鏈配置文件。此處不作詳細(xì)配置說(shuō)明。

3. generateChannelArtifacts

generateChannelArtifacts :生成創(chuàng)始區(qū)塊與通道文件

3.1 生成創(chuàng)始區(qū)塊

腳本:

 configtxgen -profile SampleMultiNodeEtcdRaft -channelID byfn-sys-channel -outputBlock ./channel-artifacts/genesis.block

由于我接觸Fabric是從2018年開(kāi)始就是1.x時(shí)代,2.x的話(huà)完全是沒(méi)有接觸,看到上面的shell,明顯就有了點(diǎn)2.0的味道,按照常規(guī)套路先看2.0官方文檔解釋?zhuān)?/p>

Fabric2.0中first-network生成配置的示例分析 configtxgen 命令參數(shù)的使用在2.0發(fā)生了變化,為了方便比較我放一下1.4官方文檔的:

Fabric2.0中first-network生成配置的示例分析 差別在于 創(chuàng)世區(qū)塊的網(wǎng)絡(luò)共識(shí)模式定義變了,刪除了TwoOrgsOrdererGenesis(原本的排序節(jié)點(diǎn)創(chuàng)始區(qū)塊配置)、SampleDevModeKafka (kafka共識(shí)配置)

剩余的還是解釋一下:

SampleMultiNodeEtcdRaft:用于生成創(chuàng)始區(qū)塊的,配合-o一起用,支持etcdraft模式的共識(shí)。

TwoOrgsChannel:用于生成通道的。

剩下生成通道的腳本與原先的沒(méi)有太大差距此處不作詳細(xì)說(shuō)明,詳情請(qǐng)看官方文檔說(shuō)明,

3.2 通道文件生成

通道配置:

  TwoOrgsChannel:
  # 通道聯(lián)盟名稱(chēng),現(xiàn)在默認(rèn)是SampleConsortium
        Consortium: SampleConsortium  
     # 引用ChannelDefaults通道詳細(xì)配置
        <<: *ChannelDefaults   
        Application:
        # // 引用ApplicationDefaults
            <<: *ApplicationDefaults 
            #  //通道組織定義            Organizations:
                - *Org1
                - *Org2
            Capabilities:
                <<: *ApplicationCapabilities

通道詳細(xì)配置:

Channel: &ChannelDefaults
    #   通道權(quán)限策略  <ALL|ANY|MAJORITY> <sub_policy>
    Policies:
        # Who may invoke the 'Deliver' API
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        # Who may invoke the 'Broadcast' API
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        # By default, who may modify elements at this config level
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"
    # Capabilities describes the channel level capabilities, see the
    # dedicated Capabilities section elsewhere in this file for a full
    # description
    Capabilities:
        <<: *ChannelCapabilities

上面主要是對(duì)通道權(quán)限策略配置,其中策略這塊主要有兩種類(lèi)型:

1.Signature策略

SIGNATURE策略指定通過(guò)簽名來(lái)對(duì)數(shù)據(jù)進(jìn)行認(rèn)證,例如數(shù)據(jù)必須滿(mǎn)足一定的簽名身份組合 這種策略比較靈活,主要定義MSP主體組合規(guī)范。在驗(yàn)證簽名策略的基礎(chǔ)上,支持AND、OR、NOutOf,可以構(gòu)建如:‘An admin of org A and 2 other admins, or 11 of 20 org admins’等規(guī)范。 Fabric2.0中first-network生成配置的示例分析 2.ImplicitMeta策略

這種策略不如SignaturePolicy靈活,并且只在配置上下文中有效。它不直接進(jìn)行簽名檢查,而是通過(guò)引用其子元素的策略(最終還是通過(guò)Signature策略)來(lái)進(jìn)行檢查 檢查結(jié)果又Rule限制,它支持默認(rèn)規(guī)則,如:‘A majority of the organization admin policies’。

Fabric2.0中first-network生成配置的示例分析

共識(shí)配置

  SampleMultiNodeEtcdRaft:
        <<: *ChannelDefaults
        Capabilities:
	# 通道Capabilities 指定2.0
            <<: *ChannelCapabilities
        Orderer:
            <<: *OrdererDefaults
		  # 排序節(jié)點(diǎn)類(lèi)型etcdraft
            OrdererType: etcdraft 
                  # 系統(tǒng)通道中raft節(jié)點(diǎn)配置 raft服務(wù)是在order節(jié)點(diǎn)內(nèi)
            EtcdRaft:
                Consenters:
                - Host: orderer.example.com
                  Port: 7050
                  ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
                  ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
              
            Addresses:
                - orderer.example.com:7050
               
            Organizations:
            - *OrdererOrg


            Capabilities:
		# 排序節(jié)點(diǎn)Capabilities 指定2.0

                <<: *OrdererCapabilities
        Application:
            <<: *ApplicationDefaults
            Organizations:
            - <<: *OrdererOrg
        Consortiums:
            SampleConsortium:
                Organizations:
                - *Org1
                - *Org2

以上是“Fabric2.0中first-network生成配置的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI