fabric003 fabric核心模块 复习 与 Orderer模块的更为详细的介绍

上一章主要介绍了cryptogen,configtxgen 和 configtxlor

下面复习一下:

1、cryptogen 模块式生成组织结构和账号相关的模块 对应的配置文件例子是e2e_cli / crypto-config.yaml ;

     可以用crytogen generate 来生成对应的证书文件

2、configtxgen模块式生成orderer的初始化文件和channel的初始换文件 对应的配置文件例子是 configtx.yaml ;

     可以用以下命令生成orderer初始块:

     configtxgen -profile TestTwoOrgOrdererGenesis -outputBlock  ./orderer.genesis.block

     可以用以下命令创建channel初始块:

     configtxgen -profile TestTwoOrgOrdererGenesis -outputCreateChannelTx 

                                                              ./roberttestchannel.tx -channelID roberttestchannel

3、configtxlator模块可以把区块链的二进制文件转化为JSON格式的文件

上面是区块链的配置文件,下面的Orderer模块负责对交易进行排序,并将排序好的交易打包成区块

orderer 模块的配置信息


--环境变量配置:

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/  /orderer.qklszzn.com/tls/serve.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/crypto-config/                                                                       ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/tls/ca.crt ]
 


--配置文件:

General: #通用配置
    LedgerType: file #账本类型,包括ram、json和file,其中ram保存在内存中,生产环境推荐使用file
    ListenAddress: 127.0.0.1 #服务绑定的监听地址
    ListenPort: 7050 #服务绑定的监听端口
    TLS: #启用TLS时的相关配置
        Enabled: false #是否启用TLS
        PrivateKey: tls/server.key #Orderer签名私钥
        Certificate: tls/server.crt #Orderer身份证书
        RootCAs: #信任的根证书
          - tls/ca.crt
        ClientAuthEnabled: false #是否对客户端也进行认证
        ClientRootCAs:
    LogLevel: info #日志级别
    LogFormat: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'
    GenesisMethod: provisional #初始区块的提供方式,支持provisional或file,前者基于GenesisProfile指定的configtx.yaml中Profile生成,后者基于指定的初始区块文件
    GenesisProfile: SampleInsecureSolo #provisional方式生成初始区块时采用的Profile
    GenesisFile: genesisblock #使用现成的初始区块文件时,文件的路径
    LocalMSPDir: msp #本地msp文件的路径
    LocalMSPID: DEFAULT #MSP的ID
    Profile: #是否启用go profiling
        Enabled: false
        Address: 0.0.0.0:6060
    BCCSP: #密码库机制等,可以为SW(软件实现)或PKCS11(硬件安全模块)
        Default: SW
        SW:
            Hash: SHA2 #哈希算法类型
            Security: 256
            FileKeyStore: #本地私钥文件路径,默认指向/keystore
                KeyStore:
FileLedger: #基于文件的账本的配置
    Location: /var/hyperledger/production/orderer #存放区块文件的位置,一般为/var/hyperledger/production/orderer/目录
    Prefix: hyperledger-fabric-ordererledger #如果不指定Location,则在临时目录下创建账本时使用的目录名称

RAMLedger: #基于内存的账本最多保留的区块个数
    HistorySize: 1000
Kafka: #Orderer使用Kafka集群作为后端时,Kafka的配置
    Retry: #Kafka未就绪时Orderer的重试配置,orderer会利用sarama客户端为channel创建一个producer、一个consumer,分别向Kafka写和读数据
        ShortInterval: 5s #操作失败后的快速重试阶段的间隔
        ShortTotal: 10m #快速重试阶段最多重试多长时间
        LongInterval: 5m #快速重试阶段仍然失败后进入慢重试阶段,慢重试阶段的时间间隔
        LongTotal: 12h #慢重试阶段最多重试多长时间
        NetworkTimeouts: #sarama网络超时时间
            DialTimeout: 10s
            ReadTimeout: 10s
            WriteTimeout: 10s
        Metadata: #Kafka集群leader选举中的metadata请求参数
            RetryBackoff: 250ms
            RetryMax: 3
        Producer: #发送消息到Kafka集群的超时
            RetryBackoff: 100ms
            RetryMax: 3
        Consumer: #从Kafka集群读取消息的超时
            RetryBackoff: 2s
    Verbose: false #是否开启Kafka客户端的调试日志
    TLS: #Kafka集群的连接启用TLS时的相关配置
      Enabled: false #是否启用TLS,默认不开启
      PrivateKey: #Orderer证明身份用的签名私钥
      Certificate: #Kafka身份证书
      RootCAs: #验证Kafka证书时的CA证书
    Version: #Kafka版本号

两种方式都可以进行启动orderer,如果是通过docker可以使用环境变量配置方式,如果用命令启动则用配置文件比较好

Orderer模块由五个部分组成,General、FileLedger、RAMLedger、KafKa、Debug

  • General包含了Orderer模块的基本控制信息
  • FileLedger包含了Orderer模块中账本文件的相关配置
  • RAMLedger包含了Orderer模块中账本在内存中保存方式的配置信息
  • KafKa包含了Orderer模块中连接kafka相关信息,PS,如果orderer排序模式是solo,则该节点全部无效
  • Debug....不说了

你可能感兴趣的:(区块链)