-
Notifications
You must be signed in to change notification settings - Fork 2
High Impact tasks
Arne Babenhauserheide edited this page Jun 1, 2024
·
55 revisions
Tasks that Freenet Developers see as the most important to increase Freenet adoption. This is a mirror of the Sharesite within Hyphanet: USK@xPkwhS3czAr5oi6yNgLQ7Ld7RbUZuY6eGniS0n5FZtc,WXVIZrZyLlZugJgJKYvbF9SPfKAUAQX9gAX6g7FGNVE,AQACAAE/high-impact-tasks/20/
{toc}
- Fix a release-blocker for 8.0 from the Roadmap
- ✔
Fix fallback plugin-install from https— we removed that fallback. It could be a threat to privacy and had not been useful since we switched to bundling essential plugins with the installer. - ✔ convert the CI from travis to another system to make it easy to contribute again — Basic CI uses github actions now.
- Recover signing the Windows installer without the expired certificate from FPI.
- ✔
- Packaging
- Create a Debian package (most impactful)
- ✔ Create Debian package for all changes
- Get the package into Debian
- 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)
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.
- Ideally make the full invitation bundle
- 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.
- Increase the convenience of N2NTMs (node-to-node text messages) as a confidential way to keep in contact with real life friends. For a start, see Add core operations interface WIP
- ✔ 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 lots of textual data. See https://freenet.mantishub.io/view.php?id=7182
- Fix the DefaultManifestPutter to avoid intermediate single-CHK redirects. Those affect both Spider and some regular uploads.
- 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/
- Also see Provide your own video channel via Freenet / Hyphanet
- 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, …)
- 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.
- make freemail more reliable. While it usually works, it can currently happen that messages get lost or only get delivered with large delays.
- fix Spider (it currently breaks after a few inserts and needs a lot of resources)
- 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 and web+hyphanet and ext+hyphanet to enable using those unrestricted schemas.
- Complete FCPv2 documentation: Wiki: FCPv2
- Starting point: update the Wiki contents to match the
*Message.java
files in src/freenet/clients/fcp
- Starting point: update the Wiki contents to match the
- Document how to create a plugin with a web interface built with pebble templates and integrated into the fproxy menu, using FCPv2 to interact with the node.
- Decentralized programming
- ✔ Finish porting infocalypse to python3 so it can be used again
- Improve upon the WoT integration started by operhiem1 https://github.com/hyphanet/plugin-DVCS-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.
- 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.