1432
Welp that answers a lot of why all .ml are down
(i.imgur.com)
This is a most excellent place for technology news and articles.
this is why instances should be abstracted away as underlying infrastructure and the users don't have to think about "instances". accounts and communities are replicated across servers.
This is not the solution! Being able to pick a server to trust your data and content moderation with is a feature, not a bug.
What we do have to do is make this feature more resilient and easier to use. Like adding the ability to easily transfer accounts and communities between instances, or even change the domain name of an entire instance.
no, you're misunderstanding. that shouldn't be how it works. there shouldn't be any difference between the software on each instance such that it make your data insecure. this is how bitcoin works. this is why anyone can spin up a bitcoin instance and have it start contributing to the bitcoin blockchain and you as a user don't have to "trust" that particular node. trust is built into the distributed software architecture. you don't "choose" a set of bitcoin nodes. you don't "choose" your CDN or DNS servers.
Cryptocurrencies and social platforms are completely different beasts. In crypto I want no moderation/censorship, I want anonymity, and there is a payout system so nodes can compete for something. This is all different when building a social network, so you can't just use the same architecture. Building social structures and trust is desirable in a public forum, not something you want to get rid of.
wait you want censorship in a social network? also, the architecture i'm describing does not do away with moderation and social structure. what about it makes you think that to be the case?
Of course! Moderation is censorship. There is certain content I don't want to see, and I don't want to have to filter it myself so I join a community of seemingly likeminded people who censor content based on rules I generally agree with. They ban users who break the rules, keep spambots out, block malicious instances and so on, and if they are doing their job right then it builds trust and attracts more people.
Because you want to strip all that out and abstract it away. Who do you think would do the moderating and spam blocking? Who aggregates posts from all over the world and presents a sorted list to a user on their smartphone? It would be the wild west with users having to do everything themselves. I know it's tempting to think about building a Fediverse without instances, but afaik you need these social structures for the system to work.
Crypto for example only works because you can define the rules mathematically beforehand, and then hand out money for computers to check them. That's just not possible with a public forum, at least not yet imo.
i do not want to strip out the functionality of communities having mods that moderate the discourse and ban malicious users etc. it sounds like you misunderstood what i was proposing.
What I'm saying is that you cannot do those features with what you're proposing, regardless of what you might want to do.
ok. so you are misunderstanding what i am proposing then.
i can explain in more detail any part of the design if you wish.
Sure 😁
I think the one thing we could adopt from crypto is having public keys as user IDs, instead of tying it to an instance. But that would require users to handle their own keys, and people are just reeeaaally bad at that!
the advantages of this:
There is so much wrong with this that I don't even know where to begin.
I don't intent to be rude, but this is just not how you build a decentralized/distributed system. The network would grind to a halt if every user app had to search recursively through a portion of the network, and aggregate & rank posts by itself. Aggregate values (communities, votes and so on) would never be right, because you'd never be able to acually gather all events for a particular entity in time. This might work in a local network of 10 nodes, but not on a global scale.
On top, who would pay for those nodes you are querying? There is no relationship between the users and the nodes, so why would anyone just run a node for others or be willing to pay anyone else in this scenario? Servers cost money and stuff. And your spam filtering and moderation solution would be the exact same as with instances, so nothing is gained here.
Maybe have a look at the Session messenger and their Oxen network. They go to great length to make sure the work is equally distributed among nodes and they are compensated fairly. This doesn't just happen magically by itself, and there are many bad actors who will try to exploit any weakness they can find.
So I just think it's impossible to create something like lemmy in an anonymous way, because content moderation is a human decision. There is no one correct mathematical solution, and I also can't send some kind of filter query to a server to do it for me. All I can do is read the general rules that another human being has wrote up, subscribe to their moderation "service", see how they are doing, and decide to stay or switch to another.
Similarly, if I don't want to aggregate all the posts in the world by myself (as you are suggesting), then I'll have to fine someone to do it for me, and somehow pay that someone for their service. This part is actually kind of solvable (again look at Session), but it is not straight forward at all! It would involve crypto currencies, mining/staking, and some kind of client-side monetization. For this part I think trusted instances are just a much better solution, because we are building a social structure here anyway.
ok, you make good points, but i feel like the algorithm could work to not have the system grind to a halt. i'd have to look at other examples where this has been done. but maybe i am overly-optimistic and it's not possible.
the people who are already running nodes, like lemmy.world, lemmy.ml, me, etc. i run some services on my home server that i let anyone use, because i have the hardware and the bandwidth to be able to afford it. there are enough people who have the necessary hardware and bandwidth to contribute to it at minimal detriment to them. it's already an open-source project where people volunteer their time to code it.
i'll read up on oxen network.
wait who said anything about anonymous? what are talking about being anonymous? there would still be user accounts.
this is already what is done, except that the data is not stored in a replicated and distributed manor. you get all the posts in the world of a community of an instance. it is one server, with all the data stored on its harddrive, like a traditional website. in what i'm proposing, this is also what would happen in many cases, because the thing wouldn't requery the entire network every time you request posts, there would be a time threshold, like how posts are cached on your local mobile device for most social media apps. posts would be cached on the server.
now, yes, this architecture would in fact result in more network traffic occurring between each and every node, as they receive updates about events on other nodes. so that would be extra burden upon the hosts. but i believe it is something we can work through.
There are a few technical problems with that. First of all, the cost of each instance would become quickly unbearable since everyone has all the duplicated data.
Second problem, a malign entity could just come, create its own instance, spam everything and everyone with ads or whatever and suddenly every instance is full of that stuff. Also, how do you handle defederating in that case?
What has been proposed before instead was to make some kind of mega communities that gather all posts from communities with the same name across instances
everyone does not have all the duplicated data. they only have the data that they need -- the data requested by a user who happens to be using some instance.
handling defederating is a good point. there could be malicious nodes that would be damaging to the network. i suppose there could be a community-mainted ledger of known malicious nodes (similar to minecraft usernames of known hackers), and the admins of the servers would maintain a blacklist. (obviously you configure that your instance's blacklist would be automatically synced with this ledger)
the mega community idea could be good. where is this being discussed?
I don't want to share an instance with the nutballs on the tankie instance or the nutballs on the fascist instance.
to expound:
here you reveal a conceptual misunderstanding, or rather, a part of the lemmy architecture which i disagree with. there shouldn't be a concept of a "interest X instance" etc. it should be similar to a distributed storage model. so the concept of a community is not per-instance, it's just an abstract thing that exists in conceptual space.
you already share water with them though. how is this any different? more seriously though, you already share internet infrastructure with them. the packets you just sent to make that comment could have been sandwiched between a "tankie" and a "fascist nutball". that's just the way it is man, there have always been crazy humans.
This was my thought as well. Before learning more about the fediverse, I thought things are distributed and are replicated across servers (much like how distributed storage and computing works). But apparently they're not. You still have to choose which instance you want to use as your "home", and your data and your contents stays in your home. Others get to look at your profile and contents thanks to ActivityPub.
I understand the needs for multiple instances (i.e., preferences for moderating concents, governance, etc.) But shouldn't the users and the user generated contents (arguably fediverse's valuable resources) should be safe-guarded by having redundancies in place across multiple instances?
Has there any work or effort on this?
yes, exactly! when you use the internet, you don't manually choose which ISPs to route through. you can pick which DNS servers to use but you don't have to. when you use youtube, netflix, or facebook, you don't choose which CDNs to use.