Blocks
如何用 Python 解析塊?
我正在為乙太坊區塊鏈建構一個基本的分析框架。作為第一步,我需要提取數據,我想在 Python 中執行此操作。我一直在 OSX 上使用 Geth 作為客戶端,因此,據我了解,區塊鏈本地儲存
~/Library/Ethereum/chaindata
在 LevelDB 中,即儲存在二進製文件中,如496355.ldb
.
- 如何解析
.ldb
文件?有沒有我可以使用的 Python 庫?我查看了 pyethereum,但不確定在哪裡查看,因為文件非常稀疏。- 我可以使用etherchain.org API,但這會涉及許多 API 呼叫,並且可能會讓 etherchain.org 的好人不高興。這就是為什麼我更喜歡將區塊鏈解析為本地儲存在我的機器上的原因。但是暫時忽略這個問題,有沒有人知道 API 呼叫交易數據的結果的簡短指南,導致數據如下:
{'accountNonce': '200642', “金額”:2678970350000000000, 'blockHash': '0x47525d00eab0dcd87e9f8b0e9de2fe9f553f72576ef4f892ace49b2832e985bd', 'block_id': 1039153, 'gasLimit': 21000, '雜湊': '0x41bb75d8b20ae7e23fa7457d21a30a4007d0eb97fdb887caac834b759eeb3572', 'isContractTx':無, '新契約':0, 'parentHash': '0x41bb75d8b20ae7e23fa7457d21a30a4007d0eb97fdb887caac834b759eeb3572', '價格': 50000000000, '收件人': '0x30906581413d556de1a018adbe6cc63c88d58512', '發件人': '0x2a65aca4d5fc5b5c859090a6c34d164135398226', '時間': '2016-02-21T18:53:56.000Z', 'txIndex':無}
我相信我了解這些數據的大部分,但非常感謝更多資訊來填補我的理解空白。
在跟隨這篇博文之後,我實現了一個比特幣區塊鏈解析器。我沒有嘗試將其更改為與乙太坊區塊鏈一起使用,但也許它可以為您提供一些指導。這是一個用 Go 實現的解析器,希望能給你一些乙太坊特定的例子。
您的 geth 節點還將充當 JSON-RPC 伺服器。您可以使用 APIs wiki 頁面來爬取區塊鏈並提取區塊數據。這是一個有趣的 git repo,你可以分叉。雖然它有點顯示並且需要一些程式碼修改,因為所有者不再維護它。您會在該 repo 上找到一個執行速度快得多的拉取請求,但是它需要進行更多修改才能工作。