[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-developers] gnunet-chat

From: Christian Grothoff
Subject: [GNUnet-developers] gnunet-chat
Date: Mon, 16 Sep 2002 02:10:01 -0500
User-agent: KMail/1.4.1

Hash: SHA1


I've implemented a chat application for GNUnet 0.4.9. It is meant as a 
demo-application (less than 400 lines of code) to demonstrate how to add 
other applications (other than anonymous file-sharing) to GNUnet. The chat 
uses GNUnet's secure p2p infrastructure (node discovery, link-to-link 
encryption, tcp or udp transport layer) but is not very anonymous (it would 
be possible for an adversary to use timing-analysis to see where messages are 
coming from). 
Also, it sends n^2 messages (worst case) per message - to all peers, 
regardless if people are subscribed or not. So this is really JUST and only a 
demo-application. It's not *meant* to be for production use, ever. It's meant 
to be educational code.

Short description how it works:
Every node can have n (currently n = 4, compiled in) TCP clients connected to 
it. These gnunet-chat apps are front-ends for the users. When the client 
starts, it sends a "Hi!" message to gnunetd, which will then note that there 
is a chat client and forward all chat messages to it until it disconnects. 
Every chat message that gnunetd receives is broadcasted to all connected 
peers. The peers check if they have seen the message already, and if yes drop 
it. If not, they send it to all connected gnunet-chat clients and again 
broadcast it to all of their connected neighbours. 
There is only one channel, nicks are unchecked (2 people can have the same 
nick), there is no security (no signing) and everything is kept as simple as 
possible. Nodes only keep track of the last m messages, thus if there are 
more than m messages in the network, they may start to loop.

The code is in src/applications/chat/, plus the protocol number in 
include/util/ports.h and the message-structs in 

To conclude, we now have 2 different transport layer implementations (tcp and 
udp) and 2 different applications (afs and chat), demonstrating that GNUnet 
0.4.9 is starting to work as a p2p framework/infrastructure. 

Happy hacking.

Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see


reply via email to

[Prev in Thread] Current Thread [Next in Thread]