8

For example if a merchant is using EOSIO for payments, what is the expected time for a transaction to reach irreversible state after it has been included in a block?

In addition to the expected average, how long would it take in a best/worst case scenario?

2 Answers 2

10

Until BFT messages are deployed and working, the DPOS side of BFT-DPOS will reach finality for a transaction 180 seconds after it is included in a block. This is assuming a nominal network conditions with 21 producers.

The math to arrive at this number is that, each block must be "pre-committed" to by 2/3 + 1 producers in order to be eligible for "commitment" which also requires 2/3 + 1 producers. In a nominal 21 producer network (where each producer creates 12 consecutive 0.5 second blocks), this works out to 180 blocks for minimal "pre-commitment" and another 180 blocks for actual "commitment" before finality. 2 * 180 * 0.5 seconds === 180 seconds.

The likelyhood of a transaction reaching finality goes up considerably after the pre-commit phase but if you need chain level guaranteed finality, that is 180 seconds.

Once BFT messages are rolling, the minimum time to finality would be governed by how fast the 21 producers can distribute and collect the necessary pre-commit and commit signatures explicitly.

2
  • This BFT is something not implemented yet? Commented May 25, 2018 at 14:42
  • It is implemented in the core chain processing and test cases but no plumbing exists for the networking layers. When it is ready, it can go live seamlessly in an existing chain. Producers would need to upgrade (not hardforking) and then dApps could start using it.
    – Bart Wyatt
    Commented May 25, 2018 at 16:31
1

When you do a transaction you get the expiration time of the transaction along with the tx hash other than few other parameters. The expiration time is the time till which the tx is valid.If the tx gets included in the blockchain in block x after it is broadcasted ( this can be checked by using the command cleos get transaction txid ) , then . within the expiration time the last irreversible block has to move past the block where the tx was included. If not the tx is deemed unsuccessful. The default expiration time is 30 sec which allows all bp's to validate it and included in block

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.