We need an approximate roadmap to 0.7.0. I propose the following:
Alpha 2 - February 31. Not feature complete, but reasonably close. Basically the current code: we've done most of what we need to do in the last 18 months. Key features: - Lots of debugging. I have a number of very bad bug reports coming in at the moment. - Enough volunteer seednodes to see us through the likely slashdot. If that isn't feasible then we'll have to build some sort of automatic harvesting system. Beta 1 - September 31 (followed by 0.7.0 once the code is stable) Feature complete for 0.7.0. But what does that mean? What specific features? Below I have a list of features which people have asked for, are working on, are in the bug tracker, or otherwise are likely to be considered. I have ranked them: [0] essential for 0.7.0 [1] important for 0.7.0 [2] good to have for 0.7.0. I have also guesstimated the amount of time it will take to implement each one (except for the features which I list in "postponed for 0.8", which IMHO should not be implemented yet). Note that this does not include time for unexpectedly long debugging, having to deal with new attacks, debugging existing features (mostly), etc. So in reality the time taken is likely to be at least twice the below numbers. TOTALS: Essential: 5 weeks 3 days Important: 10 weeks 3 days Good to have: 32 weeks 2 days I am of the view that the good-to-have features can be safely postponed for 0.7.1 or 0.8. IMHO it would be good to have at least some of the features marked Important. Big stuff: (5 weeks essential, 5 weeks important, 15 weeks good-if-possible) [0] Enough seednodes to survive a MAJOR slashdotting. That probably means some form of auto-harvesting. (1-3 weeks) [0] Ultra Lightweight Passive Requests. Essential for web of trust based chat applications, and generally useful. (2 weeks) [1] Finish Echo, or customize and bundle thingamablog (1 week) [1] Tunnels. Michael Rogers and I have had some fruitful discussions about security, it looks like some form of (optional) tunnels may greatly improve security at little code cost and some performance cost. (2 weeks) [1] Make big sites work well (multiple container inserts) (2 weeks) [2] Full download resuming (2 weeks) [2] Plugin versioning and auto-update-over-freenet (1 week) [2] Finish API and implement the new plugin system (3 weeks) [2] Simulate alternate load management schemes, and deploy (4 weeks??) [2] Low-level rewrite (packet format, congestion control, etc) (3 weeks?) [2] Datastore rewrite (to use any SQL engine e.g. Derby, or external e.g. mysql), some people have been having major problems (2 weeks, I'd like to postpone it, if it behaves I will) Other stuff: NODE: (2 days good-if-possible) [2] Per-node failure tables / route around nodes that fail for a specific key. Easy extension of ULPRs. (2 days) INSTALLER(S): (1 week good-if-possible?) [2] Linux packages. (??) [2] Install a startup script on Linux. (1 week?) XMLLIBRARIAN: (1 week important, 3 days good-if-possible) [1] Integrate cleanly and easily with freesites. (2 days) [1] Search box on home page. (1 day) [1] More usability work (All Indexes folder, etc) (3 days) [2] Adjacent word matching support. (1 day) [2] Filtered HTML in summaries. (1 day) [2] Negative match support. (1 day) NETWORK PROFILING: (3 days important) [1] Simple threaded probe requests. (3 days) FPROXY: (1 week important, 3 weeks good-to-have) [1] RSS filter. (important for blogging) (3 days) [2] Rewrite CSS2 filter (better standards support, better security). (1 week) [1] Support XHTML 1.1, 2.0, HTML 5.0 (3 days) [2] Support SVG including embedded in XHTML. (1 week) [2] ogg vorbis, ogg theora filters (1 week) CLIENT LAYER / FCP LAYER: (3 days essential, 2w3d important, 4w1d good-to-have) [0] TestDDA working and mandatory for direct directory uploads. (3 days) [1] Much less disk space usage for uploads (various optimisations). (1 week) [2] tar.gz support for packing containers. (2 days) (ASL2 licensing issues) [2] tar.bz2 support for packing containers. (2 days) (ASL2 licensing issues with .tar) [2] Or use cpio or something to avoid licensing issues. (2 days) [1] Fix >2GB uploads (2 days) [2] Revocable Subspace Keys and an official project freesite (1 week) [2] Fix implicit containers subdirs support. (2 days) [1] Don't report internal error on an invalid key. (1 day) [2] FCP API for Node to Node Messages so Thaw etc can talk with Thaw on nearby darknet nodes. (3 days) [1] Cut disk space usage *significantly* in uploads. (1 week) [2] Client-cache. (3 days) [2] Redirects to USKs. (1 day) [2] Insert-time charset detection. (2 days) [2] Memory optimise splitfile inserts as did with requests. (4 days) FROST ETC RELATED: (2w good-to-have) [2] ?filename= parameter to fproxy/clients, so we can go back to CHK's being invariant for different filenames. (2 days) [2] Enforced whole-file hash and prevent DDA data from changing during insertion. (1 week) [2] Selective reinsertion / indicate what blocks can't be fetched. (3 days) DARKNET: (2w4d good-to-have) [2] One-time invites. (4 days) [2] Short-noderef invites. (1 week) [2] Distribution mechanism - installer-invite-bundle generator. (1 week) DATASTORE: (1d important, 1w4d good-to-have) [2] Better datastore shrinking, on the fly with accurate LRU. (3 days) [1] Datastore histogram. (1 day) [2] Option to encrypt datastore. (3 days) [2] Option to put temp files in datastore. (3 days) CLIENTS: (~~ 1 week good-to-have) [2] We should have some sort of client that supports uploading freesites persistently. Bombe was going to fix jSite to do this. If not that, then maybe a WebDAV plugin. (1 week for webdav plugin) [1] ULPRs are essential for any spam-proof messaging system. We should give the Frost devs any *reasonable* assistance e.g. architecture review. LINK LAYER: (3 days good-to-have) [2] Debug not-forwarded-detection and turn off assumeNATed by default. (3 days) TEMP FILES: (1 day important) [1] Split temporary files into subdirs. (1 day) Postponed for 0.8: (unless somebody does it before that) - Premix routing. - Full passive requests. - Swapping must resist an active clustering attack. - Better support for fragmented networks. - NAT-PMP plugin. - AVI, PDF, MP3 filters. - Transport plugins. - Polymorphic UOM-based micro-installer. (nextgens) - Client layer coalescing. - Faster FEC decode especially on AMD64. (nextgens)
pgpm0CYa3w3aU.pgp
Description: PGP signature
_______________________________________________ Devl mailing list Devl@freenetproject.org http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl