Ensuring that your data is up to sync and fork-aware is a major challenge faced by all developers who incorporate Ethereum into their development stack. Alexandre Bourget, co-founder and CTO of dfuse, summarizes our powerful search API that handles this difficult task for you.
- EVM calls, through keywords like
- Log Events, as defined in the relevant smart contracts, through keywords like
When a smart contract marks log events as indexed, they will go into the bloom filter of nodes. However, we index everything -- not just what is found in the bloom filters. This allows your search to extend beyond what is indexed by default. This will not provide false positives, as it is a real search instead of a probabilistic bloom filter.
You no longer need to sacrifice speed or quality. dfuse Search offers lightning-fast results, often returning in under-a-second results, allowing you to craft incredible user experiences. Due to the amount of history that Ethereum holds, dfuse utilizes a cache to recall where your results are *not* found in the chain. This means that after your initial search through the chain, dfuse offers the fastest response time in the ecosystem, regardless of the age of the relevant transactions.
dfuse search also doubles as a real-time listener. Utilizing our fork-aware cursors, you can ensure that you never miss any relevant information. You can sift through the history of the chain, catch up to the head block, and listen into eternity. This allows many developers to skip the frustration, engineering time, and hundreds of extra lines of code, by simply utilizing dfuse endpoints.
By utilizing our fork-aware cursors, should your connection drop, you’ll be able to retrieve all the data you need when you re-connect, even if the last transaction you saw was forked out of the chain. This means that the many forks which occur per day are no longer something you need to write code to handle, as we take care of the heavy lifting for you. Many of our users have said that this alone has allowed them to remove up to 90% of their codebase.
On Ethereum you can often find reorganizations of one or two blocks deep each day, with three-block deep reorganizations occurring every few months. On Ethereum Classic, there was once even a reorganization of 51 blocks. For dapps that deal with sensitive information, such as financial transactions, this is a very crucial thing to get right. The dfuse API will send you the
UNDO signal in a search stream, so you can catch & react quickly to reversals of transactions.