首页>>资讯>>学院

什么是Hyperledger Sawtooth?

2024-06-05 17:55:53 72

Hyperledger Sawtooth是一个企业区块链平台,可以创建分布式账本网络和应用程序。其设计理念集中在维护分布式账本和保护智能合约,尤其适用于企业应用。Sawtooth使用作为服务的区块链技术(BaaS)。


Sawtooth也非常模块化。这种模块化使公司和联盟能够在各自的能力范围内决定政策。由于Sawtooth的基本设计,应用程序可以选择最符合其独特业务需求的交易、许可和共识算法。目前在使用的大多数基于区块链的系统都在同一平台上托管并执行其核心和应用程序,这可能会影响安全性和性能。


什么是Hyperledger Sawtooth?


Hyperledger Sawtooth是一个开源的企业区块链即服务(BaaS)平台,可以运行定制的智能合约,而无需了解核心系统的底层设计。


它支持各种共识算法,包括PBFT和PoET。

它的用户友好设计使其在企业使用中表现出色。

它支持单独的许可,即没有中心化的服务可以泄露机密信息。


Hyperledger Sawtooth如何工作?


Hyperledger Sawtooth是一个用于构建、部署和运行分布式账本(也称为区块链)的模块化平台。它包括一个名为“消耗时间证明”(PoET)的新颖共识算法,该算法使用可信执行环境(TEEs)来确保以公平和高效的方式达成共识。Sawtooth还具有模块化设计,允许插入可插拔的共识算法,并支持许可和无许可网络。


Sawtooth的核心组件是一个分布式账本,记录所有交易和智能合约的执行日志。账本在网络中的所有节点上复制,交易并行处理以提高性能。


Sawtooth还包括一个名为“Sawtooth Lake”的智能合约引擎,允许轻松部署和执行智能合约。该平台还提供了一个用于与账本交互和提交交易的RESTful API。


Sawtooth设计为高度可扩展,可以支持数千个节点和每秒数百万次交易的网络。


总的来说,Hyperledger Sawtooth是一个灵活、强大的平台,用于构建和部署分布式账本,可以用于广泛的应用,如供应链管理、数字资产跟踪和投票系统。


Hyperledger Sawtooth通过将核心账本系统与每个应用程序的环境分离,使开发应用程序更简单,同时保持系统安全。


应用开发者可以描述适合他们应用程序的业务规则,而无需熟悉核心系统的底层架构。这种设计使开发者可以构建可以在他们喜欢的编程语言中托管、管理和使用的应用程序,而无需在核心区块链网络中。


Hyperledger Sawtooth共识算法


Hyperledger Sawtooth包括一个模块化设计,允许插入可插拔的共识算法。Sawtooth支持的一些共识算法包括:


跳过


PoET(消耗时间证明):这是Sawtooth中的默认共识算法。它使用可信执行环境(TEEs)来确保以公平和高效的方式达成共识。PoET使用随机领导者选举过程和等待时间来确保所有参与者都有同等的机会被选为领导者。


PBFT(实用拜占庭容错):这是一个在分布式系统中广泛使用的经典共识算法。它使用副本投票过程来确保网络达成共识。PBFT适用于有已知参与者集的许可网络。


Raft:设计用于变化快速的分布式系统,Raft是一种共识算法。它使用基于领导者的方法并支持快速网络分区恢复。


Devmode:这种直接的共识技术适用于测试和开发。无需共识,它可以并行处理交易。


更先进的共识算法,如PoA(权威证明)、PoS(权益证明)等,也可以通过安装相应的共识引擎与Sawtooth一起使用。


总的来说,Sawtooth的模块化设计允许根据应用程序的特定要求使用不同的共识算法,例如性能、安全性和信任模型。


Hyperledger Sawtooth的特性


1. 应用级别和核心系统之间的分离


Sawtooth将应用级别与核心系统级别分离,使得设计和部署程序变得更容易。应用开发者可以在Sawtooth的帮助下,用他们选择的任何语言设计合约逻辑。Sawtooth为智能合约提供了一个抽象。应用程序包括原生业务逻辑或虚拟机智能合约。实际上,一个区块链可能支持这两种类型的应用程序。Sawtooth在交易处理层上提供了这些架构选项,使得同一个区块链网络实例中可以并存多种应用程序类型。


2. Sawtooth在私有网络中的许可特性


Sawtooth是为了解决许可(私有)网络中的问题而创建的。Sawtooth节点集群可以轻松部署具有独立许可的。没有一个中心化的服务可能会意外地泄露交易模式或其他私人数据。角色和身份是定义许可的参数之一,这些参数存储在区块链上,因此每个使用网络的人都可以访问它们。


3. 并行交易执行


大多数区块链要求串行处理交易,以确保每个网络节点的一致排序。Sawtooth中的先进并行调度器将交易分割成并行流。Sawtooth将交易的执行与彼此分离,同时保留基于交易访问的状态位置的上下文更改。尽管这是可行的,但交易是并行执行的,以避免在修改同一状态的情况下出现双花。并行调度比串行执行提供了显著的潜在速度提升。


4. 与Seth的以太坊合约兼容


由于Sawtooth-Ethereum集成项目,Seth,Sawtooth平台现在与以太坊互通。Seth交易族允许在Sawtooth上部署EVM(以太坊虚拟机)智能合约。


5. 动态共识


区块链中的共识是指网络参与者之间达成的共识。要在任意的错误下达成共识,算法通常在预定的参与者组之间进行投票。Nakamoto式共识和传统拜占庭容错(BFT)算法的变体都使用多轮显式投票来达成共识。前者通过某种类型的抽奖系统选举领导者。Sawtooth将共识从交易语义中分离出来,并将共识的基本思想抽象化。作为与验证器通过共识API通信的共识引擎,Sawtooth共识接口允许插入各种共识实现。


6. 示例交易族


在Sawtooth应用程序中,作为Sawtooth节点上的交易处理器的交易族实现了数据模型和交易语言。Sawtooth包括许多基本的交易族作为模型,而大多数应用开发者创建定制的交易族以满足他们的账本的特定需求:


对于测试部署的账本,开发者使用整数键。

使用Settings提供的参考实现,可以存储链上配置设置。

Identity-管理链上对交易者和验证者密钥的许可,简化了公钥列表集合的身份处理。

事件系统:可以使用Hyperledger Sawtooth创建和广播事件。这使得应用程序可以:

当区块链相关的事件发生时得到通知,比如当一个新的区块被提交或一个分叉发生。

订阅一个应用程序特定的并由一个交易族指定的事件。

在不将详细信息存储在状态中的情况下,通知客户端如何执行一个交易。

通过一个ZMQ Socket,提交和维护订阅。


Hyperledger Sawtooth架构的元素

24.png

让我们来讨论Hyperledger Sawtooth架构的核心元素:


1. 事件系统


通过查看任何一个Hyperledger Sawtooth的例子,你可以发现事件系统主要确保事件能够无问题地创建并发送给节点。因此,如果你使用事件系统,你可以创建一个订阅事件并自动获取新信息的应用程序。这些事情通常使Sawtooth平台运行得更顺畅。帮助节点收集他们需要的事件信息有助于维护完全的共识。


2. Sawtooth-Ethereum集成项目(Seth)


这是Sawtooth的一个主要特性。如果你想了解Hyperledger Sawtooth,你需要熟悉这个功能。它出现在每一个整合了以太坊特性的Hyperledger Sawtooth例子中。但它到底做什么呢?他们对以太坊属性有什么应用?所以,这个小组件有助于建立两个平台之间的桥梁。因此,这个元素可以用来实现这两个平台之间的兼容性。你有想过Seth能提供多少机会吗?它是Hyperledger Sawtooth设计的一个很好的补充,所以如果你的商业项目需要它,就使用它。


3. 可插拔的共识算法


在Hyperledger Sawtooth架构中包含可插拔的共识算法是另一个有趣的特性。可插拔共识机制对于区块链行业来说是一个非常新颖的进步。它允许你选择你的平台需要的共识机制。自然,只有某些共识适合某些使用场景。为了构建基于商业区块链的产品,你必须要有灵活性。因此,Sawtooth的可插拔共识带来了动态性。


4. 交易族模型


交易族提供了各种操作,包括为你的智能合约提供功能。你不能在不使用交易族的情况下使用Hyperledger Sawtooth系统,你可以通过查看一个例子来看到。


区块信息交易族:区块信息交易族允许你存储与区块相关的信息。


小银行交易族:在实践中,这个族最适合评估和测试你的公司的可行性。


设置交易族:你可以使用Settings族存储链上设置,它也为你提供了一个参考模型来做这个事情。


验证者注册交易族:使用这个族可以扩展系统的验证者,通过添加新的成员。如果不使用这个族,你不能添加任何验证者。因此,它是必不可少的。


整数键交易族:这是最好的交易族之一,它允许对所有部署的账本进行无需资源的测试。


XO交易族:这是对整个网络的一个更有趣的解释。Sawtooth也包含了井字游戏,因为网络的创建者想给它增加一些额外的风格。因此,你可以使用这个与任何节点玩游戏。


身份交易族:这主要是为了数据保存。特别是,验证者可以访问的数据。更重要的是,它保存了关于节点的详细信息,包括他们的公钥和其他东西。


系统上还有两个额外的交易族。他们是相对较新的补充:


Seth交易族:由于Seth交易族,你可以在网络上使用为以太坊区块链创建的应用程序。这意味着你可以使用基于Solidity或其他应用程序创建的智能合约。


Sabre交易族:Sabre交易族是另一种使用智能合约的方法。这个可以用来在WASM或虚拟WebAssembly机器上运行智能合约。它也使得智能合约可以在链上执行。


Hyperledger Sawtooth的应用


X O:通过玩井字棋游戏来说明如何创建简单的交易。X O交易族中的构造和接受交易提供了一个X O命令,使两个玩家能够进行游戏。您可以查看X O交易族以获取更多详细信息。


Sawtooth供应链:Sawtooth供应链展示了如何跟踪任何物品的起源和其他相关的上下文数据。供应链提供了一个示例应用,包括一个网络应用,一个定制的REST API,和一个交易处理器。这个示例应用展示了如何将区块链状态同步到本地数据库进行复杂的查询,以及在浏览器中进行交易签名的分布式方式。


Sawtooth市场:在区块链上,Sawtooth市场教导用户如何交换特定数量的专业资产。借助Sawtooth验证器和其他几个组件,这个示例应用将运行一个Sawtooth区块链,并提供一个简单的RESTful API来与之通信。


交易处理的支持语言


Hyperledger Sawtooth支持使用多种编程语言进行交易处理。一些被支持的语言包括:


Python:Sawtooth提供了一个名为“Sawtooth SDK”的Python库,允许开发者与分类账进行交互并提交交易。


JavaScript:通过使用“Sawtooth JavaScript SDK”,Sawtooth支持JavaScript,这个SDK提供了一组API来与分类账进行交互。


Go:Sawtooth也通过“Sawtooth Go SDK”支持Go,这允许与基于Go的应用程序进行轻松集成。

C++:Sawtooth也通过“Sawtooth C++ SDK”支持C++,这个SDK提供了C++ API来与分类账进行交互。


其他语言如Java,Rust,Shell等也可以通过Sawtooth提供的RESTful API使用。Sawtooth对多种编程语言的支持使得它易于与现有系统集成,并适用于广泛的用例。


Hyperledger Sawtooth开发架构


Hyperledger Sawtooth的模块化架构使得可以在各种系统组件之间进行关注点的划分。Sawtooth架构的主要组件有:


分布式分类账:这个组件负责维护所有交易和智能合约执行的记录。分类账在网络中的所有节点上复制,并且交易是并行处理的,以提高性能。


交易处理器:这个组件负责处理交易和更新分类账的状态。它还包括一个名为“Sawtooth Lake”的智能合约引擎,允许轻松部署和执行智能合约。


共识算法:这个组件负责确保网络对分类账的状态达成一致。Sawtooth支持多种共识算法,包括PoET,PBFT,Raft和Devmode。


REST API:这个组件提供一个RESTful API用于与分类账进行交互和提交交易。它允许与现有系统进行轻松集成,并支持多种编程语言。


验证器:这个组件负责在将交易和区块添加到分类账之前进行验证。它确保交易格式正确,并且符合智能合约的规则。


交易调度器:这个组件负责安排网络处理交易的顺序。它确保冲突交易以避免冲突和保持分类账一致性的方式处理。


共识引擎:每种共识算法都有自己的引擎,用于运行共识协议并与系统的其他组件进行通信。


Hyperledger Sawtooth在工作中


Hyperledger Sawtooth可以用来构建各种分布式分类账应用。Sawtooth在不同行业中的使用示例包括:


供应链管理:Sawtooth可以用来构建一个防篡改和透明的供应链管理系统。它可以用来跟踪货物的移动,从起源点到最终目的地,为所有参与方提供可见性和责任。


金融服务:Sawtooth可以用来构建一个安全高效的金融交易和记录保持系统。它可以用于贸易金融,数字资产管理和合规报告等活动。


医疗保健:Sawtooth可以用来构建一个安全的、私有的医疗记录共享系统。它可以用来确保患者数据只能被授权方访问,同时仍然提供一种有效的方式在医生,医院和保险公司之间共享数据。


身份管理:Sawtooth可以用来构建一个去中心化和防篡改的身份管理系统。它可以用来存储和验证身份和凭证,并提供安全和私有的服务和资源访问。


能源管理:Sawtooth可以用来构建一个管理和跟踪能源生产,分配和消费的系统。它可以用来实现点对点能源交易,跟踪和验证可再生能源信贷,以及管理微电网的能源分配。


这些只是一些例子,Sawtooth足够灵活,可以用于广泛的其他行业和应用。Sawtooth的模块化架构和对不同共识算法的支持使得它成为构建和部署分布式分类账的强大平台,可以用于广泛的用例。


夏天来了,也是时候提升技能了!现在已经有超过5,000名学习者完成了他们从数据结构和算法基础到高级水平开发程序,如全栈,后端开发,数据科学的学习旅程。


当我们的DSA到开发:编码指南能在几个月内帮助你掌握所有这些时,为何还要去其他地方呢?现在就申请我们的DSA到开发计划,我们的顾问将会联系你以提供进一步的指导和支持。

声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!