There are different node requirements for different types of users.
Validating Node
This node completely validates the block chain. This means that it need to process every block, in full, but then can throw away the blocks once they have been processed.
Pruning nodes do this and they keep at least 2 days of blocks (288+).
They also need to keep the active UTXO set. 1-2GB of disk space seems sufficient for a node of this type (assuming 1MB blocks).
You can mine with this node. It is hard to see how to split this node into pieces. When a miner receives a transaction, the miner has to be able to check if the inputs are valid. That means that it needs the entire UTXO set.
The storage required for this node depend on the UTXO set size. This can be artificially increased by spamming the blockchain with unspendable outputs (and not using OP_RETURN).
With UTXO set commitments, it might be possible to reduce the size of storage on each node. Blocks could be validated, even without the UTXO set. However, creating blocks would still likely require it. This would split validating nodes, in validating nodes and block creation node. The block creation nodes would have to have all the UTXO set info, in order to actually create the UTXO set commitments. The validating nodes then become something closer to auditing nodes.
Archive Node
This node keeps the entire block chain. It doesn't actually need to validate anything. It just needs to find the longest chain and then download and store the blocks for that chain.
This type of node could be easily partitioned. As long as at least a few node stores each block block.
For efficiency, the node should keep blocks in runs of blocks. That means that it can send many blocks, in order starting from a particular height. This also makes it easier to say what blocks it has.
Auditing Node
This is a node which checks that blocks are valid. It doesn't have to be as fast and up to date as a fully validating node. If it finds a problem, it can create a fraud proof, and then the network will blacklist that block.
A node like this could store 1% of the UTXO set and check any transaction which tries to spend any of those inputs. This could work like Bloom filters, and the audit node could ask for the 1% of transactions that spend to/from that portion of the set.
Auditing nodes should concentrate on the newest blocks, but do random tests for older blocks.
SPV Node
This node needs very little resources. It needs to be able to store the header chain (80 bytes per block, no matter what the block size).
In the future, it should also be able to process fraud proofs, which blacklist invalid blocks. This gives it security that nearly matches a full validating node (as long as fully validating and auditing nodes actually send out fraud proofs).
An SPV node on a phone could also do some auditing. If the phone was on a wi-fi connection and at > 95% charge, auditing would help keep the miner's fully validating nodes honest. There could a slider indicating what percentage to check.
This is very close to what I have in mind. I think "archival node" can be further simplified to just be any decentralized DHT storage.
iguana processes the blocks into bundles of 2000 blocks worth of read only data. once it is created, it doesnt change and it can also be fully verified. So make a hash of this bundle, push it to the cloud.
Separately, make a list of these hashes and sync the network with this list. Now this also simplifies the initial blockchain sync, as given the list of bundlehashes, you can parallel load the blockchain and get <30 minutes initial sync times.
James