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>
