導出所有內部交易的最快方法是什麼?
我知道“內部交易”不包含在區塊鏈中,只能通過重播交易和收聽
CALL
,CALLCODE
以及其他類似的操作碼來檢索。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 種方式同步到網路:
- –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 以及命令提示符。快是好的。但是,如果您沒有時間和空間,請嘗試使用光。