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