Skip to main content
 首页 » 操作系统 » linux系统

Go语言+区块链教程源代码Orderer localconfig

  Go语言+区块链教程Fabric1.0源代码分析Orderer localconfig,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。

  # Fabric 1.0源代码笔记 之 Orderer #localconfig(Orderer配置文件定义)

  ## 1、配置文件定义

  ```bash

  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: #本地私钥文件路径,默认指向<mspConfigPath>/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版本号

  #代码在/etc/hyperledger/fabric/orderer.yaml

  ## 2、TopLevel结构体定义

  ```go

  type TopLevel struct {

      General General

      FileLedger FileLedger

      RAMLedger RAMLedger

      Kafka Kafka

  type General struct {

      LedgerType string

      ListenAddress string

      ListenPort uint16

      TLS TLS

      GenesisMethod string

      GenesisProfile string

      GenesisFile string

      Profile Profile

      LogLevel string

      LogFormat string

      LocalMSPDir string

      LocalMSPID string

      BCCSP *bccsp.FactoryOpts

  type TLS struct {

      Enabled bool

      PrivateKey string

      Certificate string

      RootCAs []string

      ClientAuthEnabled bool

      ClientRootCAs []string

  type Profile struct {

      Enabled bool

      Address string

  type FileLedger struct {

      Location string

      Prefix string

  type RAMLedger struct {

      HistorySize uint

  type Kafka struct {

      Retry Retry

      Verbose bool

      Version sarama.KafkaVersion

      TLS TLS

  type Retry struct {

      ShortInterval time.Duration

      ShortTotal time.Duration

      LongInterval time.Duration

      LongTotal time.Duration

      NetworkTimeouts NetworkTimeouts

      Metadata Metadata

      Producer Producer

      Consumer Consumer

  type NetworkTimeouts struct {

      DialTimeout time.Duration

      ReadTimeout time.Duration

      WriteTimeout time.Duration

  type Metadata struct {

      RetryMax int

      RetryBackoff time.Duration

  type Producer struct {

      RetryMax int

      RetryBackoff time.Duration

  type Consumer struct {

      RetryBackoff time.Duration

  //代码在orderer/localconfig/config.go

评论列表暂无评论
发表评论
微信