Episode 4 - Transactions and Blocks
Transactions are small bundles of information that are used to propose updates to the state of the blockchain. Users sign and submit transactions to one or more nodes, and based on their validity, they are executed by all other nodes to update the state of the blockchain.
Incoming transactions are validated by the nodes against the current state of the blockchain and also for the signature of the sender.
For transactions to be executed on the chain, the miner or validator nodes charge a transaction fee from the user. The sender must decide how much fee they want to pay for the transaction, and based on that, the miner or validator nodes decide if the transaction should be executed or not.
If blockchains processed transactions one by one, it would be pretty inefficient to process a large number of transactions, on a fairly decentralized network. Hence, transactions are grouped into blocks. Blocks are then processed one-at-a-time to execute all included transactions together.
To be included in a block, the transactions are selected by miner or validator nodes of the blockchain. There could be one or more transactions in a block. This selection is mainly based on transaction fees paid by the user, the validity of the signature, and of the transaction data.
Once a transaction is submitted to one of the nodes, it is then broadcasted to other nodes. One of these nodes, depending on the block production algorithm, proposes a block that may include this transaction and several others.
Blocks are created at regular intervals and all the transactions in a block are executed together to update the state of the blockchain when it is accepted by all the nodes.
The proposal and acceptance of a new block are done using the consensus algorithm. Consensus and related concepts are explained in episode 2 of the podcast.