Skip to content

Latest commit

 

History

History
36 lines (15 loc) · 770 Bytes

同步.md

File metadata and controls

36 lines (15 loc) · 770 Bytes




状态

  1. eth/downloader/downloader.go 里new 一个downloader 对象,new 的时候会创建一个goroutine 执行eth/downloader/statesync.go 的stateFetcher 方法

  2. eth/downloader/statesync.go 的stateFetcher 等待触发d.stateSyncStart,然后循环调用runStateSync 方法

  3. runStateSync 启动gorotine调用run 方法,同时主线程如果再遇到触发了d.stateSyncStart,会return 方法

  4. run 方法调用loop 方法

  5. eth/downloader/statesync.go 的syncState 方法会触发d.stateSyncStart

  6. eth/downloader/downloader.go 的processFastSyncContent 方法触发syncState 方法,传入当前连接的远程节点的最新区块的header 信息

  7. header

  8. body

  9. recption

  10. processheader

  11. processstate