edit: hm, the recommended application on the website itself is ... from 2021, and the github of the app itself is archived now. And there is "bleeding edge" one ... from 2019.
OK I can see that there might be problems
edit: hm, the recommended application on the website itself is ... from 2021, and the github of the app itself is archived now. And there is "bleeding edge" one ... from 2019.
OK I can see that there might be problems
Was this contemplated by the Satoshi paper.
Scuttelbutt had some design and scaling issues.
But there wasn't a global database. Each user gets their own blockchain.
Its a network of tiny blockchains where the consensus model was the signature from the private key and the chain of hashes.
What you are describing is simply a signed Merkle tree, not a blockchain. You cannot really call an individual signing it's own ledger a consensus mechanism. Maybe "validity" or "authenticity" would be better terms here.
I know a lot of people make this mistake of labelling anything that has a Merkle-tree like structure a blockchain but it's impractical when you need to talk about the technology rigorously to have a word that meant something precise suddenly encompass so many things, including tools such as Git.
Coming back to Scuttlebutt, even the website of Manyverse, the mobile client, explicitly says "no blockchains", so it seems at least some of the people involved in Scuttlebutt development agree with this.
if there's not a discrete unit of appended data that all peers agree has happened, there's not a block
"hashchain" maybe, but merkle tree is already plenty precise
The “Merkle tree” I worked on before this blockchain nonsense started was a Merkle DAG, representing a mostly linear state flow with some parallel elements.
Do you have any references or reading material on this pattern? Would love to learn more.
I think they were invented by Bill Pugh, a professor who also had some noteworthiness in Java concurrency fifteen years ago, which is how I heard of them.
Wikipedia agrees (W Pugh for William)
https://en.wikipedia.org/wiki/Skip_list
So the way I see it, you’d overlay the linear tree with one that refers to a single, recent hash, a much older hash (or another meta node of the same degree) and a roll up delta from that older hash, with a new hash that satisfies both. Then every time the number of records double, you add another layer over the previous one.
I'll share my definition of these terms, for me they have very precise definitions:
A merkle tree is a specific data structure: https://en.wikipedia.org/wiki/Merkle_tree
> In cryptography and computer science, a hash tree or Merkle tree is a tree in which every "leaf" (node) is labelled with the cryptographic hash of a data block, and every node that is not a leaf (called a branch, inner node, or inode) is labelled with the cryptographic hash of the labels of its child nodes. A hash tree allows efficient and secure verification of the contents of a large data structure. A hash tree is a generalization of a hash list and a hash chain.
If you have hashes co-located with data, and data spread throughout the chain, it is not a merkle tree.
A blockchain is a linear chain of hashes of the content in each block of the chain. In a blockchain, for any given block, there is only one valid next block.
When a blockchain is propagated over a network, there is a consensus algorithm used to agree on state of that chain. Bitcoin uses proof-of-work to agree on the next block. Anything that allows multiple nodes to reach consensus on the state of a blockchain is a consensus algorithm. SSB uses proof-of-signature, and the sequence number, as its consensus algorithm. The network reaches consensus on the state of any particular chain by validating the signatures and that the sequence numbers are in the correct order.
Colloquially, blockchains have been conflated with their consensus schemes. When people use the term blockchain conversationally, they generally mean a blockchain that propagates over a network using some sort of consensus algorithm. This conflation of consensus with blockchains has lead to many people in the p2p space rejecting the term blockchain to distance themselves from the crypto hype bubble, even though the data structure itself is quite useful.
Finally there is a Merkle-DAG, introduced by Juan Benet, that acts as a unifying data structure for both blockchains and merkle-trees. Merkle-DAGs can also express novel data structures that are neither a merkle-tree nor a blockchain.
tl;dr: a blockchain is not a merkle-tree, and a merkle-dag might be capable of representing a blockchain but they are separate concepts. A blockchain is independent of its consensus algorithm, although colloquially the two have been conflated.
P.S. Merkle-DAG might be capable of representing git, would be fun to give it a try sometime using something like IPLD.
Ok I can see that. It's the distributed consensus problem in a centralized setting. It still feels strange to call that a blockchain but maybe it can be qualified like "centralized blockchain" (which questions the need for such a structure to begin with).
I’ve seen centralized blockchains used to great effect in ledger contexts where the chain is not synced, but references (hashes) of the chain are shared externally (I.e. transaction ids).
If an external auditor has a set of transaction ids that have been communicated externally, they can later audit the centralized chain and prove it has not been tampered with without having to have the full log of blocks.
Yes that's the theoretical structure but in practice its usage almost always implies data co-located with the intermediate hashes, if only because it's used to validate the integrity of a tree of files and directory and it's easier to manipulate a single structure with all the information. That's how it's done in Git internally, as well as in IPFS for example. I believe it's also how Merke-trees are used in some backup/synchronization tools.
> In a blockchain, for any given block, there is only one valid next block.
Yes, but that's just a particular kind of tree, where each node only has one child.
Yes!
I’m personally building a SSB data structure that forks into a tree, forking to allow writes from each new writer, to allow multi-device writes! It is a multi-writer append database that behaves like a CRDT.
It’s a blocktree, not a blockchain. Which is also expressable as a merkledag.
If there are alternative ways to have an offline(over Wi-Fi/bluetooth, not internet) social media/messaging app, that works on both Android and ios, please do let me know.
Thanks.
SSB always sank from the first post to the latest. IMO it's better to sync from the latest backwards.
I love a good dumb butt joke, but not everything with the substring butt in it is automatically funny or reminiscent of butts.
Halibut is already a terrible name for a social network but if it wasn't it may indeed be a little bit bumular
(although in my accent at least you don't really end in a butt, it's more a "bit", maybe you could get away with it)
I've never associated this term with being nerdy or niche.
You can store 10k blocks in the size of a JPG image.
And, when trees grow large, with stale data that has been forgotten by the network, you can do garbage collection/compaction by shaking out the dead references and sharing a new tree.
Its just SSB never reached this point.
I tell people sometimes that I'd put together a team to do a retro Scuttlebot revival with a Patchwork-style app and of course git-ssb! If you're interested in this kind of project email or call me. Contacts are in my bio.
I'm mostly looking for devs who want to dive into an old Node.js codebase, who want to recapture the magic of the original protocol, and then upgrade all of the modules to modern standards. Maybe Deno or Bun even.
https://github.com/mycognosist/solar
I've also been toying with this, exactly for that kind of unapologetically desktop-only "classic" client. Suffice to say I'm also a bit butt(hehe)hurt about how the desktop client story worked out after manyverse decided dump the original protocol some years into the effort.
It's called Scuttlebutt, meaning it can never be remotely popular enough to function as a worthwhile social network.
While this might not be the only issue I wouldn’t doubt that the name might prevent a larger audience.
Just because the name says exactly what the product does and what it's for, that doesn't automatically mean it is good. In fact, imo it is bad in a lot of cases.
Do you think Instagram would have gotten as popular if it was named FlexGallery, or if Nextdoor was named SpreadRumorsActVaguelyRacistForum, or if Twitter/X was named PopularityContestShortMessagesAndBadNewsSourceSpaceWithSomePorn?
I personally would say "no" to all of those, and it isn't just because the names get unnecessarily long and ugly. McDonalds would never rename itself to Cheap Passable Fast Food Restaurant.
As for the rest, they just miss [...]Factory and [...]Controller prefixes, and then they truly would become typical Java classes.
A name must not be even remotely silly, else it will be laughed out of the (already crowded) room.
I mean, it's an English word, for sure. I have never once in my many years heard someone actually say it seriously. Maybe a handful of times when someone was purposefully trying to be quirky.
Also, all the freaking time when I was in the US Navy.
They're saying precisely that and they're 100% right, and it seems you're missing a lot of things.
It's a social network. Its only value is in it having people using it and coming back.
Just try and imagine any person in your IRL circles (who's not on HN) actually using a social network with butt in its name. I seriously can't believe you see no issue there whatsoever. A teenager. A young artist. A YouTuber. "Follow me on TikTok, Instagram, Scuttlebutt and Poopypants". I dare you to find a creator willing to say these words.
Or if you just hang out with smart, like-minded tech-savvy middle-ages people who see past these things, then great, we have a new "social network" for smart, like-minded tech-savvy middle-aged people.
Sounds great to me. The hard part is keeping the scammers away. If a ridiculous name can do that, I'm up for it.
Clearly the presence of a sequence of four silly letters isn't in and of itself disqualifying. Native speakers often won't even register the juvenile bit inside it.
My only surprise here is that "scuttlebutt" doesn't work that way for other native speakers. It must be just my dialect or circles then, because it's an ordinary word for me which subsumes the "butt" within it (like I'm certain "button" does for you). But I guess it's not universally like that and the word is odd or rare enough that it doesn't do the same for others.
With your examples the butt sounds are mixed in so they don't stand out as much.
People will get used to it.
Good for them, for once I might be able to try actually try it.
But having something "photoshopped" is a bad thing. Interesting. :)
As it stands, I turn my nose at stuff like Cockroach DB.
When it's a social network?
"Hey guys, have you seen Dave's new post on Poopypants?"
Scuttlebutt has a context and a meaning behind it. People might hear it without knowing the context, think "that it's a weird name, why is it so?", and then judge whether they like it or not. But to just hear the name and claim that it is inappropriate/bad/not-to-be-used because it reminds you of something that has nothing to do with the original context is ridiculous.
Orgs spend millions on naming/branding because they know a name that doesn't hit right to the ear is going to be at a disadvantage. The vast majority of folks aren't going to bother giving your product a second thought if it doesn't appeal to them or has a negative connotation in their head right off the bat, regardless of the name's deeper relevance or origin.
If Scuttlebutt had an amazing feature that had a viral component to attract people, was easy to use and had no roadblocks for distribution, it would likely succeed, regardless of the name (like github).
But it's not. Scuttlebutt is a complex system, requires users to understand concepts like public keys and distributed systems, content discovery literally involves chasing other people around the internet to spread the gossip to you, the client was primitive, the development team had a size of one, etc, etc, etc... Those factors are way more relevant to understand why it hasn't taken off. Even if Scuttlebutt had a perfectly "appropriate" name, it wouldn't matter.
To put it another way: "Glimpse" is a fork of GIMP, and the author forked only because of the name. How many people actually cared enough about it to switch? How many people left Photoshop and started using "Glimpse" because that was the tipping point? Or the inverse: look at the whole Twitter -> X "branding". How many people left Twitter because of the name change vs because of the other changes since Elon took over?
But usually FOSS projects don't get renamed at all, or if they do the renaming causes so much drama that kills the project. So nothing changes, also not obscure design choices - and they remain niche.
Was it holding back mindshare growth?
Why greasemonkey" and "tampermonkey" didn't change their names?
And greasemonkey and tampermonkey are not really mainstream, nor do they make money as far as I know.
Besides, the original criticism of Scuttlebutt was "it will never catch on because it has a silly name", not "it will make money". By making it about "making money" you are moving the goalposts a bit, aren't you?
Operating a social global network, even decentralized, is not possible without money, if you are aiming to get mainstream adoption(which was the main question/goal here). But you are very welcome, to proof me wrong.
Butt in the name will absolutely make the project a joke and cause it to misfire. As a fellow midwit I only just heard of the project and dismissed it before I got to the technical pain in the arse you describe it being in other comments.
Butt, lmao. Now Mastodon has disowned the term they should start calling their messages toots.
I get to make n-many "midwit" decisions in life and retain a certain success envelope / gradient. I'm happy for this to be one of them.
Just think about all of the everyday decisions being made just like this. People passing over your resume because they don't like your font, etc. This kind of petty little thing bears an absolutely astronomically impact on the deterministic evolution of the universe.