Alexandre Bourget, CTO @ dfuse, explains why blockchain data providers need to provide better data delivery guarantees, and how we are solving this problem.
Right now, dapps are querying load-balanced nodes from API providers such as Infura or Alchemy. The problem is that different nodes are synced at different block heights due to network propagation delays, meaning that you will have a hard time finding the “right” data. For example, While querying the same endpoint, your dapp could be retrieving a block from one node, and account data from a second node. This makes it difficult to maintain a coherent and consistent view of the blockchain.
At dfuse, we do not want developers to settle for this pattern of excessive “try and catch”. Instead of needing to ensure consistency in your dapp on a per case basis, we are solving the problem at its root, and delivering the solution to you.
The dfuse platform provides a single holistic view of the chain state.
The native querying layer on Ethereum utilizes bloom filters. These data structures are probabilistic; they can determine if a value is NEVER seen or MIGHT have been seen. Consequently, this can produce many false positives. For instance, if you are looking for logs of ERC-20 transfers on a regular Ethereum node, you will first find the potential matches. Then you will need to download the corresponding blocks and check if the results are real matches. This extra step introduces more code and network load on the client. Frontend dapps should not be responsible to solve this problem, as it leads to inefficient app-specific code.
dfuse indexes both LOGS and CALLS with common search terms on Ethereum, hence there is no false positive. Some of our users even said that they were able to remove up to 90% of their code because of that! All of that removed code was written to handle retries to ensure data consistency. dfuse Search results also include a chain-wide cursor, which is independent of the node that is serving the results, and fork aware.
You can now have confidence in your application’s data source. Try out dfuse for free, and ultimately, you will never miss a beat!