Validating nodes --> Nodes validating the blocks as fast as possible.

They could have all of the blockchain or not.

They MUST download all the blockchain first to check the integrity and then build the UTXO database

They CAN prune the blockchain and keep only the last N blocks (if they have limited storage)

They can accept, check and propagate transactions.

Miners nodes are like these.



Storage nodes --> Nodes holding all the blocks of the blockchain for distribute them to other nodes

They check the blockchain but their validation speed is not critical

They download the blocks but they do not need a fast connection



Relay Nodes --> They relay txs and/or blocks.

They MUST download and check the blockchain to build a trusted UTXO database

They check the transactions incoming against their UTXO database and propagate the valid transactions

They download and check the latest blocks and serve them to other nodes.

They only keep the last N blocks of the blockchain