Peer discovery is the process in which new nodes discover other nodes in the network and join the network. In Bitcoin, new nodes contact a DNS feed that uses DNS record to get IPs of a few well-known nodes. The new node contacts the peer nodes and the peers send up to 2500 random IP addresses to the new node. Each node may have up to 8 outgoing links and 125 links in total. All messages are broadcast to 8 peers, and each peer broadcasts to 8 more peers. In Ethereum, the well-known nodes are hardcoded into the Ethereum client software. Peers use a distributed hash table (DHT) to return a list of nodes, based on XOR-metrics distance as the method for discovering other nodes. The DHT is based on the Kademlia paper.
For Harmony, new nodes contact the beacon chain to submit a proof of stake. Once the proof of stake is validated, the new node will receive a list of IPs.The new node waits to join at the next epoch and we use a bounded cuckoo rule to phase in/out new and old nodes. A new node can contact any node in the list supplied by beacon chain. The new node will need to figure out which shard it is in and the peers in the same shard may return a list of peers based on Kademlia DHT.
Peer discovery in the Harmony network: https://medium.com/harmony-one/peer-discovery-in-harmony-network-6a07f9401c61