I was wondering how in a decentralized P2P network each node can find other nodes ...
You can take a look at this article: http://cs.berry.edu/~nhamid/p2p/
But, as a rule, you have a server with a list of well-known analogues for advertising.
Also, if you are looking for a peer-dependent implementation, look here: TCP P2P without a server .