超级帐本(Hyperledger)

1. Hyperledger 项目

        Hyperledger 下有两类项目:第一类是区块链框架项目;第二类是支持这些区块链的相关工具或模块。

        在 Hyperledger 框架下,目前有 5 个区块链框架项目:Fabric、Sawtooth Lake、Iroha、Burrow 和 Indy。

        在模块类下,则有 Hyperledger Cello、Hyperledger Composer、Hyperledger Explorer 和 Hyperledger Quilt。

        Hyperledger 项目目前有 200 多个成员组织,并且有许多非常活跃的贡献者,在全球范围内定期定期组织聚会和演讲。

1.1 Fabric

        Fabric 是 IBM 和区块链创业公司 DAH(Digital Asset Holdings) 提出的一个区块链项目。该区块链框架旨在为开发具有模块化架构的区块链解决方案提供基础。它基于可插拔的架构,可以根据需要将各种组件 (例如共识引擎和成员资格服务) 插入系统。它还利用容器技术,该技术用于在隔离你的封闭环境中运行智能合约。目前,它的状态是活跃的,这是第一个经历从孵化到活跃状态的项目。

注意:

        Fabric 的源代码可从以下网址获得:

        https://github.com/hyperledger/fabric

1.2 Sawtooth Lake

        Sawtooth Lake (锯齿湖)是 Intel 公司于 2016 年 4 月提出的一个区块链项目,其一些关键创新着眼于帐本与交易的脱钩、跨多个业务领域的灵活使用,以及可插入的共识。

        对于这里所谓的脱钩  (Decoupling,也称为解耦),更精确的解释是,通过使用称为交易族(Transaction Families) 的新概念将交易与共识层脱钩。

        交易族不是使用单独的帐本来耦合交易,它提供了更大的灵活性、更丰富的语义以及业务逻辑的开放式设计。交易遵循交易族中定义的模式和结构。

        Intel 公司推出的一些创新元素包括缩写为 PoET 的新颖共识算法,即消逝时间量证明(Proof of Elapsed Time), 该算法利用英特尔软件保护扩展(Intel Software Guard Extensions, Intel SGX) 提供的可信执行环境(Trusted Execution Environment,TEE) 来提供安全而随机的领导者选举处理。它还支持许可和无许可设置。

注意:

        该项目的源代码可以从以下网址获得:

        https://github.com/hyperledger/sawtooth-core

1.3 Iroha

        Iroha 由 Soramitsu、Hitachi、NTT Data 和 Colu 于 2016 年 9 月 贡献。 Iroha 的目标是建立可重用组件的库,用户可以选择在基于 Hyperledger 的分布式帐本上运行它们。

        Iroha 的主要目标是通过提供用 C++ 编写的可重用组件 (重点是移动开发) 来补充其他 Hyperledger 项目。该项目还提出了一种称为 Sumeragi 的新型共识算法,该算法是基于链的拜占庭容错共识算法。

注意:

该项目的源代码可以从以下网址获得:

https://github.com/hyperledger/iroha

        Iroha 已提出和使用各种库,其中包括但不限于数字签名库(ed25519)、SHA-3 哈希库、交易序列化库、P2P 库、API 服务器库、iOS 库、Android 库 和 JavaScript 库。

1.4 Burrow

        Burrow 项目当前处于孵化状态。Hyperledger Burrow 由 Monax 公司贡献,Monax 公司开发了一个业务的区块链开发和部署平台。

        Hyperledger Burrow 引入了模块区区块链平台和基于以太坊虚拟机的智能合约执行环境。Burrow 使用权益证明、拜占庭容错 Tendermint 共识机制,其结果就是,Burrow 提供了高吞吐量和交易的不可改变性。

注意:

        该项目的源代码可以从以下网址获得:

        https://github.com/hyperledger/burrow

1.5 Indy

        该项目正在 Hyperledger 下进行孵化。Indy 是为建立去中心化身份而开发的分布式帐本。它提供了可用于构建基于区块链的数字身份的工具、实用程序和模块。这些身份可以跨多个区块链、域和应用程序使用。

        Indy 拥有自己的分布式帐本,并使用冗余拜占庭容错(Redundant Byzantine Fault Tolerance, RBFT) 达成共识。

注意:

        该项目的源代码可以从以下网址获得:

        https://github.com/hyperledger/indy-node

 1.6 Explorer

        该项目旨在为 Hyperledger Fabric 构建一个区块链浏览器,可用于查看和查询来自区块链的交易、区块和关联数据,它还提供网络信息以及与链代码进行交互的能力。

注意:

        该项目的源代码可以从以下网址获得:

        https://github.com/hyperledger/blockchain-explorer

        当前还有若干正在 Hyperledger 下孵化的其他项目,这些项目旨在提供工具和实用程序来支持区块链网络。

1.7 Cello

        Cello 的目的是允许轻松部署区块链,这将提供一种允许 “作为一种服务" 部署区块链服务的能力。目前,该项目处于孵化阶段。

注意:

该项目的源代码可以从以下网址获得:

https://github.com/hyperledger/cello

 1.8 Composer

        该实用程序允许以一种业务语言描述业务流程,同时抽象出低级智能合约开发的细节,从而使区块链解决方案的开发更加容易。

注意:

        该项目的源代码可以从以下网址获得:

        https://hyperledger.github.io/composer/

1.9 Quit

        该实用程序实现了 Interledger 协议,Interledger 协议促进了不同分布式和非分布式帐本网络之间的互操作性。

注意:

        该项目的源代码可以从以下网址获得:

        https://github.com/hyperledger/quilt

2. Hyperledger 即协议

        Hyperledger 旨在构建由行业用例驱动的新区块链平台。由于社区对 Hyperledger 项目做出许多贡献,因此 Hyperledger 区块链平台正在演变为业务交易协议。

        与仅解决特定类型的行业或要求的早期区块链解决方案相比,Hyperledger 也正在发展成为可以用作构建区块链平台的参考规范。

3. 参考架构

        Hyperledger 发布了一份白皮书,该白皮书提供了一种参考架构,可以用作构建许可分布式帐本的指南。参考架构由形成业务区块链的各种组件组成,下图显示了这些高级组件。

        在上图中,可以看到 5 个提供各种服务的顶级组件。现在我们就来探讨一下这些组件。

        首先是 Identity (身份),它将在成员资格服务下提供授权、标识和身份验证服务。

        其次是 Policy (策略)组件,它将提供策略服务。

        再次是 Blockchain ( 区块链 )和 Transaction (交易),其中包括分布式帐本、排序服务、网络协议以及背书(Endorsement) 和验证服务。该帐本只能通过区块链网络参与者之间的共识来更新。

        最后是 Smart Contract (智能合约)。该层可以在 Hyperledger 中提供链码(Chaincode) 服务,并利用安全容器技术托管智能合约。

 一般来说,从组件的角度来看,Hyperledger 包含以下元素:

  • 共识层:这些服务负责促进区块链网络上参与者之间的协议流程。需要达成共识以确保交易的顺序和状态在区块链网络中得到验证和同意。
  • 智能合约层:这些服务负责根据用户要求实现业务逻辑。根据驻留在区块链上的智能合约中定义的逻辑来处理交易。
  • 通信层:该层负责区块链网络上节点之间的消息传输和交换。
  • 安全和加密层:这些服务负责提供一种功能,以允许各种加密算法或模块提供隐私、机密性和不可否认性服务。
  • 数据存储:该层提供使用不同的数据存储来存储帐本状态的功能。这意味着数据存储也是可插入的,并允许使用任何数据库后端。
  • 策略服务:这组服务提供了管理区块链网络所需的不同策略的能力,它包括背书政策和共识政策。
  • API 和 SDK :该层允许客户端和应用程序与区块链进行交互。SDK 用于提供在链上部署和执行链码、查询区块和监视事件的机制。

4. Hyperledger Fabric 的要求和设计目标

        区块链服务有一定的要求。上述参考架构将由 Hyperledger 项目参与者提出的需求和要求驱动,并且是在研究了行业用例之后的结果。从工业用例的研究中,可以得出若干需求分类,在以下各节中将分别进行讨论。

4.1 模块化方法

        Hyperledger 的主要需求是模块化结构。作为跨行业结构(区块链),它将在许多业务场景中使用。因此,与存储、策略、链码、访问控制、共识和许多其他区块链服务相关的功能应模块化且可插入。该规范建议模块应即插即用,并且用户应该能够轻松地删除和添加满足业务要求的其他模块。

4.2 隐私性和机密性

        隐私性和机密性要求是最关键的因素之一。由于传统的区块链是无须许可的,因此,在像 Hyperledger Fabric 这样的许可模型中,最重要的一点是:网络上的交易仅对那些被允许查看的人可见。

        交易和合约的隐私性和机密性在商业区块链中至关重要。因此,Hyperledger 的愿景是为各种加密协议和算法提供支持。

        用户预计能够根据其业务需求选择适当的模块。例如,如果业务区块链仅需要在已经受信任的各方之间运行并执行非常基本的业务操作,那么也许就不需要针结机密性和隐私性的高级加密支持。因此,用户应该能够删除该功能(模块)或将其替找为更适合其需求的模块。

        如果用户需要运行跨行业的区块链,那么隐私性和机密性可能是至关重要的。在这种情况下,用户应该能够将高级加密和访问控制机制(模块)插入区块链(结构)中,甚至可以允许使用安全模块硬件(Hardware of Security Modules,HSM)。

        同样,区块链应该能够处理复杂的密码算法而不会影响其性能。除了前面提到的方案之外,由于业务中的合规性要求,因此还应该有一条规定:允许根据监管和合规性要求实施隐私性和机密性策略。

4.3 可伸缩性

        可伸缩性(Scalability,也称为可扩展性)是 Hyperledger 的一个要求,满足该要求意味着允许合理的交易吞吐量,这将满足所有业务需求以及大量用户的需求。

4.4 确定性交易

        确定性交易(Deterministic Transaction) 是任何区块链都必须满足的核心要求。如果不能做到无论执行交易的人是谁、执行交易的地点在哪里,每次执行交易的结果者相同,那么就不可能达成共识。因此,确定性交易成为任何区块链网络中的关键要求。

4.5 身份识别

        为了提供隐私性和机密性服务,还需要可用于处理访问控制功能的灵活 PKI 模型。密码机制的强义和类型应该能够根据用户的需求而变化。在某些情况下,可能需要用户隐藏其身份,因此 Hyperledger 也应该提供此功能。

4.6 可审核性

        可审核性(Auditability)是 Hyperledger Fabric 的一个要求,应该保留所有身份、相关操作和任何更改的不可变记录,以便跟踪审核。

4.7 互通性

        互通性(Interoperability)也称为互操作性。目前有许多可用的区块链平台,但是它们之间无法相互通信,这可能是基于区块链的全球商业生态系统增长的一种限制因素。可以预见,许多区块链网络将根据特定需求在商业环境中运行,但重要的是它们之间应该能够相互通信。所有区块链都应该遵循一套通用的标准,以允许不同帐本之间的通信。因此,有必要开发出一种协议,以允许在诸多结构之间交换信息。

4.8 可移植性

        可移植性(Portability) 指的是能够跨多个平台和环境运行而无须在代码级别进行任何更改。Hyperledger Fabric 应该不仅在基础架构级别,而且在代码、库和 API 级别都是可移植的,因此它可以支持在 Hyperledger 各种实现之间的统一开发。

4.9 丰富的数据查询

        区块链网络应允许在网络上运行丰富的查询,可以使用传统查询语言来查询帐本的当前状态,满足这一易用性要求将有助于区块链网络的广泛推展。 

        上述 9 项就是 Hyperledger Fabric 的要求,开发符合 Hyperledger 设计理念的区块链解决方案应满足这些要求。 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 集成 Redisson 实现消息队列

包含组件内容 RedisQueue:消息队列监听标识RedisQueueInit:Redis队列监听器RedisQueueListener:Redis消息队列监听实现RedisQueueService:Redis消息队列服务工具 代码实现 RedisQueue import java.lang.annotation.ElementTyp…

原生 iOS 引入 Flutter 报错 kernel_blob.bin 找不到

情况 在一次原生 iOS 项目中引入 Flutter 的过程中,在模拟器中运行出现报错: 未能打开文件“kernel_blob.bin”,因为它不存在。 如下图: 模拟器中一片黑 原因&解决方案 这个是因为 Flutter 的打包 iOS framework 命令中…

OCR技术视角:智能文档管理中的票据自动化识别与处理

在数字化转型的浪潮中,企业对于高效、自动化的文档管理需求日益增长。票据作为企业运营中不可或缺的部分,其识别与管理的智能化成为了提升工作效率的关键。本文将深入探讨智能文档系统中票据识别功能的原理、技术优势以及在不同行业中的应用实践&#xf…

Java、python、php、node.js版 铁路售票自动选座系统 高铁购票系统 火车订票平台(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

Mac无法安装软件怎么解决?mac安装软件提示无法验证开发者怎么办

在使用 macOS 系统时,你可能会遇到一个常见的问题:当你尝试安装或打开某些应用程序时,系统会弹出一个警告,提示“无法验证开发者”。出现这个提示导致自己无法去进行程序安装,接下来我们就来看看如何解决此问题的方法吧…

云计算实训43——部署k8s基础环境、配置内核模块、基本组件安装

一、前期系统环境准备 1、关闭防火墙与selinux [rootk8s-master ~]# systemctl stop firewalld[rootk8s-master ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus…

VuePress搭建个人博客(一键安装)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【第26章】Spring Cloud之Sentinel适配API Gateway

文章目录 前言一、准备1. 引入库2. 注册过滤器3. 添加配置4. 效果展示 二、基于网关的流控1. 新增流控规则2. 测试准备3. 测试结果 总结 前言 Sentinel从1.6.0 版本开始,Sentinel 提供了 Spring Cloud Gateway 的适配模块,可以提供两种资源维度的限流&a…

Django + websocket 连不上

看了网上的几个简单例子,一步一步做,但无一成功。都连不上websocket。 后来按一个视频教程的操作步骤来做,成功了。差别在于视频教程中加了 pip install daphne 和setting.py中 连不上的表现: 前端报错: WebSock…

Linux网络协议栈的实现

网络协议栈是操作系统核心的一个重要组成部分,负责管理网络通信中的数据包处理。在 Linux 操作系统中,网络协议栈(Network Stack)负责实现 TCP/IP 协议簇,处理应用程序发起的网络请求并与底层的网络硬件进行交互。本文…

[SWPUCTF 2022 新生赛]

目录 [SWPUCTF 2022 新生赛]ez_rce 什么是poc? [SWPUCTF 2022 新生赛]where_am_i [SWPUCTF 2022 新生赛]js_sign [SWPUCTF 2022 新生赛]xff ​[SWPUCTF 2022 新生赛]numgame call_user_func()函数 ::双冒号运算符 [SWPUCTF 2022 新生赛]ez_sql [SWPUCTF 2…

TortoiseGit无法安装解决方案

Win11安装TortoiseGit报错,错误码:2503,如下图: 开始-右键-Windows PowerShell(管理员)/终端 (管理员) 输入 msiexec /package 安装程序所在绝对路径, 例如 : msiexec /package D:\我的资料…

jenkins 部署应用到多个环境

在日常开发的过程中,我们经常会遇到将应用程序部署到多个环境的需求场景,如会先发布到测试环境,由测试人员进行测试,成功之后,会继续将当前应用部署到集成环境,进行集成测试,全部通过后&#xf…

RAG 聊天机器人:用 Langchain 和 Streamlit开启与 PDF 的智能对话

与大量 PDF 文档的交互如今变得前所未有地便捷与智能。想象一下,您可以轻松与您的笔记、书籍和各种文档进行无缝对话,不再需要繁琐的手动查找和处理。 这篇文章将带您逐步构建一个基于 Multi-RAG 和 Streamlit 的 Web 应用程序,该应用程序通过 AI 驱动的聊天机器人来读取、…

以实时,见未来——DolphinDB 2024 年度峰会圆满举办

2024年9月6日,“以实时,见未来”—— DolphinDB 2024 年度峰会在杭州圆满落下帷幕。本次峰会由主会场与三个专题分会场组成,众多金融机构领导与专家、行业领袖、高校与研究机构学者等近300位嘉宾共襄盛举,一同探讨数智化浪潮下金融…

基于JAVA+SpringBoot+Vue的工程教育认证的计算机课程管理平台

基于JAVASpringBootVue的工程教育认证的计算机课程管理平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接…

第三届人工智能与智能信息处理国际学术会议(AIIIP 2024)

目录 大会介绍 基本信息 合作单位 主讲嘉宾 会议组委 征文主题 ​ 参会方式 会议日程 中国-天津 | 2024年10月25-27日 | 会议官网:www.iiip.net 大会介绍 第三届人工智能与智能信息处理国际学术会议(AIIIP 2024)将于202…

MNIST数据集内容查看

测试数据集:t10k-images-idx3-ubyte.gz(1.57 MB ,包含10,000个样本)。测试数据集标签:t10k-labels-idx1-ubyte.gz(4.43 KB,包含10,000个样本的标签)训练数据集:train-ima…

使用 Parallel 类进行多线程编码(上)

用 C# 进行多线程编程有很多方式,比如使用 Thread 对象开启一个新线程,但这已经是一种落后的写法了,现在推荐的写法是使用 Parallel 类,它可以让我们像写传统代码一样编写多线程的程序,Parallel 类有三个常用的方法如下…

PyTorch 创建数据集

图片数据和标签数据准备 1.本文所用图片数据在同级文件夹中 ,文件路径为train/’ 2.标签数据在同级文件,文件路径为train.csv 3。将标签数据提取 train_csvpd.read_csv(train.csv)创建继承类 第一步,首先创建数据类对象 此时可以想象为单个数据单元的…