Hi,

your projects about GAIM Filesharing sounds great.

http://www.zeropaid.com/bbs/showthread.php?threadid=24366
http://downhillbattle.org/labs/gaim_filesharing_plugin/

Would be good, if you could create a real project on SF.net 
and then make a link to this on your homepage. 

The GAIM People do not like the filesahing inside GAIM,
so a plugin should be designed, to maybe one day be as well totally hyybrid 
with GAIM. 

But I think technically it is easy to start with a plugion, that maybe later is 
an owbn gaim app if the gaim people shoudl block this.

Maybe you like to search the gaim developer mailinglist for ideas: 
Search for "Gnucleus" or "Magnet" or "p2p"...

http://sourceforge.net/mailarchive/message.php?msg_id=4406034
http://sourceforge.net/mailarchive/message.php?msg_id=4397151

Basically the question has to be made, if the filetransfer has to be encrpted 
or not 
and if the file transfer is 2. generation to a direct IP adress, 
or if it should be routed through several proxy nodes.

If you have set up a sf.net project there should be a mailinglist for 
discussion!!

Towards the design:

Problem is, that you need the IP adress of the the whoel buddylist.
GAIM Transport to other Messnengers need to ping pong them in a hidden process.

Then you have to create an IP cache, with all the IP adresses of your online 
buddies.
If every buddy is doing this, you need to send this cache to all your buddies.

Cache of Buddy A
12.123.123.1.
123.3.3.123.1
123.3.31.23.3.
32.12.3.312.3.
12.3.3.1.2.3.1


This means every one of my buddies gets my cache of IP adresses of all my 
buddies.

The recieving buddy marks all the transferred IP adresses with the suffix +1 
and adds this list of IP adresses to his cache.

Cache of Buddy B
456.4566.45.64
45..6445.6.456.
65.456.54..645
456.665.4.56.4
45.66..54.5.6.4



Then Buddy A gets online, has ping-ponged his online Buddies and created his 
cache, 
then the cache of A is transferred to the cache of B and added.


Cache of Buddy B now:
456.4566.45.64
45..6445.6.456.
65.456.54..645
456.665.4.56.4
45.66..54.5.6.4

plus the cache of B�s Buddy A:
12.123.123.1. +1
123.3.3.123.1 +1
123.3.31.23.3. +1
32.12.3.312.3. +1
12.3.3.1.2.3.1 +1



Buddy "C" is as wella Buddy of "B" and sends as well his cache

Cache of Buddy B now:
456.4566.45.64
45..6445.6.456.
65.456.54..645
456.665.4.56.4
45.66..54.5.6.4

plus the cache of B�s Buddy A:
12.123.123.1. +1
123.3.3.123.1 +1
123.3.31.23.3. +1
32.12.3.312.3. +1
12.3.3.1.2.3.1 +1

Plus the cache of B�s Buddy C:

789.678.67.8.768
.8678.8.6.78.6.78
.678..87.6.78867.
.67.8.76.7.8.678.
.6878.6.8.67.8.

567.567.56.56 +1
.567.765.67.56 +1
.567.5.7.567. +1 
.567.5.67.67. +1
5.67.5.76.56.7 +1



You see, The buddy "C" has juste added th IP adresses of his (C�s) buddy "D"


Cache of Buddy B now:
456.4566.45.64
45..6445.6.456.
65.456.54..645
456.665.4.56.4
45.66..54.5.6.4
12.123.123.1. +1
123.3.3.123.1 +1
123.3.31.23.3. +1
32.12.3.312.3. +1
12.3.3.1.2.3.1 +1
789.678.67.8.768
.8678.8.6.78.6.78
.678..87.6.78867.
.67.8.76.7.8.678.
.6878.6.8.67.8.
567.567.56.56 +1
.567.765.67.56 +1
.567.5.7.567. +1 
.567.5.67.67. +1
5.67.5.76.56.7 +1


There then has to be the rule, that for 7 Hops (Time to live) every IP adress 
is saved in the cache.

And very important is, to delete redundant doublette IP�s.

This means the cache collects all IP adresses forwarded from a chain of friends 
with hops of seven steps.
 
This List then means, that maybe VERY large, imagine every buddy has 100 
buddies,
then you need a concept of a netork or a Digital hash table-Database.

A) NETWORK

If every Buddy has in average 100 Buddies and there is a time to live or 
Hop-Amount of 7, then you get a large list of IP adresses.

This means you have to introduce Ultrapeers of g2-hub, so that you have a 
supernode and several leaves. E.g. you every buddy could create an 
edonkey-server (www.efarm-project.net) with handling all the leaves. But this 
means, to have several connections maybe 2 times.

As well the problem has to be solves, that a supernode could go offline, 
and this means you have to search for another node on the buddy"7"-network.

Then I think it is better, if every Buddy is an edonkey server and every buddy 
then is forced to conenct one to this server, which means as well to connect as 
well to the server of each buddy. If i have 44 buddies online, I have to try to 
get on 44 edonkeyservers to post my shared media.
And: For a search I have to do a global server search.

This means to get maybe on untrusted servers. It must be technically 
restricted, that only in the horizont of 7 hops is searched.

Another way would be to implement the gnutella2.com protocol. Each IP adress 
identifies its bandwidth, so that several Ip adresses in the cache have DSl or 
Cable,s o they are g2-HUBs / supernodes. 

Maybe a shareaza version could be used to have a GAIM common shared path with 
teh IP-cache is used, but shareaza is only connecting to IP adresses from this 
cache.

maybe this would be a very easy architecture: 
Make a Shareaza mod, that only uses the G2-protocol and that only connects to 
IP adresses from the cache. If the IP is a hub, then you connect as a leave to 
it, and if your IP is dsl-bandwidth, you just connect all the IP adresses out 
of the cache as leaves!

Then you coudl just write a pinp pong - IP identifieer for gaim and run gaim 
with this ping-pong plugin, which collects buddy Ip adresses.

This I call the GAIM-IP-collector. Then you only need a shareaza mod, which is 
only working for g2 and olny uses (as hub or leave) the IP adresses from the 
cache of the GAIM-IP-Collector. 
 
Gnucleus has integrated g2 support, maybe the code is much more easy to use.


B) IP List as a DHT.
Every user should send his IP list and his list of shared files to the buddies 
with a TTL of 7.

then, each node has a full Database of files and the refering IP adresses.
This is fairly dangerous, because it is an architecture like edonkey enabling 
friends browsing to everybody in the horiziont of 7.

I do not want a list of all my shared files known ny friends of my friends.

So a queryhit has to belong to a concrete search and not a total database has 
to be transferred to everybody of everybody.


Maybe there are more advanced architectures like Ares (softgap.com) has.
Every user in a chatroom has the ability to search the database in the chatroom,
shared by each member of the chatroom.


So .. after these few thoughts i think gnucleus.com with only g2 protocol ist 
teh best thing to use,

we only need an IP-collector with 7 hops in gaim and a gnucleus which is 
accepting only IP adresses from the colected cache, either as hub or as a leave.

Then we do not need a gui integration or something, Just Install gaim, instal 
the deamon plugin to collect the IP adresses and install the modified gnucleus 
client.

this means: Make a simple g2 gnucleus client with the ipcollector integrated 
and a download tab page inside the client for the actual GAIM version.

this means: Just install a new g2 filesharing client and use gaim.
Then this g2 client only uses ip adresses delivered by gaim.

You do not need a gui integration.

But: would be cool if shareaza could do this already. a MODUS (not a mod) to 
only use private IP adresses out of a cache delivered by GAIM or any other 
instant messenger

e.g. JETIANTS.tk

Jeti already has an IP collection tool, it is as well a full all in one 
messenger like gaim and delivers the IP adreses to antsp2p.sf.net

It is bad, that there is no JAVA g2 client out, limewire is really not that 
advanced for g2.


Or is there any g2 java client ? And do you can code in java too?

and now: the important thing for the magnet uri list: We all do this, to send 
magnet uri links over the chatwindow to buddies, which then can search for the 
hash or download it directly with HAsh + ip adress.

Would be cool to hear some comments.


Thanks

_______________________________________________
jdev mailing list
[EMAIL PROTECTED]
http://mail.jabber.org/mailman/listinfo/jdev

Reply via email to