Chat program without a central server

I am developing a chat application (in VB.Net). It will be a "safe" chat program. All traffic will be encrypted (I also need to find a better approach for this, but at the moment this is not a question).

The program is currently running. I have a server application and a client application. However, I want to configure the application so that it does not need a central server for it to work.

What approach can be taken to decentralize the network?

I think I need to develop clients so that they also act as a server.

How do clients know which server they need to connect to / what will happen if the server is down? How will clients / servers now have other nodes on the network without a central server?

In the best case, I do not want clients to know which IP addresses different nodes have, however I do not think that this would be possible without a central server.

As indicated, the application will be written in VB.Net, but I think that at the moment the language does not really matter.

I just want to know the different approaches that I can follow.

+3
source share
3 answers

Take a look at, for example, the Kademlia protocol article ( you can find it here ). If you just want a quick overview, check out the Wikipedia page http://en.wikipedia.org/wiki/Kademlia . The Kademlia protocol defines a way to search for a node on a network in a decentralized way. It has been successfully used in eMule software - therefore, it has been tested to really work.

, .

+2

, , IP-. , , -.

: ( node - , BitTorrent), node ( ).

+2

, uChat. uTorrent .

, . Amber, , , , , ip ..

Here is a uChat presentation: http://blog.bittorrent.com/2011/06/30/uchat-we-just-need-each-other/

0
source

Source: https://habr.com/ru/post/1782996/


All Articles