View Single Post
  #1 (permalink)  
Old August 12th, 2008
OldDeath's Avatar
OldDeath OldDeath is offline
Shareaza Dragon
 
Join Date: April 1st, 2008
Location: Earth
Posts: 266
OldDeath is flying high
Default Creating a new P2P Group chatting protocol

Right now, lots (almost all) P2P clients based on the G1, G2 and ed2k protocol have their different chatting systems. Most of them only support chatting with people you know the IP from or to which you are connected at the moment. Others like Shareaza implemented common chatting protocols like IRC.

And this is where the idea comes from. Who of you still knows the old NetMeeting chat sessions (they only survived in some bigger company intranets). It works like this: if you know the IP of one participant of the chat session, you will get connected to the host of the session over this client. (Correct me if I am wrong, I don't have much NetMeeting experience...) This is where the IRC idea becomes important: As you may know, IRC is based on group chat sessions, hosted on servers. IRC applications connect to the server on which their channel is hosted and send (while using this chat) all information to the server who sends it back to all other clients that are together in the same chat channel.

As yo may also know, finding back a user in G1 or G2 is very difficult, because neiter the original, nor "Mike's" protocol have implemented structures for user search. But what the protocols are made for, file searching can be used to make initial contact (I don't speak about every user should create a specific file to be found by others):

What about creating a multi chatting protocol based on files that contain a list of IP(s) of computer(s) hosting a channel?

In fact, if we want to use existing structures (to keep it simply and stupid --> KISS), we could use the normal file search for the search after the chatting channels. If every channel host computer (this doesn't have to be a Hub/Ultrapeer) creates a #Channelname#.cha file (in a specific & shared folder, containing the IP(s) of all host(s) of the channel and some other information), such files can be searched via the normal file search function, and thereby chat hosts can be found.
By searching for *.cha, all channals currently aviable on the networks could be found. Since everyone who wants to connect to such a channel needs the channel-specific .cha file, doing a global search for .cha files would even show the actual size of the chats. (Since the .cha files would only be shared while a user participates on a chat session, once he leaves the chat session, the .cha file would not longer be shared (but it wouldn't be deleted to be able to fast reconnect to the channel))

Files:
1. #Channelname#.cha : channel access file, required to access a channel; shared with other computers as long as the user participates to the chat.
2. #Channelname#.chah : channel host file, required to host a channel; only send by request and if needed to add more hosters to one channel.

File structure: xml file format; extendable. [only a proposal]

File content:
channel name (same as name of the file)
channel host IP(s) + GUID + Priority for hosting
channel description
channel unike ID (something like the GUID, but to identify channels (in case they have similar/the same name))

Channel access:
1. download .cha file
[1b. download of .chah file is possible, client extracts the right information and creates a .cha file out of it. ]
2. open .cha file with the filesharing client
3. Connect to 2 Hosts with highest prio that have places free. For example max 40 ppl each Host. Once one has reached max capacity, the next one will be filled.

Possible extension:
One or more hosts could syncronize the Channel with IRC, so that other channel members via P2P don't need to run an client but still can participate to the IRC chat session at the same time.


Note that this is only a the draft paper of an idea I had, but it could be a cool extension/feature on many clients (besides the "normal" chatting abilities).
Perhaps some developer finds this idea interesting and keeps on thinking about it. I would like to have some 'professional' opinion about it (wether it can be done or not, good/bad points etc.)


__________________

Shareaza forums - after a new attac back on old theme - Shareaza homepage

<table align="center"><td>F**K THE MPAA!
F**K THE RIAA!
P2P WILL NEVER DIE!
LONG LIVE THE HYDRA!!!

(Quoted from torrentfreak.com)
</td><td><a href="http://crawler.trillinux.org"><img align="right" style="border:0" src="http://crawler.trillinux.org/img/netsize.png" alt="Network size"></a></td></table>

Last edited by OldDeath; August 15th, 2008 at 09:08 AM. Reason: corrected two spelling mistakes...
Reply With Quote