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 共识