When I am syncing an Ethereum node using Geth's --fast mode and Parity's --warp mode, what portions of the block are being validated as they are being downloaded?
I understand that --fast and --warp are both pruning modes. I understand that in both modes, you do not take a snapshot of the state until you are very close to the latest/best block.
I am curious about the following:
Is only the proof of work of each block header checked in order to be considered valid? I understand that the transactions are downloaded as well, but are the transactions validated as well? Are the transactions validated locally by verifying that the merkle root of these transactions is equivalent to the hash of the transaction root?
My goal is to understand pruned nodes enough to write a blog post about it that dispels myths concerning pruned nodes.