Blockchain
如何訪問比特幣的交易數據庫?
我想處理比特幣網路的交易。據我了解,Bitcoin-Qt 客戶端會在本地下載並儲存所有這些資訊。
自 0.8 版以來,LevelDB 已用於訪問此數據。我在blocks/index和chainstate中找到了兩個數據庫。但是,我無法理解內容。第一個條目如下所示:
B = ??????{?:???????`?5g??
我在正確的軌道上嗎?我在哪裡可以找到數據的規範?
為區塊鏈編寫自己的解析器的最佳方法是找到已經存在的原始碼,並從中推斷出精確的底層資料結構以及如何解析和解釋它。例如這裡的 C++ 和這裡的 C# - 還有很多其他的。
區塊鏈中的數據以自定義二進制格式儲存,在沒有幫助的情況下很難解開;這個連結似乎和任何開始整體結構一樣好。
有許多“陷阱”需要提防。例如:
- ’endianess’即必須在解釋之前反轉二進制數字和
- 必須計算與交易相關的一些有趣的值,例如地址
- 內部使用的數字非常大的“大數字”,您可能需要自定義程式碼/庫來處理它們
必須將您的結果與通過區塊鍊和blockexplorer以及bitcoind.exe API免費提供的結果進行比較。否則很容易拉出看似有效的無意義交易。我根據經驗說話。
雖然為區塊鏈編寫自己的解析器是一個值得學習的練習,但恕我直言,使用比特幣 API 並忽略任何“真實”程式碼的底層區塊鏈數據庫會更好。
訪問交易數據庫進行分析的最佳方式可能是通過blockchain.info API。你也可以使用比特幣區塊瀏覽器;事實上,這就是對比特幣網路的研究所做的。