I read that ETH 2.0 staking with 32 ETH requires users running a full node on their server. But doesn't a full node take up 500+ GB of space? What are the proposed system requirements?
Currently a default full node takes around 200GB of space: https://etherscan.io/chartsync/chaindefault . It makes sense that you need a full node to stake in Eth 2.0.
I doubt anyone really knows at this stage how much space a full node requires in Eth2.0 - that's not a particularly aspect at this phase of the development when we are still far from the full Eth2.0 launch (Phase 2). In theory I imagine it should be less than nowadays as you only need information about your own shard. And as for other system requirements it's probably quite similar to the requirement today.
There's a little ambiguity around the term "full node" here. In order to be an Eth2 validator, you require the following software components:
- An eth1 node (geth, parity-ethereum, etc).
- An eth2 "beacon node".
- An eth1 "validator client" (if it doesn't happen to be included in your beacon node).
For (1), a fast-synced Geth node suffices for now. All eth2 requires from it are historical event logs from the deposit contract. Over time Geth may stop storing all historical event logs, however you certainly don't need a "full" eth1 node.
For (2), you won't necessarily need a beacon node that stores the entire history of the beacon chain. For phase 0 (and future phases) it's unclear as to how large the beacon node database will be, but I estimate it to be 1-100gb. I like to think we can keep it in single-digit GB.
For (3), I don't know of any client teams that have full/light distinctions for their validator clients. A validator client will likely store tens or hundreds of MB of historical votes to prevent slashings. This footprint is quite small compared to the risk of performing a double-vote and being slashed that I suspect validator clients will stay "full" for some time.