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)

Attachment: pgpm0CYa3w3aU.pgp
Description: PGP signature

_______________________________________________
Devl mailing list
Devl@freenetproject.org
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to