智能合约索引 从您自己的智能合约事件生成自定义表。

这是翻译的原文链接

https://www.spaceandtime.io/blog/smart-contract-indexing

我们很高兴地宣布智能合约索引的发布:这是我们区块链索引服务的一个新功能,允许您通过提供合约地址,从自己的智能合约事件中生成新的自定义表集。

它是什么,我们为什么要造它

当您使用空间和时间进行构建时,您可以免费访问我们已经从主要链中实时索引的全面区块链数据。与其他索引解决方案相比,我们采用的方法更快、更成熟、可扩展、兼容zk,最重要的是能够索引整个链。因为我们运行的是相当大的数据仓库集群(不是简单的单服务器PostgreSQL实例),所以每个集群可以容纳数十tb的数据。仅以太坊每年就产生约2TB的重要数据,以太坊是迄今为止数据量最小的流行链。

我们的索引服务提供存储在“核心”表中的链级数据(即像钱包、交易、合约、区块、代币转移等表——一旦索引完成链的完整链状态),以及来自Aave、Uniswap、Opensea、dYdX或价格feed等协议的特定协议语义数据集。但我们也明白,有时开发人员需要访问由他们自己的智能合约发出的事件周围的数据,我们希望抽象出必须对核心表进行排序才能获得数据的复杂性。

今天,我们很高兴地宣布,SxT索引服务增加了一个功能:智能合约索引。现在,用户可以提交一份智能合约列表进行索引,Space and Time将创建一组新的自定义表,其中包含来自这些特定智能合约的事件。我们将发出的事件写入新表中,然后可以查询,与其他索引数据或链下数据连接,并且ZK被证明是亚秒级的。这使得开发人员能够以一种快速、经济且经过zk验证的方式,创建高度定制、高效和复杂的应用程序,这些应用程序可以利用链级数据、特定于协议的数据、脱链数据以及来自他们自己的智能合约事件的数据。

它是如何工作的

获取自己的智能合约事件

索引您的智能合约就像在时空工作室上提交合同地址一样简单。

登录Studio并导航到主菜单上“Smart Contracts”选项卡下的“Get data from chain”按钮 选择您的合约链并输入地址 检查最近的onchain数据生成的表,并提交索引 就是这样!我们提取ABI,为每个智能合约事件自动生成一个表,并开始为您自动填充它们。

https://app.spaceandtime.ai/?utm_source=twitter&utm_medium=social&utm_campaign=sci

SxT区块链索引是如何工作的

我们构建了一个强大的基于rust的索引器,以可验证的方式从每个块中获取与每个交易相关的每个智能合约事件。它首先为每个链轮询多个RPC节点,并验证从每个RPC节点接收到的信息是否一致。然后索引器通过本地缓存的智能合约abi解码数据。最后,将此数据转换为易于查询的关系型表单并加载到数据仓库中——这是当前链上数据的精确副本。当您提交智能合约进行索引时,所发出的事件将单独写入您定义的新表中。整个过程在块时间内完成。

索引器服务是一个基于rust的二进制文件,因此随着Space and Time继续去中心化,我们计划在其中添加一个轻节点,以便多个索引器(Validators)可以对每个链进行冗余索引,并将其索引数据的承诺发送到Transaction节点以达成共识。我们在白皮书中详细介绍了这个计划中的体系结构,但这里有一个总结:事务节点层负责BFT共识。索引节点(称为验证器)解码和转换来自RPC的原始区块链数据,并在数据上构建加密承诺,这些数据稍后用于zk证明验证。承诺和索引数据都被发送到事务节点,这些事务节点在给定多个冗余索引节点对每个链进行索引的情况下达成共识。

它使什么成为可能

自定义和灵活性:Web3开发人员经常使用独特的智能合约来生成对其应用程序功能至关重要的特定事件。其他索引服务并不总是涵盖这些专门的事件,限制了开发人员创建完全优化和响应的dapp的能力。时空的扩展索引服务通过为定制事件提供索引的灵活性,解决了这一差距。 可扩展性:内部处理和处理区块链数据可能是资源密集型的,需要大量的基础设施和技术专业知识。通过将这种数据索引外包给时空,开发人员可以更有效地扩展他们的应用程序。 改进的数据可访问性:访问和查询区块链数据可能既复杂又耗时。这项服务简化了流程,提供结构化的、可查询的表,使开发人员更容易提取见解并将区块链数据集成到他们的应用程序中。