当我试图理解区块链技术时,我遇到了HyperLedger Fabric。根据文档,它是区块链技术的实现。
这是什么意思?区块链只是一个概念,而HyperLedger Fabric是该概念的一种实现吗?
更新: Hyperledger Fabric将交易存储在哪里?我知道它是一个点对点架构,每个节点都有交易记录的副本,但通常这些交易记录是不断增长的集合,那么每个节点是否都有日益增长的交易记录的副本?我还不清楚。社区推荐使用哪种数据库?
当我试图理解区块链技术时,我遇到了HyperLedger Fabric。根据文档,它是区块链技术的实现。
这是什么意思?区块链只是一个概念,而HyperLedger Fabric是该概念的一种实现吗?
更新: Hyperledger Fabric将交易存储在哪里?我知道它是一个点对点架构,每个节点都有交易记录的副本,但通常这些交易记录是不断增长的集合,那么每个节点是否都有日益增长的交易记录的副本?我还不清楚。社区推荐使用哪种数据库?
区块链是一种保存数据于分布式网络的“想法”。在维基上它被定义为:
区块链——是一种维护着不断增长的、由记录(块)组成的分布式数据库。每个块都包含了一个时间戳和指向前一个块的链接,因此过去的数据不能被篡改。
许多项目将区块链作为其核心技术,包括:
Hyperledger 不是实现,而是一个关于可信任网络应该如何工作的规范。
Hyperledger 规范有来自不同供应商的几种实现:
P.S. 每家公司都试图实现自己对 Hyperledger 的愿景,目前这些实现彼此不兼容。
简单来说,Hyperledger Fabric 就像 MySQL 对于数据库一样,是区块链技术中的一种。
1.2 为什么使用 Fabric?
早期的区块链技术虽然能够服务于某些需求,但却并不适用于特定行业的需求。为了满足现代市场的需求,Fabric 基于针对特定行业设计的思路进行开发,以解决特定行业应用场景的多种复杂需求,同时还吸取了该领域先驱者们的经验教训,解决了可扩展性等问题。Fabric 提供了在多个区块链网络上实现权限控制、隐私保护和机密性的全新方法。
- https://github.com/hyperledger/fabric/blob/master/docs/protocol-spec.md#12-why-the-fabric
这是什么意思?区块链只是一个概念,而HyperLedger是该概念的实现吗?
我认为这取决于您对区块链(最初拼写为“block chain”,如上所示)的定义。
最初的定义可以在比特币cpp代码库的评论中找到。
https://github.com/bitcoin/bitcoin/blob/4405b78d6059e536c36974088a8ed4d9f0f29898/main.h#L807-L812
并在此处。
https://github.com/bitcoin/bitcoin/blob/4405b78d6059e536c36974088a8ed4d9f0f29898/main.h#L1014-L1019
我认为区块链的一个定义特征是不可篡改性。如果区块链的历史记录可以通过勾结进行更改,那么在我看来它就不是一个区块链。我认为任何私有/许可的区块链都无法做出这样的保证,因为如果需要或想要更改某些内容,你可以轻易地勾结来进行更改,就像普通数据库一样(不要与仅追加更改混淆)。比特币由于 PoW(工作量证明)使这变得非常困难,如果你想改变过去,你需要矿工重写之后的所有区块,这是非常昂贵的。他们正在对 Fabric 进行大量开发,我相信即使是在小版本发布时也会改变他们使用的技术栈,所以很难知道他们目前在做什么。 这是他们最新的指南:
http://hyperledger-fabric.readthedocs.io/en/latest/glossary.html
或者在此查看他们的代码库:https://github.com/hyperledger/fabric
看起来他们转移到了 Rocket Chat,他们的开发人员对技术问题很有帮助。 https://chat.hyperledger.org/home
有趣的是,我曾经与他们的开发人员讨论过这些问题,我得到的答案是他们正在使用 couchdb 来保存状态,并将 Apache Kafka 作为核心“区块链部分”。如果您查看他们的最新指南并将“通道”替换为“主题”,我可以看出他们仍在使用 Apache Kafka,但我没有在任何地方看到它被引用。
区块链和HyperLedger Fabric的区别
区块链是一种存储数据的技术,几乎是一个永久的数据库,只能写入一次,之后无法重写/编辑。
HyperLedger Fabric则将区块链作为其数据存储或数据库,并结合每个框架/平台策略所依赖的其他逻辑。或者我们可以称之为智能合约。
Hyperledger Fabric在哪里存储交易? 它存储在其区块链节点中。
每个节点都有交易记录的副本吗? 几乎每个节点都有所有交易历史记录的副本。按照设计,区块链需要至少50%的节点批准交易,因此另外50%的节点在一段时间后会有新交易的副本。
我还不清楚这个。社区推荐使用哪个数据库吗? 我对这个问题不太确定。