本文主要从源码角度,分析了比特币btcd 版 的网络相关流程的分析。
1 主要流程
主要流程.png
2 Addrmgr.New 地址管理器
Addrmgr.png
3 新生成server的结构
server的结构.png
4 syncManager.New 同步管理器
syncManager.png
5 connManager.new 连接管理器
connManager.png
5.1 OnAccept 请求进来时触发的函数
OnAccept.png
其中AssociateConnection 是比较重要的。主要启动了stallHandler/inHandler/queueHandler/outHandler/pingHandler 流程如下:
AssociateConnection.png
5.2 onConnection 请求出去时的回调函数
onConnection.png
6 新建peerHandler
peerHandler.png
7 本文参考
btcd 源码
8 其他
本文完成流程图见
链接:https://pan.baidu.com/s/1VF_6fC146Pf7pBOmBOc3ZA&shfl=sharepset 密码:r89i
本文是《循序渐进比特币》的第十四篇-《比特币btcd P.2.P 流程分析》。
如果有疑问,可以直接留言,也可以关注公众号 “链人成长chainerup” 提问留言,或者加入知识星球“链人成长”~