This is still very much early-days, but I’m thinking about building a
distributed link aggregator. Some notes: - no servers (all P2P) except to
connect peers - no “instances” so everything is in one namespace (so like reddit
/r/community, not lemmy instance/c/community) - everyone is a moderator -
m...
The link goes to a related post on another community so I don't have to duplicate it here.
Basically, I'd like to discuss tech options for a Reddit/Lemmy alternative. Here's what I've found:
Iroh - early days alternative to IPFS promising improved performance and application control
Appleseed - old-ish proposal for a distributed trust system - I'm thinking of using it for moderation (i.e. if you block/report similarly to someone else, that will get automated; you could also explicitly trust someone else [e.g. a CP-detector bot])
TrustNet - builds on Appleseed - still reading through the paper to know what it adds over Appleseed, if anything
Goals:
distributed storage - worried the fediverse will scale poorly (become too expensive)
distributed moderation - power-hungry mods suck
local-first - cache/host stuff you care about, reserve some space for preservation
Non-goals:
make money - it's a hobby for now, everything would be FOSS
image/video hosting - legal issues if you get random CP or something
preserve all data - I'd rather sacrifice older/less popular content than lose users - community can run caching servers
fediverse compat - P2P makes that difficult, but a bridge should be feasible
Thoughts? What am I missing?
Also, would anyone like me to post updates? It'll mostly be stuff from my research, if I post code, it won't be for a while (I have limited time).
Not yet, I don't release projects until they're useful for others with just the documentation provided, and I've been taking a bit of a hiatus due to family vacations and whatnot.
I do have a private git repo I'm working in, and I'll make it public once it's usable. I have basic infrastructure set up and multiple clients can communicate, but they don't yet share the full state. Next steps are:
Clients should be able to connect and sync the full state by just fetching differences
Some basic level of moderation - planning for something like a web of trust, but with transitive, fractional trust
Stress testing and a rapid rollout plan for relays (needed to connect peers); I have one relay, but I'll probably need a swarm if it gets any kind of traction
It'll probably take a few months of work to get there, but I have the basics of 2 in the works, and I think the library I'm using for 1 is going to get a 1.0 release soonish, so I might delay until then. Things that won't work when I launch:
web - it'll be a desktop only app, but the client is built in tauri, so web may be an option eventually
mobile - tauri's mobile support is still in beta, so I won't launch with that (and it's a lot of work getting releases going)
non-text posts - only links or text are supported, markdown works too
fediverse bridge - I'd like to build this, but I don't understand ActivityPub well enough to just jump in yet
Anyway, I'll post on a few places once it's ready. Maybe by the end of the year, by probably not.