Export

如何“導出表” - 從 ETH 區塊鏈保存乙太坊智能合約的狀態?

  • September 22, 2021

在傳統數據庫中,您可以只導出表並保存所有數據。

例如,如果您去 etherscan,您可以查看和閱讀契約。我想知道,我如何在某個區塊“導出”特定合約的數據?

我不想下載整個區塊鏈,但我只想要某個智能合約的數據“快照”。這樣做的最簡單方法是什麼?

在傳統數據庫中

$$ … $$

好的,我們來看看傳統數據庫和公共區塊鏈的相似之處。

  • 都儲存結構化數據
  • 兩者都可以通過事務更新
  • 兩者都可以查詢請求數據

要從傳統數據庫中查詢數據,您只需連接到它並發送您的請求。值得注意的是,在這種情況下,可以將數據庫提供商與公共區塊鏈的完整節點進行比較,因為數據庫軟體會跟踪數據庫的每次更新並為您提供結果。主要區別在於,傳統數據庫不儲存歷史狀態,並且在大多數情況下也不儲存事務歷史。

我不想下載整個區塊鏈,但我想要特定智能合約的數據“快照”。這樣做的最簡單方法是什麼?

從技術上講,這是不可能的。要獲取某個狀態的快照,您必須了解所有歷史狀態並送出所有事務以計算後續狀態,直到您到達快照塊。所以對你的問題的簡短回答是:執行一個完整的節點。

但是,顯然有一些服務允許您訪問最新狀態,例如https://archivenode.io。這並不能真正回答您的問題,但它應該可以幫助您了解為什麼不能在不執行節點的情況下簡單地導出數據。

如果您知道合約部署在哪個區塊,您可以在該區塊編號處分叉鏈,然後在該點從合約中查詢您需要的詳細資訊。

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