hyperledger-fabric - 了解 Hyperledger Fabric 设置
问题描述
我是区块链新手,对比特币 PoW 方案有基本的了解。
在阅读了 Hyperledger Fabric 的关键概念https://hyperledger-fabric.readthedocs.io/en//latest/key_concepts.html后,我在理解设置方面有些困难。
在这里的Membership 部分 ,它说“KeyStore for Private Key:这个文件夹是为对等节点或排序节点的本地 MSP 定义的。” 但是组织可以有多个 Peer 节点。那么哪些节点负责私钥呢?我的理解是 private 应该只存储在一个地方。
对于整个Peer 部分(请参阅此链接),似乎表明 Peer 节点仅根据背书策略验证背书交易。共识算法呢?(例如 PoW、PoS、PoET 之类的东西)
我知道 Fabric 实现了Kafka(参见Hyperledger 架构,第 1 卷)。但是后来,我还在 arXiv 中发现了一篇让我更加困惑的论文A Byzantine Fault-Tolerant Ordering Service for the Hyperledger Fabric Blockchain Platform。这篇论文似乎表明排序节点也参与了拜占庭容错(BFT)。但是,我对排序节点的理解是,它们只负责对背书的交易进行排序并将它们广播到所有对等节点(参见此链接)。
现在,我对 Hyperledger Fabric 网络如何验证背书交易感到困惑。什么是默认的共识算法,它如何适应官方网站描述的Peer 部分的图片?
谢谢。
解决方案
那么哪些节点负责私钥呢?我的理解是 private 应该只存储在一个地方。
每个节点都有自己的私钥,安全地存储在自己的文件系统中,或者只有它可以访问的硬件设备上。
似乎表明 Peer 节点仅根据背书策略验证背书的交易。共识算法呢?(例如 PoW、PoS、PoET 之类的东西)
共识是根据交易的顺序而不是交易内容达成的。背书策略决定交易是否被网络视为有效。
这篇论文似乎表明排序节点也参与了拜占庭容错(BFT)。但是,我对orderer节点的理解是,它们只负责对背书的交易进行排序,并将它们广播给所有的peer节点
对,没错——当前的 Fabric 实现没有 BFT 排序器。但是,共识是可插拔的,如果您实现自己的排序器,您可以将基于 Kafka 的排序器切换为 BFT 排序器。
现在,我对 Hyperledger Fabric 网络如何验证背书交易感到困惑。什么是默认的共识算法,它如何适应官方网站描述的 Peer 部分的图片?
它通过两种方式验证它们:
背书策略 - 每笔交易都有一个或多个链码(数据库中的命名空间)的目标。每个这样的命名空间都有一个链码,有自己的背书策略。如果交易由对等方签署,从而满足背书政策,则该交易被视为通过了背书政策。
MVCC(多版本并发控制) - 在执行期间读取密钥、记录其版本,然后在提交时对等方检查版本没有更改的事务,因此数据的因果关系仍然保持不变。
推荐阅读
- corda - 索引 0 {} 处缺少参数名称
- java - 我的 javafx 程序中的这个语句导致了一个空指针异常,我不知道为什么
- node.js - 为什么我的 Docker 容器没有运行我的 Nodejs 应用程序?
- python - 将excel导入mysql使用python并转换日期戳
- python - 使用 2D 数据框
- python - 如何在 Vispy 3d 图中获取点的位置?
- jquery - 在当前选择的选项之前获取选择框选项
- node.js - Socket.IO adding connection when refreshing browser
- javascript - 在 jquery 中获取选项标签文本
- arm - 复位后的 ARM PC 值