超级账本中的数据存储

时间:2018-11-05 10:18:08

标签: hyperledger-fabric hyperledger blockchain ibm-blockchain

我已经开始学习超级账本。通过使用作曲家游乐场创建示例应用程序来熟悉它。我对使用超级账本的 去中心化存储 表示怀疑。我读了一些文档:

  • 在区块链中保存数据哈希以确保不变性。

  • 通过base64字符串将图像保存在区块链中(作为资产)。

有些事情很清楚,但很大一部分仍然不确定。他们是:

  • 区块链中存储的数据在哪里?是在ouchdb中吗?
  • 假设数据存储在benchdb中,并且通过乘子将新的对等方添加到通道中,那么是否意味着所有对等方的couchdb都已同步?

任何提及使用区块链进行数据存储,去中心化存储等的资源/教程都将非常有帮助。

谢谢!

3 个答案:

答案 0 :(得分:3)

区块链数据(也称为分类帐)存储为物理文件。 它包含链接的块,每个块由一组事务组成。每个状态更改都存储在此处。

相比之下,世界状态仅包含每种资产的当前状态,因为这是应用程序所需要的。

世界状态实现为数据库,couchdb是一个不错的选择,有一个更简单的选项可用,但就查询功能而言,它提供的功能要少得多。

当然,这意味着在任何时间点都可以轻松地从分类帐中重新创建世界状态。

将新的同级添加到渠道时,将从分类帐中创建其自己的世界状态。

这里描述了所有这方面的好读物:https://hyperledger-fabric.readthedocs.io/en/release-1.3/ledger/ledger.html

答案 1 :(得分:1)

  1. 数据存储在作为区块链的分类帐中。 Couchdb仅保存状态,可以从分类帐中刷新状态。 Couchdb帮助更快地查询区块链数据。
  2. 是的,通过闲聊,所有同级都将具有相同的块。 Couchdb只是从分类帐中读取数据并为其创建状态。

答案 2 :(得分:1)

为进一步说明,分类账不是从字面上存储业务对象,而是存储有关这些对象的重要信息/事实-因此这些重要事实的历史记录在分类账中,并且此重要事实的当前价值处于世界状态。对象(有关事实存储在分类帐和世界状态中的对象)位于外部数据存储中-可以称为“链下”数据。但是,我们存储在分类帐中的信息使我们能够了解有关事实并进行定位。希望这会有所帮助。