Hyperledger Fabric架构设计

这篇具有很好参考价值的文章主要介绍了Hyperledger Fabric架构设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、逻辑架构

答疑:什么叫做背书策略?

2、运行时架构

        答疑:什么是锚节点?


1、逻辑架构


Hyperledger Fabric从1.X开始,在扩展性及安全性方面有了很大的提升,且新增了诸多特性。

  • 多通道:支持多通道,提高隔离安全性。
  • 可插拔的组件:支持共识组件、权限管理组件等可插拔功能。
  • 账本数据可被存储为多种格式。
  • 分化了Peer节点的多种角色,可以根据具体情况实现灵活部署。

Hyperledger Fabric整体逻辑架构如下图所示。 

Hyperledger Fabric架构设计
Hyperledger Fabric的四大核心组件如下

1)成员服务(Membership Service):成员服务管理保证了Hyperledger Fabric平台访问的安全性,提供了成员的注册、管理及审核功能。


2)区块链服务(Blockchain Service):区块链的核心部分,为区块链的主体功能提供了底层支撑;包括共识管理、分布式账本实现、账本的存储及网络中各节点之间的通信
实现。

        ①区块链(Blockchain):区块之间以Hash连接为结构的交易日志。Peer节点从Order
Service节点接收交易区块,并根据背书策略和并发冲突标记区块上的交易是否有效,然后
将该区块追加到Peer文件系统中的Hash Chain上。

        ②交易(Transaction):交易分为对链码的部署和调用两种操作类型。

  • 部署交易:部署是请求在Per上启动链码容器;创建新的链码并设置一个程序作为参数。一个部署交易执行成功,表明链码已被成功安装到区块链上。
  • 调用交易:调用是从账本中请求读写集,是在之前已部署链码的情况下执行一个操作。调用交易将使用链码提供的一个函数。当成功时,链码执行特定的函数对账本数据进行操作(修改状态),并返回操作结果。

3)链码服务(Chaincode Service):提供链码(Chaincode)的部署及运行时的所需环境。


4)事件(Event Stream):为各组件之间的异步通信提供技术实现。

注意
        链码是一个可以对账本数据进行操作的可开发的组件程序,部署运行在一个安全的容器中,用户可以通过调用链码中的指定函数对账本数据进行修改或读取。

答疑:什么叫做背书策略?

  1. 背书策略是区块链网络中用于判断交易有效性的一种规则或机制。在区块链中,交易需要经过一定的验证过程才能被认可并添加到区块中。
  2. 背书策略通常涉及多个节点的参与,这些节点可以是网络中的不同实体或者特定的角色。根据具体的区块链系统和应用场景,背书策略的具体规则可以有所不同。
  3. 一种常见的背书策略是要求多个节点对交易进行确认或背书,只有当足够数量的节点对交易达成共识时,该交易才会被认为是有效的并被添加到区块中。这种背书策略可以增加交易的可信度和安全性,防止单个节点的作恶行为或错误导致的异常交易被接受。
  4. 除了节点数量外,背书策略还可以涉及节点的身份或权限。例如,特定类型的节点可能具有更高的背书权重,其确认的交易对整体的有效性影响更大。这样的设计可以根据节点的可信度或专业性来提高系统的可靠性。

        总之,背书策略是区块链系统中的一项关键机制,用于确保交易的合法性、可靠性和一致性。不同的背书策略可以根据具体需求和设计目标进行选择和定义。

2、运行时架构

        逻辑架构图说明了Hyperledger Fabric的各个核心组件/模块。由于Hyperledger Fabric
是一个需要保证交易数据安全的分布式系统,所以在实际运行时将不同的服务器配置成
为不同的Node(节点),担任不同的角色,从而实现逻辑架构中不同的核心组件/模块
功能。
实际运行时架构如下图所示。

Hyperledger Fabric架构设计

运行时架构图中各项解释如下:
        1)App:代表一个CLI(客户端)或SDK,作用是创建交易并获取到足够的背书之后向Orderer节点(排序服务节点)提交交易请求(Peer节点与Orderer节点提供了gRPC远程访问接口,供客户端调用)。
        2)CA:负责对网络中所有的证书进行管理(对Hyperledger Fabric网络中的成员身份进行管理),提供标准的PKI(Public Key Infrastructure,.公钥基础设施)服务。
        3)MSP(Member Service Provider):为客户端和Peer提供证书的系统抽象组件。
        4)Channel:即通道,其将一个大的网络分割成为不同的私有子网。通道提供一种通信机制,将指定的Peer和Orderer连接在一起,形成一个具有保密性的通信链路(虚拟),进行数据隔离(区块数据只能存储在已加入到通道中的成员节点内)。要加入通道的每个节点都必须拥有自己的、通过成员服务提供商(MSP)获得的身份标识。
        5)Orderer(排序服务节点):对客户端提交的交易请求进行排序,之后生成区块广播给通道内的Peer.
        6)org1:代表联盟中的某一个组织(一个联盟可以由多个不同的组织组成)。
        7)Peer:表示组织中的节点(Node);Peer节点以区块的形式从排序服务节点接收有序状态更新,维护状态和账本。在Hyperledger Fabric网络运行环境中,Peer节点可以划分为如下4种角色。

  • 背书节点:根据指定的策略调用智能合约,对结果进行背书,返回提案响应到客户端。
  • 提交节点:验证数据并保存至账本中。
  • 锚节点:通道中的每个组织(Og)都有一个锚节点,锚节点可以允许同一通道中不同组织的Peer节点发现通道内的所有Peer节点。
  • Leader节点:作为组织内所有节点的代表,能够连接到排序服务节点,将从排序服务节点接收到的批量区块广播给组织内的其他节点。
  • 网络中只有部分Peer节点为背书节点角色,网络中所有Peer节点都为提交节点角色。

答疑:什么是锚节点?

在Hyperledger Fabric中,锚节点(Anchor Node)具有重要的作用。锚节点是网络中的特殊节点,用于维护和传播其他组织的区块链网络地址。以下是锚节点的几个主要作用:

  1. 地址维护和传播:锚节点负责维护其他组织的网络地址信息。每个组织在Fabric网络中都有一个唯一的网络地址,当新的组织加入网络或者已有组织的网络地址发生变化时,锚节点会更新并广播这些地址信息给其他组织。

  2. 跨组织通信:锚节点在跨组织的交互中起到关键作用。它们充当了跨组织通信的桥梁,其他组织可以通过与锚节点进行通信来实现跨组织的交互操作和数据共享。

  3. 连接点稳定性:锚节点的选择通常考虑到节点的可用性和稳定性。由于锚节点在网络中扮演着重要角色,选择稳定可靠的节点作为锚节点可以确保网络连接的稳定性,并减少因节点故障引起的中断。

         8)Chaincode:在Hyperledger Fabric中称为链式代码,简称链码;运行在一个安全的容器中,提供相应的API与账本数据进行交互。
        9)Ledger:即账本,由排序服务构建的一个全部有序的交易哈希链块,保存在同一通道所有的Peer节点中。账本提供了在系统运行过程中发生的可验证历史,它包含所有成功的状态操作(有效交易)和不成功的状态操作(无效交易)。

1.应用程序或客户端到底需要连接到哪些Peer节点?
只需要连接到背书节点即可。
2.背书节点怎么指定?
在实例化链码时由背书策略指定文章来源地址https://www.toymoban.com/news/detail-510944.html

到了这里,关于Hyperledger Fabric架构设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Fabric学习】什么是HyperLedger Fabric?

    本文总结自 Fabric官方文档 ,描述了Fabric产生的背景、特性、主要组件。 区块链 是不可更改的交易账本,由同等节点(peer nodes)组成的分布式网络来维护。 比特币:第一个使用区块链的应用; 以太坊:引入 智能合约 来开发分布式应用。 二者都是 公有链 ( public / permissi

    2024年01月19日
    浏览(49)
  • 【Hyperledger Fabric 学习】运行一个Fabric应用

    中文网址:https://hyperledger-fabric.readthedocs.io/zh_CN/latest 英文网址:https://hyperledger-fabric.readthedocs.io/en/latest 一般情况英文网址的内容更全面,版本也比中文新。 本教程介绍了 Fabric 应用程序如何与已部署的区块链网络进行交互。本教程使用使用 Fabric Gateway 客户端 API 构建的示例

    2023年04月08日
    浏览(70)
  • Hyperledger Fabric 链码

    懂哪写哪,随时补充 链码在开发过程中需要实现链码接口,交易的类型决定了哪个接口函数将会被调用,链码的接口定义如下: 链码的必要结构如下: shim.ChaincodeStubInterface接口 1、Init方法 Init方法中,首先通过stub的GetFunctionAndParameters()方法提取本次调用的交易中所指定的

    2023年04月08日
    浏览(47)
  • Hyperledger Fabric问题汇总

    Ubuntu 20.04 Hyperledger Fabric 2.3.3 SDK对应的Go 1.17.5 链码对应的Go 1.18 Fabric-sdk-go 1.0.0 Docker 20.10.12 Docker-Compose 2.11.2 调用命令: peer chaincode invoke -o localhost:7050 – ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts

    2024年02月04日
    浏览(47)
  • Hyperledger Fabric 环境搭建

    以 fabric:2.2.0 ; ca:1.4.7 为例 官网下载go Downloads - The Go Programming Language (google.cn) 没有问题就完成啦 官方安装脚本(修改过了): 两个简单脚本直接开启/关闭测试区块链: 开启: 关闭:

    2024年02月11日
    浏览(42)
  • 区块链hyperledger fabric部署

      新建目录、下载、解压 配置环境   将指定版本的 Hyperledger Fabric 平台特定二进制文件和配置文件安装到 fabric-samples 下的  /bin 和  /config  目录中,下载指定版本的 Hyperledger Fabric docker 镜像 2.2.1 配置镜像源 注:以上curl主要是为了获得一个 bootstrap.sh 的脚本文件并执行,可能

    2024年02月11日
    浏览(43)
  • Hyperledger Fabric网络快速启动

    目录 1、网络服务配置 2、关联的docker-compose-base.yaml 各Peer节点容器设置如下信息。 3、被关联的Peer-base.yaml 4、启动网络 2、完成通道的创建 2.1将节点加入应用通道  更新锚节点  2.为什么要创建节点并将其加入应用通道中?         由于要启动多个网络节点,Hyperledger Fa

    2024年02月12日
    浏览(39)
  • Hyperledger Fabric 生成组织身份解析

    fabric 版本 2.4.1 Fabric 网络通过证书和密钥来管理和认证成员身份,经常需要生成证书文件。通常这些操作可以使用 PKI 服务(如 Fabric-CA)或者 OpenSSL 工具来实现(针对单个证书的签发)。为了方便批量管理组织证书,Fabric 基于 Go 语言的标准 crypto 库提供了 cryptogen (crypto ge

    2024年01月22日
    浏览(29)
  • 搭建 Hyperledger Fabric区块链网络

    这里以下载最新版为例,得益于官网文档;网址为:教程 或者使用该命令下载指定版本  wget https://studygolang.com/dl/golang/go1.19.linux-amd64.tar.gz 之后解压到指定文件,一般为 /usr/local/下 ,需要配置环境变量

    2024年01月20日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包