1. 程式人生 > >Hyperledger Fabric五大模組

Hyperledger Fabric五大模組

《區塊鏈開發實戰——Hyperledger Fabric》學習筆記

一、 cryptogen

1.1 cryptogen功能

  • 生成組織結構和賬號相關的檔案在
  • 系統設計之後根據設計編寫cryptogen的配置檔案,然後根據配置檔案生成相關證書檔案

即用來生成證書檔案的工具,搭建網路的第一步就是使用cryptogen模組和配置檔案來生成整個fabric網路的組織架構與其對應的身份證書

1.2 cryptogen命令

執行 cryptogen --help得到:

usage: cryptogen [<flags>] <command> [<args> ...]

Utility for generating Hyperledger Fabric key material

Flags:
  --help  Show context-sensitive help (also try --help-long and
          --help-man).

Commands:
  help [<command>...]
    Show help.

  generate [<flags>]
    Generate key material

  showtemplate
    Show the default configuration template

  version
    Show version information

  extend [<flags>]
    Extend existing network

  • help:顯示幫助資訊
  • generate:根據配置檔案生成證書資訊
  • showtemplate:顯示預設配置模板
  • version:顯示模組版本號
  • extend:根據現有組織結構生成新的配置檔案(不覆蓋現有的配置檔案)

1.3 cryptogen 生成祕鑰證書

執行 cryptogen showtemplate來顯示預設配置模板(去掉了註釋):

OrdererOrgs:                   # 定義orderer節點
  - Name: Orderer              # orderer節點的名稱
    Domain: example.com        # orderer節點的根域名
    Specs:                     
      - Hostname: orderer      # orderer節點的主機名
PeerOrgs:
  - Name: Org1                 # 組織1的名稱
    Domain: org1.example.com   # 組織1的根域名
    EnableNodeOUs: false       # 如果設定為true,在msp下生成config.yaml檔案
    Template:
      Count: 1                 # 組織1中的節點數目
    Users:
      Count: 1                 # 組織1中的使用者數目
      
  - Name: Org2
    Domain: org2.example.com
    EnableNodeOUs: false
    Template:
      Count: 1
    Users:
      Count: 1

根據模板稍加修改建立一個Fabric系統,具體資訊如下:

屬性名稱 屬性值
系統根域名 testcryptogen.com
系統orderer節點名稱 Orderer

組成名稱 | peer節點數 | 使用者數
—|---
Org1 | 2 | 3
Org2 | 2 | 2

則crypto-config.yaml檔案內容為:

OrdererOrgs:                   
  - Name: Orderer              
    Domain: testcryptogen.com  
    Specs:                     
      - Hostname: orderer      
PeerOrgs:
  - Name: Org1                 
    Domain: org1.testcryptogen.com   
    EnableNodeOUs: false
    Template:
      Count: 2                 
    Users:
      Count: 3                 
      
  - Name: Org2
    Domain: org2.testcryptogen.com
    EnableNodeOUs: false
    Template:
      Count: 2
    Users:
      Count: 2

使用cryptogen 生成證書檔案:

[email protected]:/opt/hyperledger/fabricconfig# cryptogen  generate --config=/opt/hyperledger/fabricconfig/crypto-config.yaml --output /opt/hyperledger/fabricconfig/crypto-config
org1.testcryptogen.com
org2.testcryptogen.com

使用tree檢視生成的具體檔案:

[email protected]:/opt/hyperledger/fabricconfig/crypto-config# tree -L 6
.
├── ordererOrganizations
│   └── testcryptogen.com         #根域名為testcryptogen.com的orderer節點的相關證書檔案
│       ├── ca                 # CA伺服器簽名檔案
│       │   ├── 9fe7756ab2b8dd329ddc689a022f06773af70b1006e0df126f                      f22416671ff866_sk
│       │   └── ca.testcryptogen.com-cert.pem
│       ├── msp                
│       │   ├── admincerts     #  orderer 管理員的證書
│       │   │   └── [email protected]
│       │   ├── cacerts        #  orderer 根域名伺服器的簽名證書
│       │   │   └── ca.testcryptogen.com-cert.pem
│       │   └── tlscacerts     #  TLS 連線用的身份證書
│       │       └── tlsca.testcryptogen.com-cert.pem
│       ├── orderers           #  orderer 節點需要的相關證書檔案
│       │   └── orderer.testcryptogen.com
│       │       ├── msp        #  orderer 節點相關證書
│       │       │   ├── admincerts
│       │       │   ├── cacerts
│       │       │   ├── keystore
│       │       │   ├── signcerts
│       │       │   └── tlscacerts
│       │       └── tls        #  orderer 節點和其他節點 TLS 連線用的身份證書
│       │           ├── ca.crt
│       │           ├── server.crt
│       │           └── server.key
│       ├── tlsca
│       │   ├── 0d5fa27337f1ebcfd424c61f791f0c76d67a3c06889a1ab97a                      1d7de16d21936a_sk
│       │   └── tlsca.testcryptogen.com-cert.pem
│       └── users             #   orderer 節點使用者相關的證書
│           └── [email protected]
│               ├── msp
│               │   ├── admincerts     
│               │   ├── cacerts        
│               │   ├── keystore       
│               │   ├── signcerts      
│               │   └── tlscacerts
│               └── tls
│                   ├── ca.crt
│                   ├── client.crt
│                   └── client.key
└── peerOrganizations
    ├── org1.testcryptogen.com        # 組織的相關證書檔案
    │   ├── ca                        # 組織根節點簽名證書
    │   │   ├── 0b272c0067147eb26fe0ef41366bd8e841d41062df6209b094                      3dfaa4e67264f7_sk
    │   │   └── ca.org1.testcryptogen.com-cert.pem
    │   ├── msp
    │   │   ├── admincerts            # 組織管理員的證書
    │   │   │   └── [email protected]
    │   │   ├── cacerts               # 組織的根證書
    │   │   │   └── ca.org1.testcryptogen.com-cert.pem
    │   │   └── tlscacerts            # TLS 連線身份證書
    │   │       └── tlsca.org1.testcryptogen.com-cert.pem
    │   ├── peers
    │   │   ├── peer0.org1.testcryptogen.com
    │   │   │   ├── msp
    │   │   │   │   ├── admincerts  # 組織的管理證書, 只有這些證書才能進行建立通道等操作
    │   │   │   │   ├── cacerts     # 組織根證書
    │   │   │   │   ├── keystore    # 當前節點的私鑰
    │   │   │   │   ├── signcerts   # 當前節點簽名的數字證書
    │   │   │   │   └── tlscacerts  # TLS 連線的身份證書
    │   │   │   └── tls
    │   │   │       ├── ca.crt      # 組織的根證書
    │   │   │       ├── server.crt  # 驗證本節點簽名的證書
    │   │   │       └── server.key  # 當前節點的私鑰檔案用來簽名的
    │   │   └── peer1.org1.testcryptogen.com
    │   │       ├── msp
    │   │       │   ├── admincerts
    │   │       │   ├── cacerts
    │   │       │   ├── keystore
    │   │       │   ├── signcerts
    │   │       │   └── tlscacerts
    │   │       └── tls
    │   │           ├── ca.crt
    │   │           ├── server.crt
    │   │           └── server.key
    │   ├── tlsca
    │   │   ├── fe340ca55a6bec7593be46883c9aca164a007fea19dc6a0745                      9a3099dd4e132f_sk
    │   │   └── tlsca.org1.testcryptogen.com-cert.pem
    │   └── users
    │       ├── [email protected]
    │       │   ├── msp
    │       │   │   ├── admincerts   # 組織的根證書作為管理員身份的驗證
    │       │   │   ├── cacerts      # 使用者所屬組織的根證書
    │       │   │   ├── keystore     # 使用者私鑰
    │       │   │   ├── signcerts    # 使用者的簽名證書
    │       │   │   └── tlscacerts   # TLS 連線通訊證書, SDK客戶端使用
    │       │   └── tls
    │       │       ├── ca.crt       # 組織根證書
    │       │       ├── client.crt   # 管理員身份的證書
    │       │       └── client.key   # 管理員私鑰
    │       ├── [email protected]
    │       │   ├── msp
    │       │   │   ├── admincerts
    │       │   │   ├── cacerts
    │       │   │   ├── keystore
    │       │   │   ├── signcerts
    │       │   │   └── tlscacerts
    │       │   └── tls
    │       │       ├── ca.crt
    │       │       ├── client.crt
    │       │       └── client.key
    │       ├── [email protected]
    │       │   ├── msp
    │       │   │   ├── admincerts
    │       │   │   ├── cacerts
    │       │   │   ├── keystore
    │       │   │   ├── signcerts
    │       │   │   └── tlscacerts
    │       │   └── tls
    │       │       ├── ca.crt
    │       │       ├── client.crt
    │       │       └── client.key
    │       └── [email protected]
    │           ├── msp
    │           │   ├── admincerts
    │           │   ├── cacerts
    │           │   ├── keystore
    │           │   ├── signcerts
    │           │   └── tlscacerts
    │           └── tls
    │               ├── ca.crt
    │               ├── client.crt
    │               └── client.key
    └── org2.testcryptogen.com
        ├── ca
        │   ├── ca.org2.testcryptogen.com-cert.pem
        │   └── e7ba20f396a106784d9076b8d62d8d3e8627991dc84c6ba85f                      31f382af9963ed_sk
        ├── msp
        │   ├── admincerts
        │   │   └── [email protected]
        │   ├── cacerts
        │   │   └── ca.org2.testcryptogen.com-cert.pem
        │   └── tlscacerts
        │       └── tlsca.org2.testcryptogen.com-cert.pem
        ├── peers
        │   ├── peer0.org2.testcryptogen.com
        │   │   ├── msp
        │   │   │   ├── admincerts
        │   │   │   ├── cacerts
        │   │   │   ├── keystore
        │   │   │   ├── signcerts
        │   │   │   └── tlscacerts
        │   │   └── tls
        │   │       ├── ca.crt
        │   │       ├── server.crt
        │   │       └── server.key
        │   └── peer1.org2.testcryptogen.com
        │       ├── msp
        │       │   ├── admincerts
        │       │   ├── cacerts
        │       │   ├── keystore
        │       │   ├── signcerts
        │       │   └── tlscacerts
        │       └── tls
        │           ├── ca.crt
        │           ├── server.crt
        │           └── server.key
        ├── tlsca
        │   ├── f2121a5969a1bfc7e8f7a04c2dd31e44f74d412f88dce68094                      a3bb904d87e593_sk
        │   └── tlsca.org2.testcryptogen.com-cert.pem
        └── users
            ├── [email protected]
            │   ├── msp
            │   │   ├── admincerts
            │   │   ├── cacerts
            │   │   ├── keystore
            │   │   ├── signcerts
            │   │   └── tlscacerts
            │   └── tls
            │       ├── ca.crt
            │       ├── client.crt
            │       └── client.key
            ├── [email protected]
            │   ├── msp
            │   │   ├── admincerts
            │   │   ├── cacerts
            │   │   ├── keystore
            │   │   ├── signcerts
            │   │   └── tlscacerts
            │   └── tls
            │       ├── ca.crt
            │       ├── client.crt
            │       └── client.key
            └── [email protected]
                ├── msp
                │   ├── admincerts
                │   ├── cacerts
                │   ├── keystore
                │   ├── signcerts
                │   └── tlscacerts
                └── tls
                    ├── ca.crt
                    ├── client.crt
                    └── client.key

二、 configtxgen

2.1 configtxgen的功能

configtxgen模組用來生成orderer的初始化檔案和channel的初始化檔案

即一般在cryptogen生成整個網路和證書後,用configtxgen生成Fabric系統的創始塊檔案和賬本(channel)的創始塊檔案

2.2 configtxgen的命令

使用configtxgen --help檢視幫助資訊:

[email protected]:/opt/hyperledger# configtxgen --help
Usage of configtxgen:
  -asOrg string
        Performs the config generation as a particular organization (by name), only including values in the write set that org (likely) has privilege to set
  -channelID string
        The channel ID to use in the configtx
  -configPath string
        The path containing the configuration to use (if set)
  -inspectBlock string
        Prints the configuration contained in the block at the specified path
  -inspectChannelCreateTx string
        Prints the configuration contained in the transaction at the specified path
  -outputAnchorPeersUpdate string
        Creates an config update to update an anchor peer (works only with the default channel creation, and only for the first update)
  -outputBlock string
        The path to write the genesis block to (if set)
  -outputCreateChannelTx string
        The path to write a channel creation configtx to (if set)
  -printOrg string
        Prints the definition of an organization as JSON. (useful for adding an org to a channel manually)
  -profile string
        The profile from configtx.yaml to use for generation. (default "SampleInsecureSolo")
  -version
        Show version information

  • asOeg:所屬的組織
  • channelID:channel的名字
  • configPath:配置檔案的路徑
  • inspectBlock:列印指定區塊檔案中的配置內容
  • inspectChannelCreateTx:列印建立通道的交易的配置檔案
  • outputAnchorPeersUpdate: 更新channel配置資訊
  • outputBlock:輸出區塊檔案的路徑
  • outputCreateChannelTx:標示輸出創始塊檔案
  • profile:配置檔案的節點
  • printOrg:以JSON格式列印組織的定義
  • version:顯示版本資訊

2.3 使用configtxgen模組建立orderer初始塊和channel初始塊

與cryptogen一樣,configtxgen需要先寫一個配置檔案,樣例如下:

Profiles:
    # 以下部分定義了整個系統的配置資訊
    # 組織定義識別符號,可自定義,命令中的-profile引數對應該識別符號
    TestTwoOrgsOrdererGenesis:
        # orderer 配置屬性,系統關鍵字不得更改
        Orderer:
            #引用下面名為OrdererDefaults的屬性
            <<: *OrdererDefaults
            Organizations:
                #引用下面的名為OrdererOrg的屬性
                - *OrdererOrg
        # 定義了系統中包含的組織
        Consortiums:
            SampleConsortium:
                #系統中包含的組織
                Organizations:
                    - *Org1   #引用了下文定義配置
                    - *Org2

    # 以下內容為channel的配置資訊
    # 通道定義識別符號,可自定義
    TestTwoOrgsChannel:
        Consortium: SampleConsortium
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2

# orderer節點相關資訊
Organizations:
    # orderer節點配置資訊
    - &OrdererOrg
        # orderer節點名稱
        Name: OrdererOrg
        # orderer節點編號
        ID: OrdererMSP
        # mps資料夾路徑
        MSPDir: msp
    
    # Orderer節點中包含的組織,如果有多個組織可以配置多個
    - &Org1
        Name: Org1MSP     # 組織名稱
        ID: Org1MSP       # 組織編號
        MSPDir: msp       # 組織msp檔名
        AnchorPeers:      # 組織的訪問域名和埠
            - Host: peer0.org1.testcryptogen.com
              Port: 7051

    - &Org2
        Name: Org2MSP
        ID: Org2MSP
        MSPDir: msp
        AnchorPeers:
            - Host: peer0.org2.testcryptogen.com
              Port: 7051

# orderer節點的配置資訊
Orderer: &OrdererDefaults
    OrdererType: solo           # orderer節點共識辦法
    Addresses:
        - orderer.testcryptogen.com:7050  # orderer監聽的地址
    BatchTimeout: 2s

    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 98 MB
        PreferredMaxBytes: 512KB

    Kafka:
        Brokers:
            - 127.0.0.1:9092
    Organizations:

Application: &ApplicationDefaults

    Organizations:

  • 建立orderer的創始塊:
configtxgen -profile TestTwoOrgsOrdererGenesis -outputBlock ./orderer.genesis.block
  • 建立channel初始塊:
configtxgen -profile TestTwoOrgsChannel -outputCreateChannelTx ./roberttestchannel.tx -channelID roberttestchannel
  • 建立錨點更新檔案:
configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org1MSPanchors.tx -channelID roberttestchannel -asOrg Org1MSP

三、 configtxlator

3.1 configtxlator的功能

configtxlator模組可以吧區塊鏈的二進位制檔案轉化成JSON格式檔案,以便閱讀

3.2 configtxlator的命令

[email protected]:/opt/hyperledger/order# configtxlator --help
usage: configtxlator [<flags>] <command> [<args> ...]

Utility for generating Hyperledger Fabric channel configurations

Flags:
  --help  Show context-sensitive help (also try --help-long and --help-man).

Commands:
  help [<command>...]
    Show help.

  start [<flags>]
    Start the configtxlator REST server

  proto_encode --type=TYPE [<flags>]
    Converts a JSON document to protobuf.

  proto_decode --type=TYPE [<flags>]
    Converts a proto message to JSON.

  compute_update --channel_id=CHANNEL_ID [<flags>]
    Takes two marshaled common.Config messages and computes the config update which
    transitions between the two.

  version
    Show version information

  • start:啟動configtxlator REST伺服器
  • proto_encode: 把JSON格式檔案轉化為protobuf
  • proto_decode:protobuf轉化成JSON格式檔案
  • compute_update: 計算配置更新量

四、orderer

4.1 orderer的功能

orderer模組 負責對交易進行排序,並將排好序的交易打包成區塊

4.2 orderer的命令

[email protected]:/opt/hyperledger/order# orderer --help
usage: orderer [<flags>] <command> [<args> ...]

Hyperledger Fabric orderer node

Flags:
  --help  Show context-sensitive help (also try --help-long and --help-man).

Commands:
  help [<command>...]
    Show help.

  start*
    Start the orderer node

  version
    Show version information

  benchmark
    Run orderer in benchmark mode

  • start*:啟動orderer節點
  • benchmark:採用基準本模式執行orderer

4.3 orderer兩種配置方法

4.3.1 使用環境變數方法配置

export set ORDERER_GENERAL_LOGLEVEL=debug
export set ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
export set ORDERER_GENERAL_LISTENPORT=7050
export set ORDERER_GENERAL_GENESISMETHOD=file
export set ORDERER_GENERAL_GENESISFILE=/opt/hyperledger/order/orderer.genesis.block
export set ORDERER GENERAL_LOCALMSPID=OrdererMSP
export set ORDERER_GENERAL_LOCALMSPDIR=/opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/msp
export set ORDERER_GENERAL_LEDGERTYPE=file
export set ORDERER_GENERAL BATCHTIMEOUT=10s
export set ORDERER_GENERAL_MAXMESSAGECOUNT=10
export set ORDERER_GENERAL_TLS_ENABLED=false
export set ORDERER_GENERAL_TLS_PRIVATEKEY=/opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn com/tls/server.key
export set ORDERER_GENERAL_TLS_CERTIFICATE=/opt/hyperledger/fabricconfig/
crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn. com/tls/server.crt
export set ORDERER_GENERAL_TLS_ROOTCAS=[/opt/hyperledger/fabricconfig/cryptoconfig/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/tls/ca.crt]

4.3.2 使用配置檔案方法來配置

General:
    LedgerType: file
    ListenAddress: 0.0.0.0
    ListenPort: 7050

    TLS:
        Enabled: false
        PrivateKey: /opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/tls/server.key
        Certificate: /opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/tls/server.crt
        RootCAs:
          - /opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/tls/ca.crt
        #ClientAuthEnabled: false
        ClientAuthRequired: false
        ClientRootCAs:


    LogLevel: debug
    LogFormat: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'
    GenesisMethod: file

    GenesisProfile: TestOrgsOrdererGenesis

    GenesisFile: /opt/hyperledger/order/orderer.genesis.block

    LocalMSPDir: /opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/msp

    LocalMSPID: OrdererMSP

    Profile:
        Enabled: false
        Address: 0.0.0.0:6060

    BCCSP:

        Default: SW
        SW:
            Hash: SHA2
            Security: 256
            FileKeyStore:
                KeyStore:

FileLedger:

    Location: /opt/hyperledger/order/production/orderer
    Prefix: hyperledger-fabric-ordererledger

RAMLedger:
    HistorySize: 1000
    
Kafka:
    Retry:
        ShortInterval: 5s
        ShortTotal: 10m
        LongInterval: 5m
        LongTotal: 12h
    
        NetworkTimeouts:
            DialTimeout: 10s
            ReadTimeout: 10s
            WriteTimeout: 10s
    
        Metadata:
            RetryBackoff: 250ms
            RetryMax: 3
        
        Producer:
            RetryBackoff: 100ms
            RetryMax: 3
        Consumer:
            RetryBackoff: 2s
    Verbose: false
    TLS:
        Enabled: false
        PrivateKey:
        Certificate:
        RootCAs:
     
    Version: 0.10.2.0

Debug:
    BroadcastTraceDir:
    DeliverTraceDir:

(1) General

General節點中包含了orderer模組的基本控制資訊配置項的詳細註釋如下所示:

  • LedgerType:賬本的型別,有ram、json、file三種類型可以選擇。ram表示賬本的資料儲存在記憶體中,一般用於測試環境。json和file表示賬本資料儲存在檔案中
  • ListenAddress:orderer伺服器監聽的地址,如果伺服器有多個網絡卡,一般需要指明監聽的具體地址
  • ListenPort:監聽埠
  • Enabled:啟用TLS時的相關配置
  • PrivateKey:私鑰檔案
  • Certificate:證書檔案
  • RootCAs:根證書檔案
  • ClientAuthRequired:啟用客戶端證書驗證
  • ClientRootCAs:客戶端根證書
  • LogLevel:日誌級別
  • LogFormat:日誌格式
  • GenesisMethod:初始塊的來源方式,provisional表示GenesisProfile選項指定的內容在預設配置檔案中的配置是自動生成的;file表示使用GenesisFile指定的現成初始的檔案
  • GenesisProfile:初始塊的profile,在configtxgen模組的配置檔案中指定
  • GenesisFile:初始塊檔案的路徑
  • LocalMSPDir:orderer模組msp檔案的路徑
  • LocalMSPID:orderer模組的編號,在configtxgen模組的配置檔案中指定
  • Enabled:是否啟動go的profile資訊
  • Address:go的profile資訊的訪問地址
  • Default:採用的密碼機制,SW為軟體程式時間;PKCS11為硬體的實現方式
  • Hash:演算法型別

(2) FileLedger

FileLedger節點中包含了orderer模組中賬本檔案相關的配置資訊

  • Location:賬本檔案的路徑
  • Prefix:賬本存放在臨時目錄時候的目錄名,如果已經指定了Location的值,則該選項無效

(3) RAMLedger

RAMLedger節點包含了orderer模組的賬本在記憶體中資料儲存方式的相關配置資訊

  • HistorySize:如果LedgerType型別為RAM時記憶體中儲存的區塊的數目,超過這個數目的區塊將被放棄

(4) Kafka

Kafka節點中包含了orderer模組中連線Kafka相關的資訊,如果orderer節點的排序模式選擇了solo,那麼該節點所有配置均無效

  • Retry:如果orderer在啟動的時候,Kafka還沒啟動或者Kafka宕機重試的次數
  • ShortInterval:操作失敗短重試狀態下重試的時間間隔
  • ShortTotal:短重試狀態下最多重試的時間間隔
  • LongInterval:長重試狀態下重試的時間間隔
  • LongTotal:長重試狀態下最多重試時間
  • DialTimeout:等待超時時間
  • ReadTimeout:讀超時時間
  • WriteTimeout:寫超時時間
  • RetryBackoff:Kafka叢集選舉leader的元資料
  • RetryMax:Kafka叢集選舉leader的元資料
  • RetryBackoff:重試訊息超時時間
  • Verbose:Kafka客戶端的日誌級別,在orderer的執行日誌中顯示Kafka的日誌資訊
  • Enabled:是否啟動TLS
  • PrivateKey:私鑰前面
  • certificate:Kafka的證書
  • rootCAs:驗證Kafka的根證書
  • version:Kafka的版本號

(5) Debug
Debug節點中包含了orderer模組除錯相關的選項

五、peer

5.1 peer的功能

peer模組是Fabric中最重要的模組,主要負責儲存區塊鏈資料、執行維護鏈碼、提供對外服務介面等作用

5.2 peer的命令

[email protected]:~# peer --help
Usage:
  peer [command]

Available Commands:
  chaincode   Operate a chaincode: install|instantiate|invoke|package|query|signpackage|upgrade|list.
  channel     Operate a channel: create|fetch|join|list|update|signconfigtx|getinfo.
  help        Help about any command
  logging     Log levels: getlevel|setlevel|revertlevels.
  node        Operate a peer node: start|status.
  version     Print fabric peer version.

Flags:
  -h, --help                   help for peer
      --logging-level string   Default logging level and overrides, see core.yaml for full syntax

Use "peer [command] --help" for more information about a command.

  • chaincode:chaincode相關操作,相關子命令 install|instantiate|invoke|package|query|signpackage|upgrade|list
  • channel:channel相關操作,相關子命令create|fetch|join|list|update|signconfigtx|getinfo
  • logging:日誌級別操作,相關子命令getlevel|setlevel|revertlevels
  • node:啟動peer節點伺服器

5.3 peer的環境變數和配置檔案

5.3.1 使用環境變數來配置

5.3.2 使用配置檔案來配置

peer的配置檔案的預設檔名為core.yaml,配置檔案為logging、peer、vm、chaincode、ledger這五大部分

(1) logging

(2) peer

(3) vm

(4) chaincode

(5) ledger