了解 Substreams(子流) 的基础知识,Substreams 是一款强大的区块链数据索引解决方案。

TL;DR: 对于那些刚接触 Substreams(子流) 的人,请了解它是什么以及它如何使开发人员更容易访问区块链数据.

您是否正在寻找最佳的区块链数据索引解决方案?想知道如何有效地提取和管理区块链数据?

开始使用 Substreams

这是系列文章中的第一篇,将带您从 Substreams 新手到精通。

访问区块链数据的问题

开发人员经常发现构建以数据为中心的应用程序具有挑战性,尤其是在面对区块链数据时。提取区块链数据既困难又复杂,由于区块链的线性和分布式特性,以快速可靠的方式提取数据更具挑战性。

子流是解决方案

目前没有多少解决方案可以解决这个问题,但构建区块链数据处理工具的专家 StreamingFast 正在加紧努力。他们正在使用名为Substreams的新技术,以便更轻松地快速可靠地处理和索引区块链数据。

让我们来看看Substreams(子流)是什么,以及它如何使区块链数据更容易访问。

什么是子流?

Substreams 是 StreamingFast 为 The Graph Network 构建和开发的一种强大的区块链数据索引技术。它使开发人员能够从区块链中提取数据,应用自定义转换以满足其应用程序的独特需求,并毫不费力地将处理后的数据引导到各种目的地,例如 PostgresSQL、ClickHouse、MongoDB 等等。

子流是如何工作的?

Substreams 涉及两个主要组件:Substreams 提供程序和 Substreams 。让我们仔细看看每一个:

  • 子流提供程序:Substreams 提供程序存储和交付区块链数据。这些提供商(如 Pinax)使用 Firehose(一种由 StreamingFast 开发的与区块链无关的高性能数据提取引擎)来有效地提取区块链数据。

  • 子流包:Substreams 包是一个编译到 WebAssembly 中的小型 Rust 程序,它定义了开发人员想要应用于数据的转换。开发人员使用 gRPC 请求将 Substreams 包发送到 Substreams 提供程序,然后 SubRPC 请求执行该请求并流回转换后的数据。此外,开发人员可以根据需要将数据发送到其他目标。

目前,Substreams 只能使用 Rust 构建,但 StreamingFast 团队计划在不久的将来让开发人员在 Golang 和 TypeScript 中构建 Substreams。

使用 Substreams 的三种方式

开发人员在处理子流时有不同的选择:他们可以使用预构建的子流或构建自己的子流:

  1. 使用子流:利用 Substreams 的最简单方法是使用 Substreams Registry 上提供的预构建 Substreams 包,Substreams 注册表是发现和共享 Substreams 包的一站式目标。您可以选择满足您需求的软件包,并将数据无缝流式传输到您的首选目的地。

  2. 构建子流:如果在 Substreams 注册表中找不到合适的 Substreams 包,可以创建自己的包。开发后,可以将这些包发布到注册表,使其可供其他人使用。

  3. 扩展子流:您还可以利用注册表中的现有 Substreams 模块,并在其上构建新的 Substreams 模块,从而生成全新的数据集。这种方法允许自定义和扩展子流功能以满足特定要求。

这种协作方式促进了一个充满活力的生态系统,开发人员可以在其中贡献他们的解决方案,并从社区内的集体知识和创新中受益。

使用子流的好处

Substreams 在索引和查询区块链数据时为开发人员提供了许多优势。以下是其中的一些:

  • 速度:Substreams 通过并行架构和流优先设计优先考虑速度,确保高效的区块链数据索引。

  • 可组合性:子流提供可组合性,使开发人员能够轻松地使用彼此的代码或模块来创建复杂的索引管道。

  • 可 重用:Substreams 强调可重用性,使您能够使用 Substreams 注册表上提供的预构建子流来执行其索引任务。

  • 自定义sinks:Substreams 支持自定义接收器,允许与您首选的数据存储或分析解决方案无缝集成。

  • 将区块链数据索引转移到提供程序:Substreams 允许您将区块链索引的繁重工作交给像 Pinax 这样的服务提供商。提供程序可以根据请求进行扩展,并将数据下沉到各种数据库中,从而减轻了自己运行昂贵索引节点的需要。

  • 强大的社区支持:尽管是一项新技术,但 Substreams 已经引起了开发人员的极大关注,而且数量还在稳步增长。在 Pinax,除 StreamingFast Discord 社区之外,我们还有另外一个 Discord 社区,如果您想使用 Substreams 技术方案,可以为您提供支持和帮助。

学习和探索更多区块链数据索引技术

关注微信公众号:Pinax