Documentation Block creation - General - Algorand
Documentation Block creation
post by robl on Mar 28, 2021
Where can I find documentation that describes the process of how nodes receive and add transactions to a Block?
Thanks in advance
post by ryanRfox on Mar 29, 2021
Here is the protocol overview documentation covering Pure Proof of Stake. Are you looking for a more technical answer of the peer-to-peer layer and apply block functions? Are you comfortable reading the implementation code (in Go)?
Welcome @robl glad you are here.
post by robl on Mar 29, 2021
From what I understand (currently): Relay nodes receive transactions and then transmit them throughout the network. Nodes assemble transactions into blocks as they receive them. Then the consensus algo is used to add the block to the chain.
The consensus algo is very well documented. My interest is in learning more about how the Nodes assemble the transactions into blocks, specifically with regard to how the transactions are ordered.
Kind regards.
post by fabrice on Mar 29, 2021
I don’t think the specs ( GitHub - algorandfoundation/specs: Algorand Specifications) actually enforce any ordering in the block, apart from the fact that each transaction must be valid when executed. So if account B is empty, and you have two 5-Algo transactions A -> B and B -> C, you need those to be ordered properly or not be included at all.
Thus if there were multiple implementations, different implementations could use a different ordering. The ordering of the selected block proposer would be the winning one.
post by robl on Mar 29, 2021
Thank you for the quick response and thank you for the link. I’ll spend some time with the specs.