this post was submitted on 09 Sep 2023
617 points (96.8% liked)
Programmer Humor
32558 readers
390 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
honestly a distributed ledger makes alot of sense for backups, having a swarm of backup nodes which replicate your backup data... good resiliency and geographic distribution.
What you want in that situation is called a "replicated database", not a "distributed ledger" and certainly not a "blockchain".
99.999% of the time what people imagine when they say blockchain is good is effectively just the matrix protocol, which can be summarized as federated eventually consistent databases (and that's pretty dang neato).
If a single organization owns all the servers, there's not even in theory a reason to prefer blockchain over a plain replicated database. And in practice anyone who's pushing blockchain is either an ideologue or a scammer; either way they don't have the user's best interests at heart.
that's my point, most of the time people don't even know what a blockchain actually is, and the reason they think it's good is because in their head they imagine something less shit
Could not have said it better myself
I haven't seen a replicated database that operates over the same scale of failure domains as distrubuted ledgers, do you have good examples of that?
They don't have to. If you don't have database replicas that are actively trying to subvert the system, inject bogus transactions, etc. then you don't have the set of failure domains for which blockchains are in theory useful for.
If you're running backups for a single organization, you just need replicated data storage on servers owned and operated by that organization. If you're running backups for a set of users who all trust your organization (e.g. if you're Dropbox or the like), you also don't need blockchain.
It's pretty reasonable not to implicitly trust an organization to always get things right or always be honest about what they are doing. Couldn't there be theoretical value in spreading backups across multiple organizations and having cryptographic evidence they are all doing their jobs correctly, to reduce the need for that trust?
Theoretically? Sure. But in reality, blockchain pushers are fanatics, scammers, or both, so no real organization should trust them.
IMO that's a pretty limiting perspective. The existence of a lot of noise around a technology isn't a great reason to take a hard stance against ever using it.
If you think you've found the one honest snake-oil salesman, you're almost certainly wrong. That's part of reality.
I can agree that it's a bad idea to trust a salesman trying to market a blockchain product or service, but part of the point of open standards and techniques is that you can evaluate them on their own merits and implement them without needing to trust anyone.
I am not talking about back ups but more of dealing with the problems of distributed data in general. I.E. How do you, across a network of intermittent reliability (at a certain scale this is a guarantee not a choice), in sure that a piece of data written to and read by multiple actors is constant and available across the system?
Spanner.
Cloud only and closed source, right?
I'm pointing at the architecture, not the specific implementation. Build something like Spanner, not something like a blockchain.
It makes no sense at all to distribute the backup generation step, and what do you do with your ledger once the retention period ends?
There may be something you can do with a ledger in the "full - incremental - incremental - incremental ..." cycle, but I can't think of anything that's actually useful.
Since we are designing the consensus algorithm we could remove data that is expired with some quorum vote, or indication from a key holder.
or you could just not do that, and keep control of your own data. Why the hell would I want you to have a vote on whether I can delete my private data, which for some unfathomable reason, someone decided everyone should have a copy of?
In practice, data owners don't have control of their data, sysadmins do. This gets complicated in multi-orgnizational data setups.
the sysadmin is part of the owner
data owner was the key one here. If I run a storage service for example, I have control of the data, but you would see it as a breech of trust if I deleted your data, or gave access to someone else without your permission, because you in the scenario are the data owner.
That's just ceph with extra steps.