区块链分类帐存储

时间:2018-11-20 09:13:50

标签: linked-list hyperledger-fabric blockchain ethereum merkle-tree

一段时间以来,我一直在研究区块链,并且一直在寻找信息,以解释区块链分类帐的保存位置以及如何在本地保存(例如,在整个节点的本地)。我大部分时间都发现状态数据库被以太坊或Hyperledger Fabric使用LevelDB或RocksDB e.t.c来保存状态信息。我一直在努力挣扎,不知道区块链分类帐保存在哪里,除了我正在研究用于存储新的LinkedList和Merkle Tree(哈希树)的状态保存在某些磁盘键值存储/数据库中之外全部节点和半节点可以创建并散列并保存到merkle树中以供验证的块,可以查询和验证是否存在事务。

谢谢,最好

罗希特

2 个答案:

答案 0 :(得分:1)

在比特币核心中,块存储在数据目录下.dat filder中的blocks文件中(Linux上的默认值为~/.bitcoin)。这些文件不一定以任何严格的方式进行编号或组织,因为它们被下载为可用,而不是等待每个顺序块变得可用于从同位体下载。由于这些原因,.dat文件中有一个levelDB(在~/.bitcoin/blocks/index中),该数据库通过存储.dat文件的名称和位置来索引区块链。

链接列表和merkle树不是数据存储机制,而是抽象数据类型,它可以作为平面文件等形式存在于数据库中。merkle树可以提高验证速度,因为它可以提高验证算法的效率,通常是哈希函数。

答案 1 :(得分:1)

在Hyperledger Fabric中,状态数据库不是 not 用于存储所有块,它仅保存资产的当前状态,例如如果一个银行帐户有10笔借项交易,另一笔2贷项交易,则状态数据库的当前值为8。

实际块保存在对等体的本地文件中,可以通过SDK查询。