[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