Hyperledger Fabric继peer启动之后的源码解析一
来源:互联网 发布:常用数字图像处理算法 编辑:程序博客网 时间:2024/04/30 11:14
对图中peer节点启动之后的peer address 172.17.0.3:7051灰色部分的的代码提取分析,7051:peer gRPC 服务监听端口。下面是Hyperledger中相关监听的服务端口
默认包括:以下监听的服务端口对应hyperledger0.6版本,与其他版本无关。
7050: REST 服务端口
7051:peer gRPC 服务监听端口
7052:peer CLI 端口
7053:peer 事件服务端口
7054:eCAP7055:eCAA
7056:tCAP
7057:tCAA
7058:tlsCAP
7059:tlsCAA
图中的CacheConfiguration()这个函数到底做了什么?请看下面
// CacheConfiguration计算和缓存经常使用的常量且计算常量做为包变量,按照惯例前面的全局变量
// 已经被嵌入在这里为了保留原始的抽象状态
func CacheConfiguration() (err error) {
// getLocalAddress 返回正在操作的本地peer的address:port,受到env:peer.addressAutoDetect的影响
getLocalAddress := func() (peerAddress string, err error) {
if viper.GetBool("peer.addressAutoDetect") {
// 需要从peer.address设置中获取端口号,并将其添加到已经确定的主机ip后
_, port, err := net.SplitHostPort(viper.GetString("peer.address"))
if err != nil {
err = fmt.Errorf("Error auto detecting Peer's address: %s", err)
return "", err
}
peerAddress = net.JoinHostPort(GetLocalIP(), port)
peerLogger.Infof("Auto detected peer address: %s", peerAddress)
} else {
peerAddress = viper.GetString("peer.address")
}
return
}
// getPeerEndpoint 对于这个Peer实例来说,返回PeerEndpoint,受到env:peer.addressAutoDetect的影响
getPeerEndpoint := func() (*pb.PeerEndpoint, error) {
var peerAddress string
var peerType pb.PeerEndpoint_Type
peerAddress, err := getLocalAddress()
if err != nil {
return nil, err
}
if viper.GetBool("peer.validator.enabled") {
peerType = pb.PeerEndpoint_VALIDATOR
} else {
peerType = pb.PeerEndpoint_NON_VALIDATOR
}
return &pb.PeerEndpoint{ID: &pb.PeerID{Name: viper.GetString("peer.id")}, Address: peerAddress, Type: peerType}, nil
}
localAddress, localAddressError = getLocalAddress()
peerEndpoint, peerEndpointError = getPeerEndpoint()
syncStateSnapshotChannelSize = viper.GetInt("peer.sync.state.snapshot.channelSize")
syncStateDeltasChannelSize = viper.GetInt("peer.sync.state.deltas.channelSize")
syncBlocksChannelSize = viper.GetInt("peer.sync.blocks.channelSize")
validatorEnabled = viper.GetBool("peer.validator.enabled")
securityEnabled = viper.GetBool("security.enabled")
configurationCached = true
if localAddressError != nil {
return localAddressError
} else if peerEndpointError != nil {
return peerEndpointError
}
return
}
// cacheConfiguration如果检查失败打一个错误日志
func cacheConfiguration() {
if err := CacheConfiguration(); err != nil {
peerLogger.Errorf("Execution continues after CacheConfiguration() failure : %s", err)
}
}// GetPeerEndpoint 从缓存配置中返回peerEndpointfunc GetPeerEndpoint() (*pb.PeerEndpoint, error) {if !configurationCached {cacheConfiguration()}return peerEndpoint, peerEndpointError}
// cacheConfiguration如果检查失败打一个错误日志
func cacheConfiguration() {
if err := CacheConfiguration(); err != nil {
peerLogger.Errorf("Execution continues after CacheConfiguration() failure : %s", err)
}
1 0
- Hyperledger Fabric继peer启动之后的源码解析一
- Hyperledger Fabric继peer启动之后的源码解析二
- Hyperledger Fabric继peer启动之后的源码解析三
- Hyperledger Fabric处理Peer与Peer之间通信的源码解析
- Hyperledger fabric 源码分析之 peer 服务启动过程
- Hyperledger fabric 源码分析之 peer 服务启动过程
- HyperLedger Fabric:自顶向下的方法--第1篇 编译fabric源码及手工搭建单个Peer节点网络
- Hyperledger Fabric的PBFT源码分析(一)
- Hyperledger Fabric创世纪块源码解析
- fabric源码解析7——peer的ChaincodeSupport服务
- fabric源码解析8——peer的System Chaincode
- fabric源码解析12——peer的MSP服务
- fabric源码解析13——peer的BCCSP服务
- Hyperledger Fabric 架构解析
- Hyperledger fabric0.6 peer启动过程源码分析
- fabric源码解析11——peer的Admin和Endorser服务
- fabric源码解析14——peer的gossip服务之初始化
- fabric源码解析15——peer的gossip服务之散播
- 出错啦,求指导 linker commond fialed with exit code 1
- 多线程如何并发访问SQLite数据库?
- openwrt下ngrok命令缺少libstdc++库的问题 can't load library 'libstdc++.so.6'
- android 放大招,上右右键,开启大招。求解??
- birt动态sql
- Hyperledger Fabric继peer启动之后的源码解析一
- SecureCRT萌新常用命令及Linux命令大全整理
- iOS POST请求,将base64编码的图片数据传输给后台,转义字符消失
- ora11g 安装报错ins_emagent.mk
- PHP获取汉字首字母函数
- VMware Workstation 12 Pro 安装kali2.0
- 关于一个布局里面显示多个接口里面数据
- 显示不了安卓虚拟机的画面
- Android6.0,7.0权限检测授权后报奇怪的null指针