为什么 Hyperledger Fabric 需要单独的数据库?
Why separate database is needed in Hyperledger Fabric?
我是 Hyperledger Fabric 的新手,我似乎不了解在这个区块链中使用 LevelDB 或 couchDB。
区块链本身应该是数据库。
提前致谢。
作为区块链的 Hyperledger Fabric 是一个经过许可的网络,允许在不使用加密货币的情况下在网络上的已知实体之间进行机密交易。为了与 Fabric 网络交互,我们使用在 fabric 中通常称为 chaincode
或在其他区块链网络中通常称为 smart contracts
的程序。
为了解决你的第一个问题,在区块链中使用 LevelDB
或 CouchDB
是为了存储通过使用 chaincode
执行的交易在现有合同的状态在网络中。与其他数据库相比,LevelDB 提供了一种优化的存储 key-value
对的方式。
进一步阐述 Ledger 由两种类型的记录组成:
TxN Logs - They are stored in level DB and are immutable as they are immutable, a simple DB with less overhead was a clear choice
hence level DB
.
State - By default this is also implemented in LevelDB but since in real-time application you will need to execute queries on the
DB to get some insights out of data there is an option to replace it
with CouchDb which provides a sql-like query language to perform
actions.
回答你的第二个问题,区块链应该是一个数据库,它只是硬币的一面。区块链包含许多其他部分,如许可网络、证书颁发机构、数据库只是完整区块链的一部分,特别是如果我们谈论 Fabric
。
让我试着解释一下。您会看到区块链系统的基本属性之一是数据不变性。它基本上被设计成一个仅附加的数据库。但在现实生活中,有规律可循,开发人员需要一种方法来纠正他们的错误。 Fabric 的解决方法是引入 2 个数据库。
Leveldb 建立在对等节点上,只有创建和读取访问权限(您不能从节点中删除它)。这使得它不可变地实现了区块链的 属性。
另一方面,CouchDB 是一个具有完整 CRUD 访问权限的附加数据库。你可以更新和删除你想要的数据,这个数据库是处理你将在前端应用程序上存储和显示的大规模数据的数据库。请记住,此数据库是可选的。
创建超级账本应用程序时,数据存储方式如下所示。为每个对等创建了 2 个数据库(假设你有一个 couchdb 连接)
我是 Hyperledger Fabric 的新手,我似乎不了解在这个区块链中使用 LevelDB 或 couchDB。 区块链本身应该是数据库。
提前致谢。
作为区块链的 Hyperledger Fabric 是一个经过许可的网络,允许在不使用加密货币的情况下在网络上的已知实体之间进行机密交易。为了与 Fabric 网络交互,我们使用在 fabric 中通常称为 chaincode
或在其他区块链网络中通常称为 smart contracts
的程序。
为了解决你的第一个问题,在区块链中使用 LevelDB
或 CouchDB
是为了存储通过使用 chaincode
执行的交易在现有合同的状态在网络中。与其他数据库相比,LevelDB 提供了一种优化的存储 key-value
对的方式。
进一步阐述 Ledger 由两种类型的记录组成:
TxN Logs - They are stored in level DB and are immutable as they are immutable, a simple DB with less overhead was a clear choice hence
level DB
.State - By default this is also implemented in LevelDB but since in real-time application you will need to execute queries on the DB to get some insights out of data there is an option to replace it with CouchDb which provides a sql-like query language to perform actions.
回答你的第二个问题,区块链应该是一个数据库,它只是硬币的一面。区块链包含许多其他部分,如许可网络、证书颁发机构、数据库只是完整区块链的一部分,特别是如果我们谈论 Fabric
。
让我试着解释一下。您会看到区块链系统的基本属性之一是数据不变性。它基本上被设计成一个仅附加的数据库。但在现实生活中,有规律可循,开发人员需要一种方法来纠正他们的错误。 Fabric 的解决方法是引入 2 个数据库。
Leveldb 建立在对等节点上,只有创建和读取访问权限(您不能从节点中删除它)。这使得它不可变地实现了区块链的 属性。
另一方面,CouchDB 是一个具有完整 CRUD 访问权限的附加数据库。你可以更新和删除你想要的数据,这个数据库是处理你将在前端应用程序上存储和显示的大规模数据的数据库。请记住,此数据库是可选的。
创建超级账本应用程序时,数据存储方式如下所示。为每个对等创建了 2 个数据库(假设你有一个 couchdb 连接)