[mnet-devel] What's left to be done for 0.7

icepick icepick at icepick.info
Fri Oct 3 18:49:19 BST 2003


Since it looks like having HEAD working with a choice of two types of 
Routers, we started getting exicted about a 0.7 release on IRC, but to 
not fall into the IRC hole, we are moving the discussion here.

What do we need for a new release?  And should we convert egtp to 
twisted before going on?

For a new release to be equal in function with the old 0.6 release we 
need two things we don't have in HEAD yet:

1) searching

Two options here:
  - Implement the recordkeeper spec (where I would spend my time)
  - Get the old content tracker working with new mnet uri's (I will not 
do, but others are welcome to take this up).  If you do this the client 
and server should use "content tracker v3" messages so as not to confuse 
any 0.6.2 brokers.

2) GUI

Most of the GUI is centered around using the search function.  This is 
why I havn't gone back and gotten wxgui working in mnet_new.  wxgui will 
run as a seprate process, using twisted to handle network ops.  It will 
communicate via xmlrpc (for easy of other hackers making use of Mnet) OR 
twisted pb (for the lower overhead (parsing, bandwidth (important if you 
are controling your Mnet Node over a modem!)).  The API used for either 
of these protocols should be as identical as possible.  From what I 
know, of the twisted RPC (xmlrpc/soap/pb) keeping the API in sync should 
be braindead easy.  For example:

class Monkey([...]):
	__implements__ = [...]

	def say(self):
		return "ook!"
	# add xmlrpc call
	xmlrpc_say = say
	# add pb call
	remote_say = say

The API expressed should follow the CP2PC spec as much as possible.

http://www.cs.vu.nl/pub/globe/cp2pc/notes/allnotes/cp2pc-api

In the current xmlrpc interface I've make improvements to this api 
(lowering the number of RPC calls you have to make), and these need to 
be communicated to the CP2PC guys and hopefully folded into their spec.

The IRC panel should be kept until we have group IM.  Also the tab for 
the IRC panel should change color or something when someone says the 
user's name.

I'm really looking forward to hacking the GUI again.

  * Should we stop and convert over to Twisted?

pb is mostly a messaging format for RPC.  AFAIK, it does not care about 
transport level.  I would be possible to convert Mnet to use pb (mostly 
as a replacement for mencode, but it does more than that, stuff that has 
to be implented on a use by use level, like arg parsing), and just use 
TCP or SSL/TCP, then later write a EGTPv1.5 transport (using AES instead 
of that weird mode of DES) as a dropin replacement (for the lack of 
handshake delays that SSL would give us).

With a patch to AES-CTR mode (making it faster) in PyCrypto we could 
drop the evilcrypto as well.  I suggest PyCrypto because that's used in 
Twisted's SSH implemenation.

I'm not going to spend any time on this right now unless the 
RecordKeeper stuff is getting really ugly because of current EGTP API.

I *still* think that writing network simulation unit test in twisted is 
easier than our current setup, mostly because there is less to learn in 
those cases.

Two other ideas I had that someone might want to take up:

1) metadata blocks that forward you on to the real index block

2) Small files in 1 block only.

3) ZNFFFileStore - index the blocks that make up a file in the file 
system and then share them as if they were in a normal blockstore.

4) The Mnet backend should be installed on W32 as a service.

5) UPnP NAT traversal into EGTP layer.  I have code that does 99% of 
what we need for this.

Once we add these last two and have a good installer I will get 3 more 
nodes installed.

icepick




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
mnet-devel mailing list
mnet-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mnet-devel




More information about the Mnet-devel mailing list