I've made a bug on the bug tracker to which I've linked all the things that I think *might* be important for 0.7.1. Please contribute to this bug by setting it related to anything that you think it should be related to, or reply to this thread.
Stuff I think is important for the next release: Automatic bandwidth calibration. Other p2p apps have this, we should have it. It should significantly improve the average output bandwidth available, since most users presumably don't set the output limit. Further it would improve usability by making the connection more responsive. Timescale: Unclear at this point. Priority: High. Datastore changes: It looks very much like we can have both better network performance and much less memory overhead by using a non-associative salted hash table on disk. Daniel Cheng (sdiz) is currently implementing this on a branch. I will be reviewing the code soon. Nextgens has asked about its suitability for the cache as opposed to the store; mrogers' simulations were based on it being for the store. Timescale: A lot of this is done already, most work will be sdiz's. Priority: High. More work on ULPRs: Various changes related to coalescing and temporarily suppressing requests if there are too many for a single key over a period. Should help with FMS and to boost payload %. Timescale: 1 week Priority: High. Use peers' peers' locations for routing: According to oskar and vive, this should significantly cut average path lengths. There is minimal security impact as this data is already exposed by swapping. Timescale: 1 week Priority: High. Faster swapping: Vive has some ideas to improve swapping performance significantly. Hopefully he can turn these into implementible proposals. This would significantly improve performance (especially given the level of churn we see), and also help with security (because we could reset more to prevent swapping attacks). Timescale: Depends on Vive. Implementation probably relatively easy. Priority: High if possible. Would justify calling it 0.8.0 IMHO. Streams and MTU: We can improve our payload proportion significantly, allow for much smaller packets, support smaller MTUs, avoid padding with random data, and support simple stego, by implementing transport layer streams. There are also a number of other mostly minor changes which we should implement to make Freenet work well on low MTU connections. Timescale: 2-4 weeks?? Priority: High. Better Librarian integration: We should have a search box on the homepage, it should be embeddable in freesites. And XMLSpider probably needs some more debugging. Timescale: 1 week or less. Priority: High. Client layer changes: I propose to move the entire client layer onto disk. We would continue to store enough data to restart requests from scratch in downloads.dat.gz, but we would have an on-disk queue structure instead of an in-memory queue structure. This combined with the datastore changes would make our memory usage fixed, regardless of the size of your store or the number of requests you queue. It would solve many bug reports, it would incorporate the long-awaited true request resuming, would make Freenet run well on home servers with 128M or maybe even 64M of RAM, and generally is a good idea. Timescale: 2 weeks?? Priority: Medium. Auto-update for plugins: We should have had this ages ago. Several people have been complaining about it, it is a security issue if you want them kept up to date. It shouldn't be difficult. Timescale: 3 days Priority: Medium. Better content filter: Filter on insert by default (for performance on fetch), support more HTML etc, support RSS, support some other formats (e.g. mp3), etc. Timescale: 1 week, more for more formats. Priority: Medium. Better USKs: Hierarchical DBRs would help USK lookups to find something close to the latest version quickly, then plod through the editions from there to find the latest version. Timescale: 2 days. Priority: Medium. System tray icon: IMHO this would be a good usability feature. It would make it obvious that Freenet is running in the background and make it easy to throttle it or disable it when you want to play an MMORPG etc. Timescale: 1 week??? Priority: Medium. Bandwidth: mister_wavey is working on a bandwidth scheduler. It would be a big help for a lot of users who have off-peak quotas etc. There will be a user friendly config sub-page for it. Average bandwidth limits, maybe actually telling the node a monthly quota, would also be useful for many users. More accurate bandwidth limiting (limiting all packets not just transfers) would also be a big help for users on slower upstream connections. Timescale: Unknown. Priority: Medium. Allocate temporary files out of a small number of blob files: Further reduction in memory usage, some other benefits, cuts the number of fd's we use (thus allowing more FEC threads on mutli-core systems), easy. Timescale: 3 days Priority: Low. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available URL: <https://emu.freenetproject.org/pipermail/devl/attachments/20080508/099dc9fb/attachment.pgp>