浏览器
双核浏览器
游戏浏览器
高速浏览器
视频浏览器
IE浏览器
浏览器周边
手机浏览器
安卓游戏
音乐舞蹈
养成游戏
儿童游戏
仙侠手游
角色扮演
策略塔防
休闲益智
动作冒险
飞行射击
模拟经营
体育运动
赛车竞速
网络游戏
安卓软件
资讯阅读
生活服务
影音播放
购物理财
效率办公
趣味娱乐
交通出行
学习教育
摄影图像
在线音乐
系统工具
网络购物
聊天工具
安全杀毒
图片编辑
新闻资讯
软件资讯
游戏资讯
手机教程
手游攻略
游戏攻略
软件教程
IE专区
安卓专题
文章合集
电脑软件专题
安全软件
杀毒软件
系统安全
加密解密
防火墙
远程控制
木马查杀
影音软件
网络电视
视频播放
音乐播放
视频制作
音频编辑
录音录像
教育学习
外语学习
教育管理
早教启蒙
在线课堂
成人教育
资格考试
聊天社交
即时通讯
视频聊天
在线交友
变声器
表情包
办公软件
线上会议
文档管理
行业管理
考勤打卡
应用工具
输入法
下载工具
时钟日历
记事本
文件管理
计算器
编程开发
编程工具
JAVA相关
加壳脱壳
编程控件
数据库
网页源码
软件开发
补丁制作
系统美化
桌面制作
壁纸大全
系统主题
屏幕保护
桌面辅助
系统软件
系统优化
备份还原
系统检测
U盘工具
磁盘工具
驱动补丁
图文处理
图片素材
图像处理
图片制作
图片压缩
电子相册
抓图工具
其他软件
电子书籍
模拟器
辅助工具
交通出行
手机管理
其他工具
素材下载
字体素材
PPT素材
专区
文章合集
软件
游戏
浏览器
安卓专题
软件
游戏
浏览器
IEfans/ 新闻资讯/ 软件教程 /hyperledger fabric 简析start是什么?hyperledger fabric 简析start解答!

hyperledger fabric 简析start是什么?hyperledger fabric 简析start解答!

2023-02-23 23:40:01 编辑:匿名

以下内容皆为个人理解,并未参照任何文章数据,如有理解错误,欢迎指正。下面小编给大家介绍一下!

程序入口:peer/main.Go

在main.go中主要有四句重要代码,

peer/version : peer 版本。

node :  涉及本地节点的搭建,以及如何加入到网络,本机IP地址端口号,是VP节点还是NVP节点等。

network : 远程登录devops服务器,查询所有peer节点。

chaincode : chaincode三种操作deploy invoke query (通过命令行发送给devops服务器)

接着调用 mainCmd.Execute() 执行命令分发。

比较重要的模块是node,其中start命令负责该节点的初始化流程。

一、node/start

调用serve()函数

1. 调用 CacheConfiguration() 函数设置缓存数据,缓存数据包括该peer的LocalAdress、PeerEndpoint(是VP or NVP)等等

2. 设置服务器地址,创建服务器实例,后续代码会使用lis。

3.创建 createEventHubServer 该函数创建事件Hub服务器(创建线程运行),同时为该服务器创建监听实例,调用RegisterEventsServer 函数将EventHubServer注册到grpcService上。该函数有一部分关于TLS的调用,这里分析先不考虑HTTPS的情况,这并不影响我们分析fabric。

4.db.Start() start database 数据库处理模块需单独分析。

5. getSecHelper() 这里不分析安全模块

6. 调用 registerChaincodeSupport() 该函数主要作用是将系统chaincode部署到Docker上,同时根据第一个参数chainname创建ChainCodeSupport 实例,

该实例包括 chaincode路径、超时时间、chainname等数据信息。将得到的ChainCodeSupport实例注册到grpcServer。

值得注意的有两个函数

1)RegisterSysCCs 该函数注册部署系统chaincode,后续我们会分析更常规的部署chaincode(非系统链码)

2) RegisterChaincodeSupportServer 该函数比较重要,该函数向grpcServer注册chainCodeSupport实例,同时传入chainCodeSupport的服务规范。

如图在_ChaincodeSupport_serviceDesc 函数中Streams tag下存在Handler: _ChaincodeSupport_Register_Handler ,在chainCodeSupport实例

注册完成后,会调用_ChaincodeSupport_Register_Handler 函数,该函数会调用chainCodeSupport实例的Register函数,传入参数中有Server与clent

通信媒介stream,在Register函数中,chainCodeSupport实例会创建一个处理事件的handler,并运行processStream。

总结一下该流程:创建chainCodeSupport实例,并将该实例服务注册到grpcServer,grpcServer为该服务器生成stream,chainCodeSupport实例监控该stream的输入,当有数据输入时调用handler的HandleMessage的数据处理,经过分析判断chainCodeSupport的stream是与docker的chainCode通讯的媒介。

以上就是关于hyperledger fabric 简析start的相关介绍,希望小编的内容能帮到大家!


相关推荐

软件更新