[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 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi!
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
src/include/applications/chat/chat.h.
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.
Christian
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE9hYPN9tNtMeXQLkIRAgd0AJsHBdvW5hVSoZ7FnXEtrp9O0pqYhwCfdCe8
V0uOeyyJMjvooDs8Ox0fOOQ=
=nwP4
-----END PGP SIGNATURE-----
- [GNUnet-developers] gnunet-chat,
Christian Grothoff <=