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!
view the rest of the comments
No, it does not "seem", it explicitly states.
A hash table is a way of storing data, I suppose you could call it a very primitive database. But that's not the common usage of the word database. Hash tables are used in database indexes, hence why I called it "reinventing the wheel".
The naming system is still a central part of any network, even if decentralized in design. So it will need some sort or central moderation.
One issue with ens though, is that the control over it is more centralized than dns. But without regulation, it's worse than the existing solution.
I haven't used the service or reviewed the code, I've only read the whitepaper and read the website. Early stage projects like this have a habit of stating this things that aren't yet true, hence the uncertainty.
It sounds like you're limiting your definition of "database" to relationship databases, there are a lot of other types of databases out there. The most common use case for Redis, for example, is as a key value store, and a hash table would be a perfect way to implement that. I've used
redb
in this project, which is a disk based key value database.Sure, but DNS systems are authoritative, meaning there's only one right answer to a given query. This requires synchronization across the network, which creates a ton of complexity.
If we can avoid that synchronization, the design gets a lot simpler, which makes it more robust. In my design, I'm specifically avoiding mandatory deletes and updates, so the only operations my "database" needs to support are creates and reads. Communities are just topics you can post to, and moderation is just client-side filtering. The tricky part is getting the client side filtering good enough to not give spammers and trolls too much visibility.
Some nice parts about this:
Let's hope it's not true yet or ever. Did you mean relational? And no, that's not what I said.
The current dns system works, and has it's flaws. But ens is not an improvement, it's worse.
Yes, relational. Stupid auto correct...
And I'm not arguing for or against DNS vs ENS, I'm saying that whole concept is an unnecessary centralization for something that could be implemented without it at all. The only technical reason something like Reddit would need an authoritative answer for name resolution is for moderation (i.e. elevated privileges), so you can verify that you're getting authoritative moderation.
If you can do distributed moderation, you get a lot of nice flexibility and resiliency. That's what I'm interested in exploring, and my main criticism of Plebbit. If I take Plebbit to a region that blocks ENS or sending packets to the owner, I can't use the service, which to me means it's not truly decentralized. If I take my system there, I can keep using it with locals there provided I find a relay behind that firewall, and I can sync up with my usual peers later. The only hosting needed for my service is a relay to connect nodes, and someone needs to provide storage space on their client. That's it, and relays are cheap.
Without names you wouldn't have.. names though? We're still dealing with humans in the end, we like names
There would be names, just no owners of those names. You'd navigate to /c/technology or whatever, there just wouldn't be anyone who owns or controls that name, it's just a tag that anyone can post to.
To get the posts for /c/technology, you'd ask your peers, and they'd ask their peers until someone provides that data. Your client would then aggregate all of the responses, filter them through local moderation, and then display the feed.
Then how would you get to the platform? Direct ip?
Connect to a relay (ideally multiple), which connects you directly to peers. From there, peers can directly refer you to other peers. So just like a BitTorrent tracker or peer exchange.
There currently isn't a web frontend, but once there is, you could select any that you like. You could self host your own portal, use someone else's, or use the one I provide. That portal doesn't store any data, it just serves the page and facilitates connection to the platform, and any caching would be an implementation detail. It'll be incredibly lightweight, so you could host it on the cheapest VPS available.
Isn't that effectively the same? I like the lightweight aspect of it though
No. From what I can tell, Plebbit works like this:
If User A ends the service, moderation and signing of comments end, which effectively kills the community.
My proposal works like this:
That's it. Any moderation happens on the client. I have plans to make moderation largely automatic, so it's not a pain while still hopefully controlling spam and trolls. Half the network could go down and the data would still largely be intact. In fact, a country could block internet entirely, and you could still sneakernet it in as long as someone has a relay there. If somehow all relays go down, you spin one up and everyone resyncs and we call it an outage. You can even host your own within your LAN.
Domain names are convenient for relays, but they're not essential. The only thing required is some way to connect peers.
Oh, that might just create some legal issues
For who?
The biggest targets are individual users, but as we've seen with BitTorrent, that almost never happens. There's also no profit here, so there are no assets to seize, though I'll probably accept donations.
I don't mean crime, no. There's laws regarding moderation when a platform is big enough. And regarding personal data in a lot of cases
Ah, that's not a thing where I'm from (US). I wonder what that would look like without a central authority. There's no way to guarantee any particular moderation or ensure deletion of personal data, so I guess their options are to ban it or let it slide.
Probably only the instances big enough to qualify