【跟小嘉学习区块链】二、Hyperledger Fabric 架构详解

系列文章目录

【跟小嘉学习区块链】一、区块链基础知识与关键技术解析
【跟小嘉学习区块链】二、区块链基础知识与关键技术解析

文章目录

  • 系列文章目录
    • @[TOC](文章目录)
  • 前言
  • 一、Hyperledger 社区
    • 1.1、Hyperledger(面向企业的分布式账本)
    • 1.2、Hyperledger社区组织结构
  • 二、Hyperledger 项目介绍
    • 2.1、Hyperledger 项目介绍
      • 2.1.1、Hyperledger 项目介绍
      • 2.1.2、Hyperledger 顶级项目介绍
  • 三、社区工作流
    • 3.1、Linux Foundation ID
    • 3.2、Jira
    • 3.3、Gerrit
    • 3.4、RocketChat
  • 四、开发环境
  • 五、Hyperledger Fabric
    • 5.1、Hyperledger Fabric 介绍
    • 5.2、Hyperledger Fabric 应用场景
    • 5.3、Hyperledger Fabric 架构
      • 5.3.1、Hyperledger Fabric 名词解释
      • 5.3.2、基础架构
      • 5.3.3、Fabric 1.x 架构优势
      • 5.3.4、交易流程

前言

本系列章节主要讲解 Hyperledger 社区、Hyperledger项目、Hyperledger 社区工作流程、Hyperledger Fabric 架构详解

[参考资料]
Fabric技术概览
Fabric智能合约
Fabric架构初探
Fabric官方中文文档
Fabric相关博客


一、Hyperledger 社区

1.1、Hyperledger(面向企业的分布式账本)

超级账本(Hyperledger) 是首个面向企业应用场景的分布式账本平台,包括了IBM、Intel、Cisco、DAH、摩根大通、R3等在内的众多科技和金融巨头的贡献参与,在银行、供应链等领域得到了广泛的关注和发展,目前已经拥有了超过200家企业成员

1.2、Hyperledger社区组织结构

  • 技术委员会(Technical Steering Committee,TSC)
  • 管理董事会(Govering Board)
  • Linux基金会(Linux Foundation)

二、Hyperledger 项目介绍

2.1、Hyperledger 项目介绍

2.1.1、Hyperledger 项目介绍

2015年12月,由Linux基金会牵头,30多家初始企业成员共同宣布 Hyperledger 联合项目成立。成立之初,IBM贡献了4万多行已有多 OpenBlockchain 代码,Digital Asset 则贡献了企业和开发者相关资源,R3贡献了新的金融交易架构,Intel 也贡献了分布式账本相关的代码

作为一个联合项目,旗下由面向不同的场景的子项目构成(8大项目,fabric、iroha、 BlockChain Exploror、Cello、Indy、Composer、Burrow),所有项目都遵循 Apache V2 许可,并约定共同遵守如下的基本原则

  • 重视模块化设计:包括交易、合同、一致性、身份、存储等技术场景
  • 重视代码可读性:保障新功能和模块都可以很容易添加和扩展
  • 可持续的演化路线:随着需求的深入和更多的应用场景,不断增加和演化新的项目

2.1.2、Hyperledger 顶级项目介绍

  • Hyperledger Fabric 是一个带有准入机制的企业级联盟链项目,它的前身就是IBM贡献的 OpenBlockChain。
  • Hyperledger Sawtooth 是一个创建、部署和运行分布式账本的模块化平台,它包含一个新的共识算法,叫做经历时间证明(Proof of Elapsed Time, PoET),面向大型分布式验证器群,消耗最少的资源;
  • Hyperledger Iroha 是为了将分布式账本技术简单容易地与基础架构型项目集成而设计的一个区块链框架项目
  • Hyperledger BlockChain Exploror:区块链浏览器
  • Hyperledger Cello:提供按需部署的功能,可以将区块链部署在各种裸机、虚拟机、容器等环境中,该项目起初是由IBM发起,目前等到了Soramitsu、华为和 Intel 的赞助
  • Hyperledger Indy 是特别为去中心化的身份而建立的一种分布式账本。它提供了基于区块链或者其他分布式账本互操作来创建和使用独立数据身份的工具、代码库和可以重用的组件
  • Hyperledger Composer
  • Hyperledger Burrow 是一个支持许可的智能合约机,提供了一个模块化的区块链客户端,带一个经许可的智能合约解释器,它部分建立在以太坊虚拟机(EVM) 规范的基础上

三、社区工作流

在社区开发过程中,需要了解 Linux Foundation ID、Jira(任务和进度管理)、Gerrit(代码和Review管理)、RocketChat(在线沟通)等工具使用

3.1、Linux Foundation ID

超级账本项目受到 Linux 基金会等支持,采用 Linux Foundation ID (LF ID)作为社区等唯一ID。

3.2、Jira

Jira 是一套任务管理和事项跟踪的追踪平台,提供 Web 操作界面,实用十分方便。

3.3、Gerrit

Gerrit 是一个负责代码协同的开源项目,很多企业和团队都使用它负责代码仓库都管理和代码的审阅工作。

3.4、RocketChat

RocketChat 是一个开源的沟通工具

四、开发环境

  • git
  • golang
  • docker

五、Hyperledger Fabric

5.1、Hyperledger Fabric 介绍

Hyperledger Fabric 是一个提供分布式账本解决方案的平台。Hyperledger Fabric 由模块化架构支撑,并具备极佳的保密性、可伸缩性、灵活性和可扩展性。

Hyperledger Fabric 被设计成支持不同的模块组件直接拔插启,并能适应在经济生态系统中错综复杂的各种场景。

5.2、Hyperledger Fabric 应用场景

  • 商业积分,利用区块链多方发行扩大参与者、使积分自由流通,吸引用户多次消费
  • 跨境支付与结算,减少机构之间的信任成本,将低手续费;
  • 数据存证,版权保护、鉴别数据真伪;

5.3、Hyperledger Fabric 架构

5.3.1、Hyperledger Fabric 名词解释

  • 成员服务(Membership Services):成员服务用来在许可的区块链网络上认证、授权和管理身份
  • 排序或共识服务(Order Service),确认交易并将交易排序放入 block;
  • 账本(Ledger),交易状态的持久化
  • 节点(Node),一个网络实体用来维护 Ledger,执行合约的容器
  • SDk 用来和区块链网络进行交互;

5.3.2、基础架构

在这里插入图片描述
在这里插入图片描述

5.3.3、Fabric 1.x 架构优势

  • 链码(Chaincode)执行信任的可伸缩性,将用户自己开发的链码(Chaincode)和系统提供的Order 服务拆分,用户开发的链码(Chaincode)和系统提供的Order服务不再是一一对应的关系,Order也可以适当容忍错误的出现,增加了系统的鲁棒性
  • 性能提升,拆分链码(Chaincode)和Order的串行执行,在原有架构中,当链码(Chaincode)执行非常耗时的时候,Order将会处于闲置状态,不利于提高系统的吞吐量,拆分以后链码(Chaincode)和Order可以并行执行发送交易
  • 共识机制可以单独实现(order)

5.3.4、交易流程

  • 应用向单个或多个Peer节点放交易的背书请求;
  • 背书节点执行 ChainCode,但并不将结果提交到本地账本,知识将结果返回给应用
  • 应用收集背书节点的结果后,将结果播给Orderer
  • Orderer执行共识过程,并成Block,通过消息通道批量的将 block 发布给 Peer 节点
  • 各个Peer节点验证交易,并提交到本地账本中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/145422.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

结构型设计模式——组合模式

摘要 组合模式(composite pattern): 允许你将对象组合成树形结构来表现"整体/部分"层次结构. 组合能让客户以一致的方式处理个别对象以及对象组合。 一、组合模式的意图 将对象组合成树形结构来表示“整体/部分”层次关系,允许用户以相同的方式处理单独…

性能测试工具 — JMeter

一、JMeter准备工作 1、JMeter介绍 Apache JMeter 应用程序是开源软件,是一个 100% 纯 Java 应用程序。用于测试Web应用程序、API和其他网络协议的性能。它具有以下特点: 1. 开源免费:JMeter是Apache软件基金会下的一个开源项目&#xff0…

〔025〕Stable Diffusion 之 接口开发 篇

✨ 目录 🎈 启动接口🎈 接口文档🎈 接口开发🎈 代码解释🎈 启动接口 想要在各种其他服务中对接 Stable Diffusion 的绘画功能,需要开启 Stable Diffusion 的 api 功能开发接口需要有一定的技术功底才可以,非技术人员其实不用学习直接在 webui-user.bat 文件中的 se…

【Flink】

事件驱动型应用 核心目标:数据流上的有状态计算 Apache Flink是一个框架和分布式处理引擎,用于对无界或有界数据流进行有状态计算。 运行逻辑 状态 把流处理需要的额外数据保存成一个“状态”,然后针对这条数据进行处理,并且更新状态。这就是所谓的“…

电脑突然提示mfc140u.dll丢失,缺失mfc140u.dll无法运行程序的解决方法

在当今信息化社会,电脑已经成为我们生活和工作中不可或缺的一部分。然而,随着技术的不断发展,电脑也会出现各种问题。其中,最常见的问题之一就是“mfc140u.dll丢失”。那么,当我们遇到这个问题时,应该如何解…

redis部署与管理

目录 一、关系数据库与非关系型数据库: 1. 关系型数据库: 2.非关系型数据库: 二、关系型数据库和非关系型数据库区别: (1)数据存储方式不同: (2)扩展方式不同&#xf…

华为云云耀云服务器L实例评测|华为云云耀云服务器L实例CentOS的存储和备份策略

1 华为云云耀云服务器L实例介绍 华为云云耀云服务器L实例是华为云计算服务中的一种虚拟云服务器,它提供了强大的计算资源,可以在云端运行各种应用程序和服务。 华为云服务器提供了多种实例类型,包括通用型、计算优化型、内存优化型等&#…

【数据库】形式化关系查询语言(一):关系代数Relational Algebra

目录 一、关系代数Relational Algebra 1. 基本运算 a. 选择运算(Select Operation) b. 投影运算(Project Operation) 组合 c. 并运算(Union Operation) d. 集合差运算(Set Difference Op…

STM32F4X UCOSIII任务消息队列

STM32F4X UCOSIII任务消息队列 任务消息队列和内核消息队列对比内核消息队列内核消息队列 UCOSIII任务消息队列API任务消息队列发送函数任务消息队列接收函数 UCOSIII任务消息队列例程 之前的章节中讲解过消息队列这个机制,UCOSIII除了有内核消息队列之外&#xff0…

开学教师自我介绍模版:打造个人品牌,轻松赢得学生喜爱

这里有一篇2000字左右的教师自我介绍长文: 亲爱的同学们,我是你们的XX老师。开学第一天,我非常高兴能在这里与大家见面。作为一名教师,我的职责是把知识教给你们,指导你们成长。同时,我也希望通过这次自我…

【JUC】一文弄懂@Async的使用与原理

文章目录 1. Async异步任务概述2. 深入Async的底层2.1 Async注解2.2 EnableAsync注解2.3 默认线程池 1. Async异步任务概述 在Spring3.X的版本之后,内置了Async解决了多个任务同步进行导致接口响应迟缓的情况。 使用Async注解可以异步执行一个任务,这个…

Docker清理

title: “Mysql安装” createTime: 2022-01-04T20:07:3108:00 updateTime: 2022-01-04T20:07:3108:00 draft: false author: “name” tags: [“mysql”] categories: [“docker”] description: “测试的” docker-mysql安装部署文档 文章目录 title: "Mysql安装" …

玩转gpgpu-sim 04记—— __cudaRegisterBinary() of gpgpu-sim 到底做了什么

官方文档&#xff1a; GPGPU-Sim 3.x Manual __cudaRegisterBinary(void*) 被执行到的代码逻辑如下&#xff1a; void** CUDARTAPI __cudaRegisterFatBinary( void *fatCubin ) { #if (CUDART_VERSION < 2010)printf("GPGPU-Sim PTX: ERROR ** this version of GPGPU…

flink中不同序列化器性能对比

背景 flink有多种序列化方式&#xff0c;包括flink内置的以及fallback到kryo的&#xff0c;那么他们之间有多大的性能差距呢&#xff0c;本文就从https://flink.apache.org/2020/04/15/flink-serialization-tuning-vol.-1-choosing-your-serializer-if-you-can/这篇文章里摘录…

【微服务保护】

文章目录 Sentinel 微服务雪崩问题&#xff1a; 微服务中&#xff0c;服务间调用关系错综复杂&#xff0c;一个微服务往往依赖于多个其它微服务。服务D有 故障进而导致服务A有故障&#xff0c;进而导致服务雪崩。 解决雪崩问题的常见方式有四种&#xff1a; 超时处理&#xff1…

c# 中的类

反射 Activator.CreateInstance class Program {static void Main(string[] args){//反射Type t typeof(Student);object o Activator.CreateInstance(t, 1, "FJ");Student stu o as Student;Console.WriteLine(stu.Name);//动态编程dynamic stu2 Activator.Cre…

java生成PDF的Util

java使用itext生成pdf-CSDN博客 接上文 支持绘制表格 支持表格中的文本 字体加粗、字体上色、单元格背景上色&#xff0c; 支持拼接文本 支持单行文本 多种背景颜色、字体上色 支持自定义水印 废话不说先上效果图 工具类代码 package com.zxw.文件.PDF.util;import com.…

Stm32_标准库_5_呼吸灯_按键控制

Stm32按键和输出差不多 PA1为LED供给正电&#xff0c;PB5放置按键&#xff0c;按键一端接PB5,另一端接负极 void Key_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //APB2总线连接着GPIOBGPIO_InitStructur.GPIO_Mode GPIO_Mode_IPU;GPIO_InitStructur.…

Kafka:介绍和内部工作原理

展示Kafka工作方式的简单架构。 什么是Kafka&#xff1f;为什么我们要使用它&#xff1f;它是消息队列吗&#xff1f; •它是一个 分布式流处理平台或分布式 提交日志*。*•Kafka通常用于实时流数据管道&#xff0c;即在系统之间传输数据&#xff0c;构建不断流动的数据转换系统…

什么是GraphQL?它与传统的REST API有什么不同?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是GraphQL&#xff1f;⭐ 与传统的REST API 的不同⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣…