This question already has an answer here:
I have customized the go-ethereum code a bit, compiled and running on 3 nodes (1 miner 1 bootnode 1 fullnode) in my private-net. I just wondered that why should I initialize genesis.json on each node? Otherwise nodes did not found each other. Also, in the beginning, does a fresh node start to synchronize from genesis block or sth else? Here, I just want to understand how the ethereum node discovery works for a node alone? or do they know some nodes be default?