ProtocolManager详解
ProtocolManager
,从字面上看是协议管理器,负责着p2p
通信协议的管理。它连接了p2p
的逻辑层peer
与顶层peer
之间的调用,从顶层将协议传递至逻辑层,再从逻辑层得到message
传递到顶层。
fastSync
规定了同步的模式 ;acceptTxs
是节点是否接受交易的阀门,只有当pm.acceptTxs == 1
时,节点才会接受交易。这个操作只会在同步结束后再开始,即同步的时候节点是不会接受交易的;SubProtocols
中是ethereum的通讯协议,通常只有一个值,即eth63
。downloader
是一个下载器,用于主动从远程节点中获取hashes
和blocks
。fetcher
则被动的收集网络其他ethereum节点发过来的同步通知,进行验证,并做出相应的处理。
ProtocolManager.Start()
启动了四条go
程,分别是交易订阅广播协程(txB