查看原文
其他

Substreams: 大幅提高子图的索引性能

The Graph GraphProtocol中文 2022-06-03
                              

原文作者:The Graph 基金会           

翻译:The Graph 社区成员                            


                                               


                                                                                                                                                                      

在过去的一年里,The Graph生态系统有了长足的发展,现在有五个核心开发者团队全职工作,为世界增强The Graph的索引和查询能力。StreamingFast是继Edge & Node之后加入的第一个核心开发团队,它带来了令人难以置信的人才库和强大的技术来推动协议的发展。最激动人心的创新之一很快就要实现了:Substreams。


StreamingFast(前身为dfuse)成立于2018年,提供高性能、跨链的集中索引服务。与Edge & Node团队的互动使StreamingFast确信,去中心化是为未来建设的最有效和可扩展的方式。随后,StreamingFast接受了The Graph基金会的资助(https://thegraph.com/blog/core-dev-grant),并在2021年6月作为The Graph核心开发者团队加入,全职从事The Graph生态系统的工作。这种去中心化的并购版本是第一个这样的版本(但不是最后一个)。


在加入The Graph核心开发者团队时,StreamingFast带来了Firehose,一种从区块链摄取数据的高性能方法,并开始将其整合到The Graph中。当时,一个极其复杂的子图可能需要数周的时间来同步(https://pancakeswap.medium.com/pancakeswap-info-relaunch-in-partnership-with-150-000-bounty-winner-streamingfast-f7892559d388),这给在Graph上构建的开发者带来了烦恼。StreamingFast创建了一个名为Sparkle的原型,这有助于将该子图的同步时间从数周减少到6小时左右。现在,StreamingFast已经发展了Sparkle的功能,并创建了Substreams,可以在所有链上的所有子图上扩展。

Substreams如何工作


基于RPC的Subgraphs有一个处理区块链数据的线性索引模型(即它们一次一个,按顺序处理事件)。它们通过对以太坊客户端的轮询API调用来实现。Firehose技术用数据流取代了这些轮询API调用,利用推送模式,更快地将数据发送到索引节点。这有助于提高同步和索引的速度。


Substreams通过实现大规模并行化的流数据,使事情更进一步。Substreams可以以强大的新方式进行组合和聚合,在一小部分时间内将数据输入子图或终端用户应用程序。通过Substreams并行化,一些子图的同步速度可以提高100倍以上。


有了Substreams,数据管道可以被分解成四个阶段:

提取(通过Firehose)

转换(通过Substreams和子图)

加载(到postgres数据库)

查询(向用户提供查询)


第一个通过Substreams的转换允许更轻量级的并行计算和可组合性,许多子图可以从中受益。


举例说明:在大型DEXes的实例中--需要为任何给定的交易寻找配对--Substreams模型使单个小模块同时工作在配对、储备提取器、价格、数量汇总和其他关键指标上。如果开发者以现有的Substreams为基础,他们可以利用DEX价格并创建一个模块来平均整个生态系统的所有DEX价格。


Substreams模块不需要通过postgresQL。现有的模块可以被利用,开发者可以对其进行调整,让终端用户利用可组合性,而不需要为索引支付性能罚款。


在提取和转换阶段之后,Substreams可以以无限多的方式组成,使另一个模块能够填充到子图中,所有这些都在Load操作之前。


相对于线性的历史数据处理,Substreams数据可以被并行处理和缓存。这允许以最快的速度插入到postgres数据库中,从几天或几周到几小时。


这都是对开发者的一种好处。开发人员需要构建子图,并且应该能够尽可能快地迭代这些子图,最大限度地提高开发人员的生产力。开发人员将能够在现有的模块上进行迭代,重用最有效的流程(如DEX的例子),使用增量迭代来改进,而不需要重建一个新的子图。他们将能够观察数据并根据需要添加到他们的数据库中。子图和Substreams的速度和数据可组合性,通过Firehose拉动数据,将使The Graph成为从区块链获取数据的最快和最有效的方式。


这就是通过The Graph的开源数据可组合性的力量:开发人员在全球生态系统中建立可组合的数据的蜂巢式思维。中心化的服务是无法竞争的。


过程中的当前阶段


Substreams的初步实现已经建立,并正在进行测试。核心开发人员正在与一小组开发人员合作,以改进该软件。请留意关于开发人员可用性的公告。


感谢所有致力于此的核心开发团队(特别感谢StreamingFast!)。我们已经迫不及待地想让开发者体验一下Substreams所带来的更快的索引性能。 


关于The Graph               


The Graph是web3的索引和查询层。开发者建立并发布开放的API,称为子图,应用程序可以使用GraphQL进行查询。The Graph目前支持从32个不同的网络索引数据,包括Ethereum、NEAR、Arbitrum、Optimism、Polygon、Avalanche、Celo、Fantom、Moonbeam、IPFS和PoA,更多网络即将推出。到目前为止,已经有超过38000个子图被部署在托管服务上,现在子图可以直接部署在主网上。超过28000名开发者已经为Uniswap、Synthetix、KnownOrigin、Art Blocks、Gnosis、Balancer、Livepeer、DAOstack、Audius、Decentraland和其他许多应用建立了子图。   


The Graph网络为开发者提供的自助服务体验于2021年7月推出;从那时起,超过232个子图已经迁移到主网,至今已有超过161个索引人为子图查询服务,8600多个委托人和2300多个策展人。到目前为止,已经有超过300万个GRT信号发出,每个子图平均有15000个GRT。

 

如果你是一个构建应用程序或web3应用程序的开发人员,你可以使用子图来索引和查询区块链的数据。The Graph允许应用程序在UI中有效和高性能地呈现数据,并允许其他开发人员也使用你的子图。你可以使用新推出的Subgraph Studio将子图部署到网络中,或者查询Graph Explorer中的现有子图。The Graph非常欢迎你成为The Graph主网的索引人、策展人和/委托人。


The Graph基金会负责监督The Graph网络。The Graph 基金会由技术委员会负责监督。Edge & Node、StreamingFast、Figment、Semiotic和The Guild是The Graph生态系统内众多组织中的五个。    


关于StreamingFast 


StreamingFast(https://streamingfast.io/)是一个web3的建设者和投资者。作为The Graph的核心开发者,它擅长于为处理和索引区块链数据构建大规模可扩展的开源软件。该公司由一个连续的技术企业家团队创立,在大规模数据科学方面有深厚的专业知识。它的核心创新是Firehose,是一种基于文件和流媒体优先的区块链数据处理方法,能够在高吞吐量链上实现高性能索引。

               

  The Graph 官方渠道                       

             

官方网站:           

https://thegraph.com/   

   

官方电报:               

https://t.me/GraphProtocolCN


官方推特:           

@graphprotocol
中文推特:           @TheGraphCN
官方Discord:            https://thegraph.com/discord               
官方Blog:                                             

https://thegraph.com/blog/                 


官方Github:           

https://github.com/graphprotocol                                                          

点击  阅读原文 阅读英文版


                           


                           

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存