What functionality is important for 0.7.0? IRC is quite possible but to
do it efficiently would require 1:1 streams as well as 1:many. 1:1
streams would enable all manner of applications (e.g. fast centralized
searching), as they are essentially TCP sockets over Freenet. There
would have to be severe bandwidth limits on both 1:1 and 1:many though.
IMHO it is strategically important to have IRC, and probably email, in
0.7, to a) pull in some of the I2Pers, and b) pull in some of the Frost
etc guys who won't come anywhere near us because they're not anonymous
unless they use non-Freenet tools. IRC and searching probably sum up the
feature deficiencies of Freenet, as far as the outside world goes - you
can't do anything real time with it, and you can't search it.

Now, IRC isn't trivial. It's not hard once you have working 1:1 and
1:many streams, it's a great way to test them, and I rather think the
users will like it (=> more money). It's not as easy (read quick) as it
at first appears however, even with streams.

I think we will need a reasonable beta period. I should implement client
functionality *first*, mostly, so that we can test it while I implement
e.g. proper connection auth. We should not put it out the door the
instant the client functionality is complete, that's the point. And I'm
reasonably confident that we can keep the funding coming in for as long
as we produce new things that people like. And once we have a certain
amount done, we will start to get content, and new tools, and so on.

Low-level stuff will require small testnets, as I will have to get debug
logs from everyone to debug it.

I therefore propose:
- Implement CHK splitfiles. (with a lowish size limit)

This will make some testers happy, as they can exchange real files.

- Implement a download queue, and unlimited size splitfiles.

By download queue, I mean initially the ability to start a download
asynchronously and have the node tell you when it's finished, having
written it direct to disk. This makes it relatively practical.

- Complete the 1:many stream implementation. Allow it to write to a
  file.
- Implement 1:1 streams.
- Implement IRC.

At this point, we have something that would really be quite useful, even
though it doesn't have fproxy etc. Anonymous IRC and file transfer is
useful. I expect the network to grow significantly from this point
onwards.

- Implement SSKs.
- Implement mapfiles and ZIP manifests. Provide a putsite command, and
  transparently fetch files within a mapfile/ZIP manifest.
- Implement fproxy.

At this point we have the basic client functionality. And IRC.

- Implement request queueing/rate limiting algorithm.

Necessary for FCPv2, and probably necessary anyway by this point.

- Implement FCPv2 and write a proper spec document for it.

At this point, everyone is happy. :) I can get on with authentication,
configuration, datastore memory efficiency optimizations, etc. Third
parties can update their tools.

It may make sense to postpone the work on streams and IRC to after FCP
is working. I don't think it makes sense to postpone it to after 0.7,
because:
- One key reason freenet has been so quiet lately has been that the
  anonymous community cannot talk to us anonymously except by going
  through other networks.
- If they use those other networks, especially I2P, they tend to get
  sucked into them and ignore freenet.

It is therefore important to have good anonymous communication tools, as
well as freesites. In particular IRC. Email would be good too,
especially as it can be integrated with the mailing lists, but we don't
want to implement a full blown webmail interface, so it would have to be
limited to those with a real email client to connect it to. Later on,
post 0.7, I suspect we could find a GPL'ed webmail interface in java we
could import. But really email is an optional extra, as is searching.
IMHO IRC is important though.
-- 
Matthew J Toseland - toad at amphibian.dyndns.org
Freenet Project Official Codemonkey - http://freenetproject.org/
ICTHUS - Nothing is impossible. Our Boss says so.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: 
<https://emu.freenetproject.org/pipermail/tech/attachments/20050920/19c74d86/attachment.pgp>

Reply via email to