Scuttlebutt social network: a decentralised platform
scuttlebutt.nz
scuttlebutt.nz
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
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.
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.
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.
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.
ssb/ssbc is a fun and cool project built on solid code by smart people.
The last 3 times I tried to use it the ~5 projects you had to run/put together to get any higher-level usable application were always in some way incompatible with each other, as they always seem to be in a constant mode of refactoring. Figuring out a set of compatible versions looked like more like a dark ritual than anything else.
Nobody was ever able to coalesce a coherent UX/UI around ssb, the core contributors at the time weren't interested in scaling the network without outside funding.
I was working on implementing lighting fast discovery for ssb using a distributed BitTorrent-like tracker. Getting onto the ssb network took way too long. Still, there were not many users on the network, and nobody seemed interested in growing.
Blockchain tech was used to assure that messages created by others had not been altered in transit.
SSB ran into design limitations when the more recent developers tried to imitate something like Mastodon. It can work, but it's definitely idiosyncratic. It does tend to grow a large db, but space is rather cheap these days.
https://www.manyver.se/blog/2023-05-05
He is pivoting into a new protocol which is intended to preserve the community aspect of SSB, while providing important factors, like the need to delete previous posts.
Its horribly under rated and horribly under invested in.
Its core data structure is a personal blockchain whose consensus scheme is a proof of signature and a proof of history (through chained hashes). There is no global consensus, identity is fiat as it is in the real world.
This makes the data structure gossipable and verifiable.
It has scaling challenges. It needs to be turned into a blocktree to support multi-device support. The content needs to be moved out of the tree.
But most of this is solvable with very little effort.
Scuttlebutt is an overlay network for the internet that enables us to build a truly open web.
Its one step away from making humans, their devices, and their content, addressable for the web in a meaningful way.
That small data structure removes the need for a central server.
The future will remember what dtarr did on a sailboat.
Take an RSS feed and do the following:
* Hash each entry in your RSS feed including the hash from the previous entry in the feed
* Sign that hash with your private key
You now have the original SSB data structure!
It has overhead. It adds 64bytes for the signature and 32bytes for the hash.
But that overhead is pretty small for most RSS feeds I've seen.
Secure Scuttlebutt - https://news.ycombinator.com/item?id=34480864 - Jan 2023 (82 comments)
Ask HN: Anyone got experience using Scuttlebutt? Thoughts? - https://news.ycombinator.com/item?id=29974051 - Jan 2022 (4 comments)
Scuttlebutt Protocol Guide - https://news.ycombinator.com/item?id=29672518 - Dec 2021 (35 comments)
Scuttlebutt: Decentralised, off-grid, mesh network and self-hosted social media - https://news.ycombinator.com/item?id=28612591 - Sept 2021 (3 comments)
Scuttlebutt – A decentralized secure gossip platform - https://news.ycombinator.com/item?id=25713830 - Jan 2021 (164 comments)
What Is Scuttlebutt? - https://news.ycombinator.com/item?id=22915460 - April 2020 (40 comments)
Scuttlebot: Peer-to-peer database, identity provider, and messaging system - https://news.ycombinator.com/item?id=22909984 - April 2020 (116 comments)
Planetary: a VC backed social network built on Scuttlebutt, out of stealth - https://news.ycombinator.com/item?id=22123238 - Jan 2020 (5 comments)
SSB Rooms: a new server type for Scuttlebutt - https://news.ycombinator.com/item?id=20828356 - Aug 2019 (32 comments)
Scuttlebutt, a Decentralized Alternative to Facebook - https://news.ycombinator.com/item?id=16877603 - April 2018 (342 comments)
Patchwork – Decentralized messaging and sharing app built on Secure Scuttlebutt - https://news.ycombinator.com/item?id=16273096 - Jan 2018 (64 comments)
Scuttlebutt – A decentralised secure gossip platform - https://news.ycombinator.com/item?id=15890911 - Dec 2017 (5 comments)
Extending Scuttlebutt with Annah - https://news.ycombinator.com/item?id=15502924 - Oct 2017 (1 comment)
Scuttlebot peer-to-peer log store - https://news.ycombinator.com/item?id=14409187 - May 2017 (10 comments)
An off-grid social network - https://news.ycombinator.com/item?id=14050049 - April 2017 (366 comments)
You login to Netflix and they deliver you a video file. Millions of people have access to Netflix's video files.
But access is The Pirate Bay. Rights are Netflix.
Just because you have access to a car doesn't mean you have a right to your car.
Just because you have access to a house doesn't mean you have a right to the house.
Just because you have access to a video doesn't mean you have a right to the video.
Just because Big Corp has access to your data doesn't mean they have a right to your data.
Your data is your data. It's time we remember that and build equity back into the web.
And then we need to work back from equity to access control to enforce equity.
https://web.archive.org/web/20230416142631/https://scuttlebo...
Scuttlebot users encrypted messages onto their append-only log towards recipients using their ed25519 private signing key converted to an ed25519curve encryption key.
This made it possible to send private messages that you could open if you had the private signing key that the messages were directed towards.
Back in the day you could actually send messages using "Private Box" to up to 7 recipients! by appending them to your feed of course.
https://web.archive.org/web/20230322134617/https://scuttlebo...
https://www.theatlantic.com/technology/archive/2017/05/meet-...
Mr Tarr still lives on a boat!
But Nostr was launched as a response to SSB: https://fiatjaf.com/nostr.html (scroll down to 'the problem with SSB' section)
iykyk
All people are rather different. No matter who you are, the art of popularity is the art of attracting people who are unlike you. Just because most people are unlike you, and unlike each other. Yes, this assumes removing some nice edginess, and appearing slightly generic.
Personally, I respect the effort to stand out in the sea (get it?) of social platforms.
Fortunately scuttlebutt is the protocol, which I guess is fine.
I love the parallelism between 'scuttlebutt' and 'water cooler talk' .. they both describe gossip and they are both named for people standing around a source of drinking water telling stories.