Do all P2P connections need a server to connect them to each other?

I have questions about the way P2P works -

Do all p2p nodes need a server to connect them to each other ? (For example, pptp is a p2p connection but it users a vpn server, while bittorrent is also a p2p system but it uses a tracker)

Do bittorrent clients use trackers to find the ips or does the traffic between clients goes through the trackers ?

Lastly - how do bitcoin clients find each other ? Do they use something like a tracker ? (I have read on the bitcoin site that if we want to help the bitcoin network we can install bitcoin core on our server but the question is that how do they communicate with each other through the Internet. Surely there needs be main server to connect them ? I have heard that there is an IRC server that send the clients the ip addresses for example)


Solution 1:

There are 2 different meanings of P2P, and you seem to be getting confused.

P2P can mean Point to Point - as is the case with a VPN client like OpenVPN or PPTP. These connections occur directly - and only between 2 devices.

It can also mean Peer to Peer, as in the case of bit torrent etc, where there is a web of connections. The rest of this post deals with these cases, as they seem to be what is of interest to you.

There is no rule for how a P2P networks can be made - it depends on the protocol. That said, there are usually a number of servers and a number of clients.

The servers role is typically to help the clients find each other. Once the clients have found each other, they normally communicate directly - traffic between the clients DOES NOT pass through the server (and indeed, if it did it would not be a P2P network).

Depending on the type of traffic though, there does not need to be a server or list of servers - in limited circumstances its possible for all clients to advertise their presence - although this is not common across the wider Internet as it does not scale well.

An IRC server is a simple, old-style chat server - it is possible for a P2P network to use this to co-ordinate communication between clients, but this is unnecessary, and not common. (IRC servers are often used to control botnets while hiding the controllers details). A tracker is a more common mechanism for handling this function.

I'm not an expert on Bitcoin, but I understand that no tracker/central point is required - indeed one of the advantages of it is totally decentralised (ie does not require a central point or tracker) - and that each bitcoin has a chain (ie can be tracked back to its original creation).

A Bitcoin tracker is not actually required for Bitcoin, and is, AFAIK a way of finding out the value of bitcoin based on trades being made.