Documentation Block creation

Where can I find documentation that describes the process of how nodes receive and add transactions to a Block?

Thanks in advance

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.

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.

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.

Thank you for the quick response and thank you for the link. I’ll spend some time with the specs