一段时间以来,我一直在研究区块链,并且一直在寻找信息,以解释区块链分类帐的保存位置以及如何在本地保存(例如,在整个节点的本地)。我大部分时间都发现状态数据库被以太坊或Hyperledger Fabric使用LevelDB或RocksDB e.t.c来保存状态信息。我一直在努力挣扎,不知道区块链分类帐保存在哪里,除了我正在研究用于存储新的LinkedList和Merkle Tree(哈希树)的状态保存在某些磁盘键值存储/数据库中之外全部节点和半节点可以创建并散列并保存到merkle树中以供验证的块,可以查询和验证是否存在事务。
谢谢,最好
罗希特
答案 0 :(得分:1)
在比特币核心中,块存储在数据目录下.dat
filder中的blocks
文件中(Linux上的默认值为~/.bitcoin
)。这些文件不一定以任何严格的方式进行编号或组织,因为它们被下载为可用,而不是等待每个顺序块变得可用于从同位体下载。由于这些原因,.dat
文件中有一个levelDB(在~/.bitcoin/blocks/index
中),该数据库通过存储.dat
文件的名称和位置来索引区块链。
链接列表和merkle树不是数据存储机制,而是抽象数据类型,它可以作为平面文件等形式存在于数据库中。merkle树可以提高验证速度,因为它可以提高验证算法的效率,通常是哈希函数。
答案 1 :(得分:1)
在Hyperledger Fabric中,状态数据库不是 not 用于存储所有块,它仅保存资产的当前状态,例如如果一个银行帐户有10笔借项交易,另一笔2贷项交易,则状态数据库的当前值为8。
实际块保存在对等体的本地文件中,可以通过SDK查询。