[Top][All Lists]

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

[Pydonkey-general] I want some changes

From: NeoOne
Subject: [Pydonkey-general] I want some changes
Date: Tue, 02 Sep 2003 21:30:12 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)

1.) Redefining strategy:
It's nice to have an alround p2p-API, but it doesn't help if it "could" support several protocols, but it doesn't because the efford is too much for 2 people. Since JXTA isn't used very much, I also asked myself anyway, if it makes sense at all. There more then ten bittorrent clients at the moment. And the protocol is so simple that it won't cope with future p2p.

But it can't be the solution to write another lame edonkey-client, where we have emule, which is doing SYN-Floods at the moment and crashing servers because the programmers seem to be little hackers.

Third, I don't that simply implementing a new protocol would it be, because at the moment about a hundred p2p-networks with clients are implemented, but only Kazaa and eDonkey are used by the majority. Now where Kazaa is under attack and edonkey too (as I noticed when I filtered aus peerguardian IPs and recognized they are spying on me too) the user split away from Kazaa (24% or so by now).

I don't think that the future is to cope with as much protocols as one can get in one client. The future is: the strongest will survive!

So what does make a p2p-network interesting:
1.)  Many Users/Files
2.)  Great Throuput
3.)  Security/Anonimity
4.)  Stability/Scalability

So what does that mean for us:
- Our client should have an interface to one big network, which I would suggest is edonkey because the protocol is well know, not like fasttrack. So we have point 1 on the list. - Next: it should make improvements on this network, that no other clients have, for the points 2-4.

I have ideas for that, if interested I'll tell later.
2. We should split up the project into 4 main classes:
- p2pSocket (is already done)
- p2pFileManager (which can do all the filehandling for any p2p-protocol in a threaded way, on maybe an XML-Base, like I already posted the XML-Api once)
- p2pProtocol (which is almost that what's now py2peer)
- p2pDB (which is what I call PyBrain)

3.)  Make the API easier
At the moment pysocket etc. look pretty much the same as twisted, but therefore we aren't twisted, so why don't put all in one class, with function everybody uses. The normal User, using pysocket, will have problems to understand the method of it, as I had.

So why not a structure like this
class PySocket{

def addvariable(variable, value) // function to set datacontainer to the class, used by the callback functions def TCPConnect(Address) // Extraoptions maybe
   def TCPListen(port)     // Extraoptions maybe

   def UDPListen(port)

def AddBandwithControlCB(bwcontrolfunction) // inherited from pysocket.bandwithcontrol

   def TCPSend(handle, data)
   def UDPSend(address,port)

def datareceived(self, handle, data, contype) // Is called when data was received, contype is 0 for TCP then handle is the filehandle, if 1 then UDP and handle=(ipadress, port)

   def packetiscomplete() // Is called when packet has completed
def packetanalyzer(self, handle, data, contype, receivedonport) // Is called when data was received to test wheter a packet has completed def enableSSL(options) // options like "force SSL etc.", keyfile etc.

def addSendFilter(filterfunction) // This function is called before data is send, could be used for compression etc. def addReceiveFilter(filterfunction) // This functions is called after data is received , could be used for compression etc.

Callbackfunctions could always be
I will have forgot something, but that's the basic concept.

4.) I want a Forum and Chat for us
Our communication is laking. Since went down, we aren't able to communicate anymore.
So I suggest a Forum with a chat function.
If you are saying yes, I'll install one which we can link to the homepage.

So much for now,

reply via email to

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