以太坊數據庫中都存了什么
以太坊使用的數據庫是一個NOSQL數據庫,是谷歌提供的開源數據leveldb.
這里嘗試通過分析以太坊數據庫存儲了什么來分析以太坊可能為我們提供哪些關於區塊鏈的API.
存儲內容
NOSQL是一個key-value數據庫,可以當做一個磁盤上的map數據結構.有以下key-value的映射.
block number+block hash->block header
block number+block hash->block difficulity
block number->block hash
block hash->block number
block number+block hash-> block body (transactions 默克爾樹)
block number+block hash-> block receipts (交易執行結果)
tx hash->tx
receipts hash->receipts
可以進行的查詢
看看web3提供的關於區塊鏈的api就大致曉得了,可以進行哪些查詢.
不可以進行的查詢
比如我想在區塊鏈上查詢某個地址的所有交易,這是不行的,因為數據庫中沒有直接保存.想要獲得,必須遍歷整個數據庫.