I've read at a few places that the nodes validate transactions in a linear fashion, i.e. after node A validates, then node B, etc. (which is also the reason, as claimed by many, why blockchain suffers from a scalability issue) But if blockchain is decentralized, how would the nodes know in what global order to validate? It must be the case that several nodes validate on the same block in parallel.
2 Answers
Block validation is linear, transaction validation is not (for unconfirmed transactions).
Block N can only be validated if N-1 has been validated, since each block links back to the previous block, and the updates made to the UTXO set by it.
Transaction validation, for unconfirmed transactions, can be done in any order. However, nodes can only validate transactions if they receive them. Before any given node forwards a transaction to other nodes, it will validate it itself to ensure it is a valid transaction. If it is, it is sent further to its peers, who then repeat the same process before broadcasting it again.
That said, if you perform an out-of-band broadcast to multiple peers, they will all validate the transaction independently of what any other node says.
No, When you transfer token from your address to another then that transaction store in Mempool and from their miner decide to it should validate/process it or not. Like if you have set high Transaction fees then miner will pick your transaction first and put in next block and if transaction fees is very low then it may be take more time for validate.
-
Validation and confirmations are not the same. You can have outright invalid transactions that would never be mined. You can also have transactions included in a block that were never broadcasted Jul 2, 2018 at 6:58