Please add some text formating, at least some line breaks ...
Part 2:
(Continued from the post)
What's the Next Step?
I started touching on some imagined future steps, but this chunk is already a plenty big and ambitious thing. So, here's an initial plan for how I want to attack taking first steps and bring myself into contact with the engineering reality (as opposed to the rosy broad picture). Hopefully at the end of this chunk of work, the vision will have adapted somewhat to the reality of what's useful, what's possible, what the community's feedback is, what the issues and problems involved are, etc.
(And, obviously, I want to communicate with the Lemmy devs to make sure these ideas are in line with their vision. I'm laying this all out so extensively partly so that the community has a full explanation of what I'm proposing to do and why.)
So, first steps: I'm making a Lemmy instance that I can use for implementing this. I'm waiting for my hosting to go up so I can make it live, but once it's up, I'll start working on it + posting from the testbed about what's going on. My initial coding task list is:
-
Set up the peer software with the content-addressable store
-
Start to have my instance do peer discovery, make the app that runs in people's browsers from my instance become more AJAX-y and begin to request data from the peers instead of the instance.
-
Once that part's working on my instance, I'd aim to be able to move pieces of the actual app onto the peers -- construct the bootstrap code, continue the AJAX-ification of the code on my Lemmy instance, and have the bootstrapping app construct the end-user application directly from data from the peers.
-
Start to tackle the browser app making updates to the data store via requests to the peers, which will involve a lot of work and lot of sorting out replication issues, security and trust issues, and performance issues.
That's already a fairly large amount to take on. I have further ideas about how the system could move forward from there, but even just that represents (1) an ambitious thing to tackle (2) significant proposed changes to the instance software (3) if it works, a fantastically useful tool that instance operators could use to reduce their instance load if they want to. So, I'm limiting the plan to that much for now until I get some contact with the technical reality and with the community.
What You Can Do
So if you've read to the end, maybe you think this is a good idea. Want to help? This is a bunch of work already and I'd love it if people wanted to help get it done. Leave a comment, let me know what you think whether positive or negative, and if you want to help, 100% reach out and let's get it done. I'm skilled with software engineering in general, but I'm actually not too familiar in particular with web backends and AJAX, so someone more skilled than I am could probably help this along in a huge way. Specific things that might be useful:
-
If you want to run a peer or instance and help test the system
-
If you can help with coding
-
If you have feedback on these ideas in general, either positive or else things I've overlooked or need to adjust
Hope to hear from you and thank you for reading my wall of text. Let me know what you think + cheers to you.
I got a spare raspberry pi set up as a server. I can use that to host stuff and am okay in programming (not rust though). Let me know if I can be of assistance in anyway. Be happy to help with this effort
Yes, absolutely! Sorry for the silence... I was working on code with a little bit expanded scope from the original project, but it's shaping up to be maybe within a week or two something that could actually be tested. You can read the update about the current state of things; in it I talk about having a test instance set up, and wanting to set up proxy caches for it to be able to test the whole system in real-world functioning. The code's not ready yet, but maybe if in a couple weeks you still want to help with testing, I can help you get a proxy node set up on your Pi and then that can form part of the initial proof-of-concept on that testbed server?
For sure and no worries about the delay in response. I am out on vacation but when I get back, I can lend help set up a proxy node. Maybe set it up as a container on docker
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!