以太坊系列之十五: 以太坊数据库
以太坊数据库中都存了什么
以太坊使用的数据库是一个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就大致晓得了,可以进行哪些查询.
不可以进行的查询
比如我想在区块链上查询某个地址的所有交易,这是不行的,因为数据库中没有直接保存.想要获得,必须遍历整个数据库.