High Impact tasks
Arne Babenhauserheide edited this page Apr 13, 2023
·
44 revisions
Pages 206
-
- Goal: Release Freenet 8.0
- Goal: Simplify Installing
- Goal: Independently spreading Freenet
- Goal: Improve the Core User Experience
- Goal: Enable realtime video streaming
- Goal: Improve Freenet on Android
- Goal: Make Advanced Features Easy to Use
- Goal: Integrate Freenet with the clearnet
- Goal: Improve Developer Support
- Goal: Improve Privacy and Security
Clone this wiki locally
Tasks that Freenet Developers see as the most important to increase Freenet adoption.
{toc}
Goal: Release Freenet 8.0
- Fix a release-blocker for 8.0 from the Roadmap
- Fix fallback plugin-install from https
- convert the CI from travis to another system to make it easy to contribute again
Goal: Simplify Installing
- Packaging
- Create a Debian package (most impactful)
- https://www.mail-archive.com/devl@freenetproject.org/msg49740.html
- A good starting point would be https://github.com/freenet/fred/pull/774
- Create a Guix package (ArneBab can mentor that)
- Add a simple beta-channel for each release by choosing a separate update key with a sitename derived from the next release
- Create a Debian package (most impactful)
Goal: Independently spreading Freenet
This is the central step for highest resilience.
- Revamp F2F workflow, see insights here: https://www.reddit.com/r/Freenet/comments/lblvdq/how_would_you_improve_freenet/gm2yrxs
- Create invite-only friend-communication workflow among darknet friends (mobile first): read + publish as regular, sharing links and chatting via n2ntm
- First connection: Improve inviting friends who do not use Freenet yet
- Increase visibility of the installer available in each node (for inviting friends without pointing them to the website)
- Include a prepared noderef in the installer and offer to include some introduction noderefs of peers.
- Enable one-sided connection with one-time-token: single-use noderefs generated by the node that allow connecting right-away.
- Include a single-use noderef with one-time-token in the installer so friends connect at once.
- Connect more friends
- Simplify introducing friends to each other: select some peers, click “introduce”, they get messages for the contacts whether they want to connect.
- When adding a friend, ask to which peers the friend should be introduced.
- Make the noderef parser work always, even if linebreaks are lost, unicode is mis-escaped, or email uses 7-bit ASCII encoding in an inline PGP message.
Goal: Improve the Core User Experience
- Revamp Freenet initial page: On first install add help sections and useful links, list official plugins
- Cleanup inconsistencies in the web User Interface.
- Show user-alerts when you get a new Freemail (plugin), or a new Sone reply (plugin), or a new highlighting in FLIRCP (plugin).
- Enable activating desktop-notifications for user-alerts, separated by type (node-to-node messages, plugin-messages, uploads, …).
- Add zstd as compression option to reduce the CPU load on nodes that actively download lost of textual data. See https://freenet.mantishub.io/view.php?id=7182
Goal: Enable realtime video streaming
- Content filters for modern codecs can make Freenet viable for realtime streaming
- improve the existing ogg theora/vorbis filter: Currently filtered videos have annoying stuttering that is not present in unfiltered videos. See https://freenet.mantishub.io/view.php?id=7163
- ogg opus (this reduces the needed bandwidth enough to enable live streaming of audio from a single node, see How to stream into Freenet )
- webm with vp9 (direct streaming) or av1 (stream on demand)
- Stream-into-Freenet GUI
- For starters (without GUI), see https://github.com/freenet/generate-media-site/
Goal: Improve Freenet on Android
- Freenet Mobile https://github.com/freenet-mobile/app
- Mobile node: ref exchange as with https://github.com/ArneBab/Icicle
- Mobile node: spread via NFC and/or Bluetooth
- Improve FreeChat, FOSS messenger that uses Freenet https://github.com/DennisRein/free-chat-2
- Spread via Messengers (WhatsApp, Signal, Telegram, Threema, DeltaChat, …)
Goal: Make Advanced Features Easy to Use
- Plugin furbishing: Freemail, Keepalive, Freereader, Shoeshop, Floghelper, Flircp, and JFniki need work to make the workflows enjoyable
- Add SSK-Splitfile support to KeepAlive. Example-File (to check it with KeyUtils)): SSK@h3kHfe67fKIt-G71rbf1B0CDdXW0dtzjWjrL9D0-TQk,OXMHVbz33zanji-FdHRcTaMZj4Cx9gn-Ce5vkwLIgVw,AQACAAE/theradiocc-000.mp3
- Port plugin buildsystem to gradle (more complex to get right than it sounds!)
- make jfniki work with changed IP/Port used via Proxy (when you set fred to act as proxy so your browser can only access Freenet)
- make freemail forward to the original link after login: Freemail forgets that it was called to send a new message if you have to login first
- make freemail add a recipient to the WoT when replying, so replying always works. This may require adding the key of the ID when sending a message.
- make freemail never lose the message when clicking send. A missing recipient ID currently causes message loss.
- fix Spider (it currently breaks after a few inserts and needs a lot of resources)
Goal: Integrate Freenet with the clearnet
- Program or browser-plugin to follow freenet:CHK@…-Links (and freenet:SSK@ and freenet:USK@…) by requesting them from the node.
- Same for magnets, i.e. magnet:?xt=urn:freenet:CHK:…
- As a starting point, see freenetbrowser
- The browser-plugin depends on allow-listing the schema
- First step: also parse web+freenet and ext+freenet to enable using those unrestricted schemas.
Goal: Improve Developer Support
- Decentralized programming
✔ Finish porting infocalypse to python3 so it can be used again- Improve upon the WoT integration started by operhiem1 https://github.com/ArneBab/plugin-Infocalypse-WebUI
-
REST API for consuming on UI/apps
- See https://github.com/Bombe/fresta
- Add API documentation (essential) with Open API, examples and documentation
- Simplify updating and changing dependencies over Freenet: Currently this is a manual, error-prone process which relies on manually patching wrapper-files and blocks at least one pull-request.
Goal: Improve Privacy and Security
- Allow disguising Freenet traffic as HTTP3 udp packets. See transport plugins and steganography for pointers.
Also see the more abstract Ideas and the suggestions of tasks for Google-Summer-of-Code-2021.