Transaction finality is one of the key metrics when considering blockchain speed. Here’s how it works in @ElrondNetwork’s protocol.
1/ “Transaction finality” represents the time needed for a transaction to be irreversible. Roll-back mechanisms, such as fork recovery, can invalidate blocks and thus transactions. For this reason, a transaction is only considered final if it is included in an old-enough block.
2/ This is why it takes so long to deposit certain currencies to an exchange - even if you see your deposit transaction as successfully finalized in a block explorer, exchanges will wait a bit before they credit your account.
3/ Bitcoin TXs (transactions) are usually accepted as final after 6 confirmations, or 60 minutes. Ethereum TXs are considered final after 25 confirmations, or 6 minutes. In Elrond, finality is reached in ~27 seconds for intra-shard TXs and ~51 seconds for cross shard TXs
4/ TX finality in Elrond happens when the Metachain builds the next valid block on top of the block that “notarizes” - confirms as executed correctly - the TX. Intra-shard TXs are notarized in 4 rounds: Round 1 -> TX is included in the block
5/ Round 2 ->the next block is built after the previous one, Round 3 -> Metachain notarizes the header of the block with the TX in current metablock. The next Metachain block is created in Round 4, which makes the Meta-block from Round 3 final.
6/ The transaction was submitted sometime in Round 0. A “Round” is 6 seconds - the time needed to build a valid block. So intra-shard transaction finality is 0-6s +24s (4 rounds), so ~27 seconds.
7/ Cross-shard transactions require 4 extra Rounds to process the transaction in the destination shard: 0-6s + 48s (8 rounds), so ~51 seconds.
8/ Round duration is likely be lowered to 5s, so we might look at ~23s to ~43s finality or even less confirmation blocks, depending on observed mainnet data.
1/ [Andromeda] Small fix on leader metrics
- Increased code coverage on equivalent proofs broadcast mechanism
- Adapted local testnet scripts in respect with latest andromeda configs
- Small fix on leader signed blocks verification
2/ - Continued testing on local testnets
- Adapted proofs cache to use range buckets when iterating by nonce
- Added upsert operation in proofs cache
- Previous proof verification improvement
- Consensus integration test fix on redundancy setup
We need money that can move as fast as digital information.
Crossing borders, openly accessible to anyone, in any country, and transferable at almost no cost.
Weekly #multiversxtech 🛠️
1/ [state] Multiple fixes and unit tests for the trie refactor
- Removed duplicated code from trie functions
[relayed transactions] Final touches on relayed transaction v3, with lots of testing
[finality improvements] Bughunt/testing
2/ [Node] Mempool improvements (last series of fixes and optimizations)
[testing] System tests on internal testnets
- Mempool testing
[mx-chain-es-indexer-go] Bug-hunt and bug-fixes missing data from tokens index
#multiversxtech is about building in the front of everyone.
Initial drafts, work in progress components or new releases, recurrently shared each week 🛠️👇
1/ [finality] Added unit tests for the transition between consensus v1 and v2
- Working on refactoring the v2 consensus which is using equivalent proofs
- Removed confirmation block, now notarization is based on header proofs
- Integrated equivalent proofs in process sync flow
2/ - Moved final header proofs to be sent on the new topic that Metachain listens on
- Integration tests debugging and fixes in feature branch
- Data race fixes in consensus package
[mx-chain-es-indexer] Events index from genesis
Spica set a record in community voting, achieving the highest approval rate.
Following the release process, it will enable developers to make MultiversX even more invisible for the end-users.
"You will use the blockchain, and you won't even know it". Weekly #multiversxtech 🛠️
1/ [equivalent proofs] Final fixes and updates
[p2p] Statistics for minimum consensus time
[consensus finality] Refactor to use a separate component for handling single and multikey node keys
[Internship] QA protocol presentation: processes, tools
2/ [esdt] System testing scenarios for esdt metadata fix
- Support and testing scenarios for prefixed esdt
- Discussions for adding support for prefixed esdt on API/explorer
[rosetta] Spica alignment, plus ESDT support (not far from done)
The main sharding concerns boil down to myths busted long ago when our design implementation went live.
In our perspective, the only sharding concern is the Web3 space not progressing anymore so that the need for more scale dries up.
Weekly #multiversxtech 🛠️
1/ [releases] Mainnet v1.7.13.0 release
[relayed transactions] Further fixes on relayed fees
[state] Added multiple tests and fixes for the trie updates batching
- Added testing scenarios for the new esdt built-in functions
2/ [sovereign] New sovereign deploy scripts + docs released and tested
- Analysis for genesis block transactions to be correctly displayed
- Resolved a bug where Native ESDT was displayed as issued token
- Bughunt for delegation contracts
Reaching Web3 quantum quorum by creating the infrastructure to unify protocols, bring enhanced efficiency and parity in features and experience for the majority of on-chain users.
All top networks, 1 integrated ecosystem. Enabled by Sovereign Chains.
Weekly #multiversxtech 🛠️
1/ [releases] Testnet reset T1.7.10.2
- Testnet release T1.7.11.0
- Devnet release D1.7.11.0
- Prepared mainnet release v1.7.11.0
[mx-chain-es-indexer-go] Indexer performance testing
[mx-chain-simulator-go] New endpoint that can trigger an epoch change
2/ [staking-v4] Staking v4 scenarios testing
[relayed transactions v3] testing + added more integration tests
- Updated logs processor to save all the log events generated by failed inner transactions
- Updated sdk-go builder for multiple inner transactions