Hyperledger Sawtooth 在区块链中的应用

2025 年 5 月 29 日 | 阅读 10 分钟

引言

Hyperledger Sawtooth 是一种区块链架构,免费开源,旨在简化分布式账本用例的开发和部署。 其模块化设计将业务逻辑与区块链的核心功能分离,使其具有多功能性和适应不同应用的灵活性。Sawtooth 可配置的交易处理功能允许程序员定义交易的验证和管理方式。它还使用最先进的共识技术,如经过时间证明(PoET),以提高安全性和保障。本教程详细介绍了区块链中的 Hyperledger Sawtooth。

Hyperledger Sawtooth

Hyperledger Sawtooth 是一个开源的商业区块链即服务系统,可以执行可定制的智能合约,而无需理解核心平台的基本架构。

  1. 它是 Hyperledger 项目的组成部分,该项目致力于创建跨行业的区块链协议。
  2. Sawtooth 提供了一个通用且模块化的框架,允许公司设计和管理根据其需求定制的区块链解决方案。

Hyperledger Sawtooth 特性

  1. 职责分离: 通过将应用程序逻辑与基本区块链功能分离,它允许定制和扩展。
  2. 灵活性: 由于模块化设计允许集成不同的元素和交易流程,适用于特定要求。
  3. 交易处理器: 程序员可以设计自己的交易处理器,用于指定交易的使用和评估方式。
  4. PoET: 通用且节能的 PoET 共识算法通过抽奖式程序选择区块管理器。
  5. 全球状态: 通过保持区块链的全球状态不变,确保所有交易同时修改状态。
  6. 有效状态更新: 有效跟踪和验证状态修改,以保持可靠性和完整性。
  7. 高吞吐量: 旨在支持巨大的交易量并促进广泛的部署。

Hyperledger Sawtooth 的关键要素

以下是 Hyperledger Sawtooth 主要元素的概述。

  1. 交易处理器: 它将交易的业务逻辑应用并验证到区块链的当前状态。设计人员可以创建自定义交易处理器,以根据特定的应用程序要求指定交易的处理方式。它具有预先存在的交易族以及创建新交易族的能力。
  2. 共识引擎: 状态引擎负责确保网络就交易的顺序和合法性达成一致。Sawtooth 基本共识算法选择区块管理器,该算法使用基于运气的技术来节省能源。它通过支持多种共识算法(如 Raft 和 PBFT)提供了达成共识过程中的可移植性。
  3. 区块链: 每笔交易的安全永久记录都保存在中央账本中。交易序列和额外的元数据,例如前一个区块的哈希值,都包含在区块中,以维护链的真实性。状态是区块链当前状态的描绘,包括交易修改和数据。
  4. 验证器: 验证器是指参与网络、确认交易并提出新区块的节点。它确保交易得到正确处理,并且区块满足共识要求。验证器的职责包括保持区块链账本最新、响应交易请求并遵守共识准则。
  5. Rest API: 共识提供了一组 HTTP 端点来连接 Sawtooth 网络。它使交易提交状态查询和与区块链网络的程序化交互成为可能。
  6. 客户端 SDK: 这些是软件开发工具包,允许与 Sawtooth 网络进行交互,并可用于不同的编程语言。其用于 Python、JavaScript 和 Java 的 SDK 促进了应用程序开发和 Sawtooth 集成。
  7. 交易族: 本组描述了管理特定类型交易的规则和理由。包括满足应用程序要求的状态处理程序和交易处理器。为了处理应用程序开发人员的特定逻辑,可以设计自定义交易族。
  8. 状态数据库: 此数据库跟踪区块链的当前位置,它代表每个已完成交易的结果。通常处理 Apache Cassandra 或 RocksDB 等数据库系统,以有效地管理和查询状态数据。
  9. Sawtooth 运行时: 它维护全局状态并管理交易的实施。它由交易处理器和状态数据库组成,管理交易的执行和存档。
  10. 配置系统: 在其他设置和配置中,此系统管理共识参数和网络拓扑。它使得无需重新启动整个系统即可更新网络配置。

Hyperledger Sawtooth 如何运作?

以下详细解释了 Hyperledger Sawtooth 的工作原理

  • 网络设置和配置: 节点,也称为验证器,是创建网络的第一步。每个节点都有助于维护区块链。网络就共识算法达成一致,以确定如何验证区块并将其包含在区块链中。
  • 交易提交: 客户使用客户端 SDK 或 REST API 与网络连接以提交交易。要实现的功能和处理所需的元数据包含在交易的有效载荷中。
  • 交易处理: 每个节点都有一个交易处理器来监督交易实施和验证过程。交易族指定交易处理器用于验证和执行交易到区块链状态的特定逻辑。
  • 共识机制: 新区块由验证器通过收集和分析网络交易来指定。验证器通过选定的共识算法(如 PoET)就指定区块达成一致。通过这种机制,所有节点就交易的顺序和真实性达成一致。达成共识后,区块被添加到区块链中,其交易被添加到状态中。
  • 状态管理: 区块链跟踪一个全局状态,该状态表示账本的当前状况,其中涉及所有交易影响。已提交的区块将附加数据添加到状态数据库。为此,必须应用交易结果并相应地更改状态。客户可以查询状态以获取最新信息或验证信息。
  • 状态和区块存储: 区块被包含在链中的区块链中,其中每个区块链接到前一个区块,从而保证不变性和可靠性。由于状态保存在数据库中,因此可以高效地访问和管理状态。
  • 安全和验证: 验证器根据共识准则和交易族逻辑确认区块和交易的真实性。Sawtooth 集成了访问限制、加密以及身份管理,以保护信息和交易。
  • 交易族: 这些组概述了各种交易的指导方针和理由。根据应用程序设计人员的需要,能够设计定制交易族以执行特定的业务逻辑和操作。
  • 客户端交互: Rest API 提供用于区块链中状态查询、数据检索和交易提交的端点。用于不同编程语言的工具和库,使与 Sawtooth 网络的通信变得简单,被称为客户端 SDK。

Hyperledger Sawtooth 共识算法

Hyperledger Sawtooth 模块化设计使可配置的共识机制成为可能。以下是 Sawtooth 支持的一些共识算法。

  1. PoET: 默认情况下,Sawtooth 共识算法称为 PoET。为了确保公平有效的共识构建,它利用可信执行环境或 TEE。下一个区块由节点(验证器)根据随机分配的等待时间建议。每个节点在建议区块之前等待预定义的时间。等待时间最短的节点建议新区块。其余节点然后确认区块和相关交易。
  2. PBFT: 实用拜占庭容错 (PBFT) 是一种共识技术,可以管理拜占庭错误,其中节点可能恶意行为或发生故障。最多可以接受三分之一的不良或损坏节点。PBFT 保证了强大的节点协议和一致性。
  3. Raft: Raft 提供了一种在分布式系统中达成共识的高度可靠和容错的方法。它提供了一种直接且高度可靠的达成协议的方式。通过选择新的领导者和复制日志以实现安全的数据持久性,优雅地管理节点故障。
  4. Sawtooth Lake: 这种 Raft 机制的实现是专门为 Hyperledger Sawtooth Lake 创建的。它提供了低成本的区块生成和共识。

Hyperledger Sawtooth 安全特性

  1. 身份验证: 通过利用加密密钥和数字证书,Sawtooth 验证和授权网络用户。每个客户和节点都有一个唯一的标识。
  2. 访问控制: 可以使用身份管理角色和权限,对谁可以访问特定信息或执行特定任务进行细粒度控制。
  3. 自定义逻辑: 交易处理器可以使用交易族指定的自定义验证逻辑,以确保交易遵循特定的业务准则和限制。
  4. 容错性: PBFT 和 Raft 等共识算法提高了网络安全性,它们提供了针对欺诈活动或节点故障的持久性和容错性。
  5. 日志记录: Sawtooth 具有日志记录特性,可以记录交易处理和状态更改,为安全和法律需求生成审计跟踪。
  6. 监控工具: 可以集成一系列工具来监控网络活动、识别异常并确保区块链网络的完整维护。
  7. 安全补丁: Sawtooth 项目定期更新和维护软件,以修复安全漏洞并实施最佳实践。

Hyperledger Sawtooth 的应用

  1. 供应链管理: Sawtooth 跟踪供应链中商品的来源,从制造到交付提供透明度和问责制。记录供应链、生产、运输和分销的每个步骤,确保商品的可靠性和质量。
  2. 金融服务: 数字资产,如加密货币和代币化货币,使用 Sawtooth 更容易转移和管理。它通过提供不可读和透明的记录来简化发票、支付、结算和信用证等流程。
  3. 医疗保健: 通过安全地处理和保存患者信息,例如同意书、健康记录和治疗历史。通过监控药物从生产到交付,它可以防止假冒药物并确保合规性。
  4. 投票系统: 为确保选票完整性和保密性,Sawtooth 提供透明安全的电子投票解决方案。
  5. 身份管理: 它跟踪公民、数字身份和登录凭据,提高政府服务的安全性并降低欺诈。
  6. 能源部门: Sawtooth 支持点对点能源交易系统,允许安全有效的能源资源和信用交易。能源分配和消耗的监控和验证是其能源网格运行管理和优化的一部分。

交易处理器支持的语言

对于 Hyperledger Sawtooth 交易处理,可以使用多种编程语言。支持以下语言:

  1. Python: 为方便与账本交互和交易提交,Sawtooth 提供了一个名为 Sawtooth SDK 的 Python 库。
  2. JavaScript: 由于 Sawtooth JavaScript SDK 提供了一系列用于与账本交互的 API,因此 Sawtooth 与 JavaScript 兼容。可扩展应用程序可以受益于其同时管理多个任务的能力。
  3. Go: Sawtooth 通过 Sawtooth Go SDK 提供对 Go 依赖用例的支持,从而实现与 Go 的无缝集成。
  4. C++: Sawtooth 还通过 Sawtooth C++ SDK 支持 C++,该 SDK 提供了用于与账本交互的 C++ API。
  5. Java: Java 是一种流行的面向对象编程语言,以其跨平台兼容性而闻名。由于其强大的性能和效率,它可以处理复杂的交易。提供了各种库和工具来支持企业级用例。

集成其他技术

这里总结了 Hyperledger Sawtooth 如何集成到其他技术中。

  • 存储系统和数据库: Sawtooth 可以将区块链状态存储在多种不同的数据库中。两个示例是 Apache Cassandra 和 RocksDB。Sawtooth 灵活的框架允许根据可伸缩性和性能要求使用各种数据库。
  • 身份管理系统: 通过与身份管理系统集成可以提高安全性和身份验证。为了管理和验证其区块链网络中的身份,组织可以使用自定义身份解决方案。
  • Web 和应用程序框架: Web 应用程序和服务可以与 Sawtooth RESTful API 集成,以访问区块链网络。为了方便不同应用程序框架的用户与 Sawtooth 客户端 SDK 交互,提供了 Python、JavaScript 和 Java 的客户端 SDK。
  • 智能合约和业务逻辑: Sawtooth 促进了独特交易族的开发,这些交易族指定了特定的处理规则和业务逻辑。即使 Sawtooth 不使用像以太坊那样的传统智能合约,也可以使用 Python、JavaScript 和 Go 来创建实现复杂业务逻辑的自定义交易处理器。
  • 共识机制: Sawtooth 支持多种共识算法,由于其模块化设计,可以轻松集成新的或独特的共识机制。如有必要,组织可以设计和集成自己的共识过程以用于特定应用程序。
  • DevOps 工具和云平台: Sawtooth 与包括 AWS、Azure 和 Google Cloud 在内的多个云平台兼容,并且可以与 DevOps 工具集成以进行持续部署和集成。利用 Docker 等容器技术部署和打包 Sawtooth 组件,以可伸缩和统一的方式。

Hyperledger Sawtooth 的挑战

  • 定制: 集成和定制共识算法和交易族等不同元素需要丰富的知识和经验。
  • 可扩展性: 为了将网络扩展到处理越来越多的节点和交易,可能需要仔细调整和优化网络和共识参数。
  • 测试和验证: 确保自定义交易处理器的安全性和精确性至关重要。测试不足可能导致交易处理缺陷和错误。
  • 数据保护: 即使 Sawtooth 提供了数据保护工具,DDoS 攻击也需要持续关注细节和强大的安全程序,以确保数据隐私并防御各种类型的攻击,如女巫攻击。
  • 互操作性: 将 Sawtooth 与现有企业系统和技术集成可能需要自定义适配器和大量的开发工作。

缺点

  • 多组件设置: Sawtooth 模块化框架,包括交易处理器、验证器以及状态数据库等组件,将导致复杂的设置和配置过程。
  • 交易吞吐量: Sawtooth 旨在实现高交易吞吐量,但在大规模获取高效率可能具有挑战性,尤其是在处理大型网络和复杂交易族时。
  • 共识开销: 某些共识算法(如 PBFT)可能需要重要的通信开销和处理能力,并对网络的整体速度和可扩展性产生影响。
  • 数据迁移: 由于需要数据转换和验证,将数据从传统系统迁移到 Sawtooth 区块链可能很困难。
  • 节点管理: 在分布式网络中保持节点健康、解决问题和管理更新可能很困难,需要高效的操作协议。

结论

Hyperledger Sawtooth 是一种灵活的区块链架构,具有巨大的优势,但它也有一些缺点。主要缺点包括可扩展性问题、缺乏共识解决方案、复杂的安装和管理以及创建自定义交易处理器时的限制。一旦这些问题得到充分解决,Sawtooth 的多功能性和强大的设计使其成为各种区块链应用的一个不错的选择。