- Your local peers.dat file
- Ask other peers
- Query DNS
- Use hardcoded list, compiled into client
IP addresses. But that hardcoded list, as you might imagine, gets out of date fairly quickly.
Typically an empty node with an empty peers.dat file gets most of its initial addresses from DNS.
After that, most addresses come via peer exchange, from talking to other nodes.
That is correct. But let's emphasize that this is the first time startup, so that other readers are not confused.
Too many people focus on the bootstrapping process, when normally most peer addresses come from your local database or other nodes.