阅读更多有关SubQuery的技术报道
支持Project Manifest中的External Chain文件
今天我们发布了project manifest 文件(project.yaml)的0.2.0版本,此次发布的新版本为开发人员提供了客户所要求的各种改进。
更重要的是, 现在您可以引用一个链类型定义文件,该文件在为自定义 Substrate 链建立索引时包含所有自定义类型。这样可以快速将新的 SubQuery 项目部署到任何基于Substrate链的平行链上,包括Kusama的所有平行链。此文件应是标准的链类型文件,以.json或.yaml格式的文件声明此区块链支持的特定文件类型。
此解决方案允许您避免复制和管理清单中本身的链类型定义,并允许您克隆存储库(如PolkadotJS)中列出的已发布链类型文件。
您可以在我们的更新文档中了解有关清单文件的信息,包括如何将项目迁移到该文件中。
为Moonbeam EVM 提供支持
在上周,我们宣布了正在与 Moonbeam 进行合作,为 Moonrive 提供完整的EVM和基础索引支持。
今天我们将继续跟进这一公告,并提供开发者所需要的资源。
目前,还没有开源工具供开发者在 Ethereum 和 Polkadot/Kusama 之间灵活地收集和查询数据。由此可能会导致 Moonriver 中的 dApps 解决方案被限制在智能合约层面,从而限制了它们对用户的服务能力。
与 Moonbeam 的合作将为 Moonriver 中的所有区块链数据带来一个完整且统一的数据索引解决方案,并将极大的有利于 Moonriver 中不断增长的生态系统。
SubQuery 将做客12月1日星期三的 Moonbuilders 研讨会,注册参加:
https://www.crowdcast.io/e/moonbuilders-ws/10
首先,请阅读并熟悉关于如何连接和索引来自Moonbeam、Moonbase、Moonbase Alpha和Moonriver数据的更新文档:
https://doc.subquery.network/create/moonbeam/
索引Moonbeam数据的过程只需两个步骤:
-
步骤1:添加Moonbeam的自定义数据源
我们已经创建了一个专门用于Moonbeam的Frontier实现的数据处理工具。它允许您在解析参数的特定ABI资源,以及事件来源或调用所指向的智能合约地址时使用此处理工具。您可以在此处了解更多有关信息:
https://doc.subquery.network/create/moonbeam/#
SubQuery 引入了相比于其他索引器更高级的过滤功能,允许用户过滤非合约事件、交易发送者、合约和索引的日志参数。
这将使开发者能够构建各种各样的项目,以满足其对特定数据的需求。
-
步骤2:对Moonbeam的数据进行索引
就像普通的 SubQuery 项目一样,您可以使用映射函数将链上数据转换为您所定义的GraphQL数据,不同之处在于,映射函数将接收基于以太坊TransactionResponse 或日志类型的 MoonbeamCall 或MoonbeamEvent ,而不是 SubstrateEvent 或 SubstrateExtrinsic。 你可以在这里阅读更多有关信息:
https://doc.subquery.network/create/moonbeam/#processor-options
在此处阅读有关此过程的完整文档:
https://doc.subquery.network/create/moonbeam/#processor-options
-
示例
在 Manifest 文件 (project.yaml)中,我们进行了大量的更改。您可以在下面看到,我们扩展了调用过滤器来以支持函数签名字符串和 sighash 函数,以过滤合约中调用的函数。对于事件过滤器,您可以使用遵循 Ethereum JSON-RPC 日志过滤器标准的规则进行过滤。SubQuery 为 Moonbeam EVM 引入了相比其他索引器更为高级的过滤器,这些改进将使得开发者受益匪浅。
如果您对于如何创建基于 Substrate 的 SubQuery 项目很熟悉的话,那么您会注意到,与常规的 SubQuery 项目相比,新的 Moonriver 所支持的映射函数与之十分相似。每个映射函数都会接收一个 MoonbeamCall 或 MoonbeamEvent 数据,并像处理其他 SubQuery 项目一样处理它们。
如有任何疑问,请查看我们的技术文档或在我们的 Discord 中的#technical-support 频道联系我们。
在Github中克隆示例项目:
https://github.com/subquery/tutorials-moonriver-evm-starter
如你所见,在单个项目中创建一个同时索引Substrate 和 EVM 数据的Moonriver 或 Moonbase Alpha 项目非常简单,而且十分相像。您可以使用 SubQuery 的高级搭建工具来加快 dApps 的开发。我们迫不及待地想看看你的成果!
关于Moonbeam
Moonbeam 是 Polkadot 网络上与以太坊兼容的智能合约平台,可以轻松构建本地可互操作的应用程序。这种以太坊的兼容性允许开发人员以最少的更改将现有的 Solidity 智能合约和 DApp 前端部署到 Moonbeam 上。作为 Polkadot 网络上的平行链,Moonbeam 将受益于 Polkadot 中继链的共享安全性以及与连接到 Polkadot 的其他链的集成。目前,PureStake 正在积极开发中,Moonbeam 预计将在2021年第四季度上线主网。
了解更多信息:https://moonbeam.network/。