Every blockchain has a period of uncertainty relative to transaction execution. Being an eventually consistent database, a blockchain can always alter the head of its history before it becomes immutable. On EOSIO chains, a block and its contents can become irreversible, while on other chains, they can only be given very high levels of confidence.
One of the hardest parts for blockchain developers is to learn to navigate this uncertainty. We at dfuse offer a lot of tools and APIs to help you with just that. Today we’re releasing another much requested feature: pushing a transaction with the guarantee that it has passed 1, 2 or 3 producer handoffs.
On EOSIO chains, when a block producer finishes their round of production (12 blocks), the next producer takes over 0.5 seconds after. This is referred to as a handoff of block production, and it is also where we see the most microforks. This is due in part to the incredibly high speed of block production, latencies observed due to the amount of hops between nodes, and sporadic network issues affecting block propagation.
By using our drop-in replacement endpoint and simply adding an HTTP header, you can submit a transaction to the network and wait for it to pass the requested amount of block producer handoffs. Once it does, it will return with the traces that occurred during the execution of the block that is now a few blocks deep. This allows you to build UIs that are fast and friendly, even when you have high-stake transactions. It is faster than waiting on irreversibility, and allows you to manage the risks of an eventually consistent database like a blockchain with more precision.
This is but one of the many features we’re rolling out for dfuse. We are working to provide the most robust and reliable tool for developers to ensure they have access to the data they need to build the next generation of dapps. Get your free API key and start building today. Join us in the dfuse Telegram channel to let us know what features you’d like to see added to dfuse.