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.
Weekly Development Report as of Jan 18
#multiversxtech 👇🛠️
1/ [api service]
- Released filtered WebSocket subscriptions
- Monitoring improvements and fixes
- Added missing Grafana metrics for dashboards
2/ [governance]
- GitHub Action for automated snapshot verification (liquid staking providers)
- Dynamic gas limit adjustment for first delegate vote per proposal
Weekly Development Report as of Nov 30
#multiversxtech 👇🛠️
1/ [api]
- Battle of Nodes preparations
- Deprecation actions for relayed tx v1/v2
- WebSocket subscription analysis
- Environment configuration updates
- Staking v5 and delegation API v5 support
2/ [cont’d]
- Integrated new WebSocket subscription options
- Added subscription-limiter guard
- Elastic step-iterator for ES data
- Transaction ordering by nonce
- Chain-sim updates for staking v5
1/ [supernova]
•Shadow fork updates: unstakeNodes/stakeNodes prep for BoN
•Integrated gas limit checks in proposal verification
•Gas tracker adapted to new limits
•New un-executable tx post processor
•Integrated components into block proposal execution
2/ [supernova]
•Unique chunks processor coverage
•NTP syncer changes for out-of-bounds checks
•TermUI updates with new metrics
•Deduplication of messages integration tests
•Debugging & testing for staking unbond period
•System & performance tests across branches
1/ [sovereign] Lots and lots of debugging, log analysis for sovereign cns with andromeda on an internal testnet
- Fixes for main chain headers notarization
- Epoch change block optimizations
- Node integration tests adaptations after Barnard merge
2/ - Block tracker refactor to also track the status of the execution results from the block and to decide if the own shard is stuck
[automation testing] Increased coverage for Staking and Governance
- Integration testing framework refactor to support multi environment execution
Weekly development report as of June 29
#multiversxtech 👇🛠️
1/ [supernova] Fixed transactions subnetwork transition, when supernova gets activated
- Lots of testing on transactions subnetwork
- Working on block proposal creation: shard and metachain
- Mempool reviews
2/ [releases] Testnet T1.10.0.0 release
[barnard] Testing (stress - e.g. on VM, chaos)
- Created testing shadow fork for barnard
[internal tooling] Tokens collector
- Network gas reports, contracts hooks reports
Weekly development report as of May 11
#multiversxtech 👇🛠️
1/ [andromeda] Fixes for synchronizing nodes before Andromeda activation
- Fixes for importDB mode over run that transitioned from Spica to Andromeda
- Performance optimization for nodes supporting API calls
- Skip signature broadcast in case of proof already received
2/ - Lots of local testing, discussions and logs analysis
- Fix unmarshalling meta header on shard consensus flow
- Local system testing for sync from genesis scenarios
- Chaos testing: framework improvements, runs & logs analysis