Hyperledger Fabric 核心模块peerer共识

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hyperledger Fabric 核心模块peerer共识相关的知识,希望对你有一定的参考价值。

peer 模块在Fabric 中被称为主节点模块 ,主要负 责存储区块链数据 、运行维护链码 、 提供对外付服务接口等作用

1. 命令行常用参数

peer 模块中常用的命令和参数如下所示 :
//命令
chaincode chaincode 相关操作相关 子命令 installlinstantiatelinvokelpackagelqueyIsegnpackagelupgradellist .
channel channel 相关操作 createlfetchljoin llistlupdate .logging node verser
参数 :
–Log levels getlevellsetlevellrevertlevels .
启动 peer 节点服务器
显示当前 peerf 服务器的版本
–logging level string 日志级别
–test coverprofile string 测试配置文件
–v , version 显示当前服务器的版本

2. peer 的环境变量

配置文件和环境变量是设置 peer 启动参数的重要手段

3. peer 模块的配置文件

peer 的配置文件的默认文件名为 croe.yaml , 配置文件分为 logging 、 peer 、 vm 、 chaincode 、ledger 这五大部分 。 各部分的详细含义如下所示 。

3.1 配置文件中 logging 相关的属性

logging节点定义了 peer 模块中所有模块的日志级别和日志格式,每个模块的日志级别
可以根据业务的需求定义成不一样的格式:日志分为 critical 、 error 、 warning 、 notice 、 info 、 debug 这六个级别 。

3.2 peer 节点相关的配置

peer 节点定义了 peer 模块一般的配置信息:

  • 通用属性
    • id: peer 节点的编号;
    • networkld: peer 节点的网络编号;
    • listenAddress : peer 节点 的监昕地址;
    • chaincodeListenAddress : chaincode 的监听地址;
    • address :访问地址;
    • addressAutoDetect :锚节点地址;
    • gomaxprocs : 最大有效数;
    • fileSystemPath :区块等数据的存放路径;
    • mspConfigPath : 当前节点 MSP 文件的路径 。

  • gossip
    • bootstrap : 启动节点后向哪些节点发起 gossip 连接,以加入网络 。 这些节点与本地
    节点需要属于同一组织 ;
    • endpoint :本节点在同一组织内的 gossip id ,默认为 peer. address;
    • useLeaderElection :用户组织节点的生成方式;
    • orgLeader : 当前节点是否为用户组织节点;
    • maxBlockCoimtToStore :保存到内存中的区块个数上限,超过则丢弃
    • maxPropagationBurstLatency : 保存消息的最大时间,超过则触发转发给其他节点 ;
    • maxPropagationBurstSize : 保存的最大消息个数,超过则触发转发给其他节点;
    • propagatelterations : 消息转发的次数 ;
    • propagatePeerNum :推送消息给指定个数的节点;
    • pulllnterval : 拉取消息的时间间隔;
    • pullPeerNum :从指定个数的节点拉取消息;
    • requestStatelnfolnterval :从节点拉取状态信息( Statelnfo )消息的间 隔 ;
    • publishStatelnfolnterval :向其他节点推送状态信息消息的 间隔;
    • publishCertPeriod : 启动后,在心跳消息中嵌入证书的等待时间 ;
    • statelnfoRetentionlnterval :状态信息消息的超时时间;
    • skipBlockVerification :是否不对区块消息进行校验, 默认为 false;
    • dialTimeout: gRPC 连接拨号的超时时间;
    • connTimeout : 建立连接的超时时间;
    • recvBuffSize :收取消息的缓冲大小;
    • sendBu旺Size : 发送消息的缓冲大小 ;
    • digestWaitTime :处理摘要数据的等待时间;
    • requestWaitTime : 处理 nonce 数据的等待时间 ;
    • responseWaitTime : 终止拉取数据处理的等待时间 。
    • aliveTimelnterval : 定期发送 Alive 心跳消息的时间间 隔;
    • aliveExpirationTimeout: Alive 心跳消息的超时时间;
    • reconnectlnterval : 断线后重连的时间间隔 ;
    • extema!Endpoint :节点被组织外节点感知时的地址,默认为空,代表不被其他组织
    所感知 。

  • events
    • address :事件监听器地址;
    • buffersize : 事件消息缓存数,超过该值会被阻塞;
    • timeout :队列阻塞的超时时间 。

  • tis
    • enabled :是否激活 tis;
    • cert :服务身份验证证书;
    • key :服务的私钥文件;
    • rootcert :根服务器证书;
    • serverhostoverride: tis 握手时候制定服务名称

  • BCCSP
    BCCSP 主要配置加密和解密类的相关信息,具体可以参考相关文档 。

3.3 vm 节点相关的配置

vm 节点定义 peer 和 docker 交互的相关配置
vm 节点配置项的详细注释如下所示:
• endpoint: docker 服务器 Daemon 的地址, 默认取端口的套接字;
• tls :启动 docker 的 tis 证书;
• attachStdout : 是否将 docker 消息绑定到指定 的输出;
• NetworkMode : chaincode 容器的网络命名模式;
• Dns :是否启用域名服务器;
• LogConfig: docker 容器的日志配置信息 ;
• Type :日志类型 ;
• Memory :占用内存 。

4. 配置文件中 chaincode 节点相关的配置

chaincode 定义了链码相关 的配置
• peerAddress : chaincode 中的 peer 服务器地址;
• builder :本地的编译环境为 docker 镜像;
• go lang : Go 语言版的 chaincode 的基础镜像;
• car: car 格式的 chaincode 生成镜文件时的基础镜像 ;
• java: Java 语言版的 chaincode 的基础镜像;
• node : Node 语言版的 chaincode 的基础镜像;
• startuptimeout :启动 cbaincode 容器时的超时时间,超过这个时间认为启动失败;
• executetimeout :执行 Invoke 和 Init 方法时的超时时间, 超过这个时间认为执行失败;
• mode : cbaincode 的运行模式, net 为网络模式, dev 为开发模式 , dev 模式下,可以
在容器外运行 cbaincode;
• keepalive: peer 节点和 chaincode 直接的心跳时间;
•system~ 系统 chaincode 的开关;
• logging-: chainoode 的日志级别 。

5. 配置文件中 ledger 节点相关的配置

ledger 节点定义了账本相关的配置
• state :状态存储数据库的配置 ;
• stateDatabase :数据库类型,目前支持 goleveldb 和 CouchDB 。
• couchDBConfig: stateDatabase 的类型为 CouchDB, CouchDB 相关的参数;
• enableHistoryDatabase : 是否保存状态的历史数据库, 生产系统中建议开启

以上是关于Hyperledger Fabric 核心模块peerer共识的主要内容,如果未能解决你的问题,请参考以下文章

Hyperledger Fabric 核心模块configtxgen工具

Hyperledger Fabric 核心模块Fabric-ca-server

Hyperledger Fabric 核心模块Fabric-ca-client

Hyperledger Fabric 核心模块orderer 共识

Hyperledger Fabric 核心模块configtxlator工具

Hyperledger Fabric 核心模块cryptogen 工具