如何收集 Uniswap 代幣對的完整價格歷史記錄?( 幫助 )
CoinGecko.com 和 Dextools.io 等網站如何獲取代幣對的完整價格歷史記錄?
我知道我可以查詢 Uniswap 的 theGraph,但這僅限制 1000 個條目。這些網站如何顯示超過 1000 次的交易歷史?
誰能建議我如何收集如此大量的數據?我應該為此使用 Etherscan 嗎?
所有交易資訊都已顯示在 Etherscan 上,但這種數據聚合最有效的方法是什麼?
我對此真的很陌生,我正在嘗試通過建構項目來學習。
提前致謝!
簡短的回答:他們可能自己執行一個存檔節點(一個不修剪舊狀態的完整乙太坊節點),執行一個本地索引器或兩者兼而有之。您可以這樣做,或使用付費服務。
更長的答案:每當您查詢數據時,您都在與擁有該數據的伺服器進行通信,請求它,然後他們將其發送過來。這需要成本和頻寬。網際網路上的許多服務都會免費為您提供數據,但有一定的限制。這也適用於記憶體區塊鏈數據的服務。區塊鏈本身是不允許的,但如果我獨立索引鏈數據,我可以設置我想要分發多少的限制。我們將探索三種自行獲取數據的方法。
存檔節點:區塊鍊是無許可的,這意味著任何人都可以執行一個節點。這意味著,如果您執行存檔節點,您將在本地擁有您可能想要的所有數據。一個正常的完整節點會修剪舊狀態(儘管它確實執行了從創世開始的每一個狀態),但一個存檔節點會保留一切。這些可能非常大 - 我認為 > 4TB 是目前狀態(2021 年 7 月下旬),dyor。
本地索引器:如果您沒有處理存檔節點的硬體/容量,您可能需要考慮執行索引器。索引器可以在網路上的節點中查詢您想要的數據並為您在本地建立索引。您可以編寫自己的程序來執行此操作,或使用TrueBlocks 之類的套件。
付費服務:
我應該為此使用 Etherscan 嗎?
Etherscan 的免費層限制為每秒 5 個請求(源),所以它會很慢。(例如,1000 個請求需要三分鐘以上。)上面連結的頁面說您可以聯繫他們以升級您的計劃,因此他們可以安排付費服務,為您提供所需的訪問權限。還有像Alchemy這樣的 API 服務,專門為區塊鏈數據提供 API。像 Alchemy 這樣的服務通常有一個免費層,但如果你想抓取大量數據,你可能會為此付費。請在使用前調查定價。
希望有幫助!