articleschangelogteam
FullTx: An easier way to index EthereumLast updated on October 01, 2022APIModule
To index NFT data, we need to create a full index of Ethereum data. There are a lot of open source indexers that can do this but they didn’t fit our use case: we wanted one that could run in parallel with other indexing instances, optimizing for time. Our current indexer is able to scale horizontally in a distributed manner, allowing us to index at a speed of 40k blocks/min. The more instances we add, the faster it indexes. This means with not a significant amount of resources, we can index every Ethereum transaction that has ever occurred in just under 7 hours.Getting transaction receipts was the slowest part of the entire indexing process because there’s a lot of friction to getting them in bulk. It’s easy to get bulk transactions, since they are optionally returned with block info via JSON-RPC methods. But there’s no built-in JSON-RPC method to get transaction receipts in bulk. This is an issue because the majority of information needed is in the result of the transaction: whether a mint was successful, what tokens were transferred. As a first step towards making it easier to query Ethereum data, we are introducing a new data type called FullTx.FullTx is a data type created by Module that combines the data in a normal transaction object, with the data in a transaction receipt. The result is all the data that is relevant to a transaction, without having to send multiple requests. To further make querying Ethereum data frictionless, we have made all of our Ethereum endpoints easily queryable. Optionally query by sender, receiver, block number, hash, and more. We hope this will allow for less friction when working with raw Ethereum data.Test out the FullTx endpoint along with our other Ethereum endpoints here: Get Full TX.