Go-Ethereum

導出所有內部交易的最快方法是什麼?

  • September 5, 2019

我知道“內部交易”不包含在區塊鏈中,只能通過重播交易和收聽CALLCALLCODE以及其他類似的操作碼來檢索。Parity 和 Geth 都提供了這樣做的方法

但是,我無法執行 Geth / Parity 的完全同步。Geth 花了一個多月的時間進行同步,使用了大約 800 GB,截至昨天不想再執行了,失敗了Fatal: Error starting protocol stack: missing block number for head header hash. 我無法找到解決方案,因為重新同步對我來說並不是一個真正的選擇。另一方面,我大約一周前開始同步 Parity,這個過程一開始很快,在塊 #2393000 附近慢到爬行。

據我所知,如果我想獲得內部交易,我不能使用扭曲/快速同步。另外,我不能使用 Infura,因為它不提供適當的 JSON RPC 介面。我可以使用 Etherscan,但這似乎是在作弊——如果你從中心端點獲取數據,那麼擁有去中心化系統的意義何在?如果其他一切都失敗了,我可能不得不使用它,但我會很感激一些指示。我確信我不是唯一一個嘗試這樣做的人。

TL;DR:同步節點的最快方法是什麼,以便我可以從中獲取內部事務?如果做不到這一點,還有什麼其他選擇可以獲取這些數據?

事實證明,SSD 磁碟上的 Parity 同步速度快得多。

編輯: …它是,但獲取內部交易非常慢。最近 Geth 1.8.0 出來了,它的同步速度似乎更快(儘管在 HDD 上仍然很慢)並且支持tracers。我們會看看情況如何。

好闕

根據 geth 幫助文件,您可以通過 3 種方式同步到網路:

  1. –syncmode full: Geth 客戶端會下載 Block header + Block data + full Validation

$$ Is called eth full node $$ 2. –syncmode fast:Geth 客戶端將下載塊頭 + 塊數據 + 驗證最後 1k 交易。 3. –syncmode light:Geth 客戶端將下載目前狀態 + 根據需要詢問節點。

$$ Light node [It will request missing blocks from full nodes $$

您可以更改同步模式,我指定 –syncmode 以及命令提示符。快是好的。但是,如果您沒有時間和空間,請嘗試使用光。

引用自:https://ethereum.stackexchange.com/questions/38594