BFT-Finality
Transaction Finality
Transaction Finality is the guarantee that a transaction cannot be reversed, changed, or canceled once completed. The Hepton uses Byzantine Fault Tolerance-Based (BFT) protocols for fast finality. There will be three statuses for a block:
result | status | mark |
---|---|---|
0 | Unknown | The status of the current block is unknown |
1 | Justified | The current block has reached a preliminary consensus, but there is a certain chance to discard it |
2 | Finalized | The current block has reached a final consensus and will not be forked and discarded |
Besides, Hepton uses a longest chain
(actually, the largest total difficulty) rule to choose a branch without Finalized blocks.
So, about the finality, there will be three conditions:
Check the block status by using the RPC API eth_getblockpredictstatus, if the block is Finalized, then it reaches finality.
Normally, a block can be finalized as fast as there are 3 block confirmations
.
Or you can use eth_getlastfinalizedblockinfo to get the latest finalized block.
If a block and any of its descendant block is not Finalized, then it's
probabilistic safe for finality in 25 confirmations
.If a block and any of its descendant block is not Finalized, then it's
safe for finality in 81 confirmations
Last updated