The main idea is to do something similar to [geth](https://github.com/ethereum/go-ethereum/blob/349fcdd22d672fedc59a893e6ebb65349c3dfcdf/p2p/discover/table.go#L349). [This includes running random lookups to discover new nodes](https://github.com/ethereum/go-ethereum/blob/349fcdd22d672fedc59a893e6ebb65349c3dfcdf/p2p/discover/table.go#L423). New nodes should be stored in [a database](https://github.com/ethereum/go-ethereum/blob/bc6569462dfd78394599c93fd9e2a21908aca662/p2p/enode/nodedb.go#L73).
The main idea is to do something similar to geth. This includes running random lookups to discover new nodes. New nodes should be stored in a database.