乾貨 以太坊同步模式原始碼解析

2021-09-24 09:02:34 字數 896 閱讀 5243

以太坊節點同步的時候支援三種模式:fast,light,full。而官方文件中已經明確--fast和--light引數選項已經被廢棄。那麼本篇部落格就帶大家看一下關於此引數的源**,深入了解同步模式的底層轉變

首選從源**中找到eth/**********/modes.go。從檔案的名字就可得知此檔案是用來定義模式的,所謂modes就是指的同步模式。下面我們看一下此檔案內的所有源**,然後再逐一分析。

package **********

import "fmt"

// syncmode represents the synchronisation mode of the **********.

type syncmode int

const (

fullsync  syncmode = iota // synchronise the entire blockchain history from full blocks

fastsync                  // quickly download the headers, full sync only at the chain head

lightsync                 // download only the headers and terminate afterwards

func (mode syncmode) isvalid() bool 

也就是說numberu64()返回的是最新區塊的頭部的number。

現在整理一下這段**的整體邏輯就是,當同步模式為fast並最新區塊的高度大於0(已經同步過一部分資料)時,程式自動將同步模式轉變為full,並列印警告資訊。到這裡,整個區塊的同步模式已經豁然開朗了。

通過上面代付的分析,我們得到以下結論:

乾貨 以太坊同步模式原始碼解析

以太坊節點同步的時候支援三種模式 fast,light,full。而官方文件中已經明確 fast和 light引數選項已經被廢棄。那麼本篇部落格就帶大家看一下關於此引數的源 深入了解同步模式的底層轉變。首選從源 中找到eth modes.go。從檔案的名字就可得知此檔案是用來定義模式的,所謂mode...

64 原始碼 以太坊交易簽名解析原始碼解讀

上篇文章 以太坊交易簽名過程原始碼解析 從原始碼角度分析了乙個合約呼叫的的簽名過程,簽名後的交易傳送到以太坊節點後,節點需要從簽名交易中還原出公鑰 從公鑰中單向計算出賬號位址 進而將交易放入交易池中。本文從 go ethereum 原始碼的出發,看看如何從簽名交易中還原出公鑰。我們使用上文中最後得到...

原始碼安裝以太坊 wtc

1 安裝go 先更新一下 sudo apt get update sudo apt get y upgradesudo tar xvf go1.9 2.linux amd64.tar gzsudo mv go usr local設定路徑vi etc profile export path path ...