A talk by @JonTheNiceGuy (Jon Spriggs)
Here’s how you win:
Secure Scuttlebutt
An offline first, peer to peer social network
Psst… Looking for the speaker notes? Press S. Move through the talk by pressing the “right” arrow.
Hi There! I’m Jon “The Nice Guy”, or Jon Spriggs, and today’s talk is called “Here’s how you win”, A talk about Secure Scuttlebutt which is an Offline First peer to peer social network.
Little fact about this talk; the title is based on a conversation about teaching people how to play a game. The conversation was with Ben Grubert from Inevitable
Here’s How You Win
Share your life
So how exactly will you win with this social network? Well, like all social networks, this one wants you to share your life. I can post text, pictures, and mark up my text with a simple formatting language called “Markdown”.
Here’s How You Win
Be yourself
Again, like many social networks, you tell people who you are, provide a picture and even assign yourself a nickname. Wouldn’t you believe it, I’m “Jon The Nice Guy” here!? One good thing about this network is that actually, you’re *really* that greyed out code at the top, starting @ and ending ed25519. If someone mentions you, they’ll actually link to your @/ed25519 code, so it’s always “you”. Talking about people mentioning you, I guess you should probably…
Here’s How You Win
Make friends
Make some friends. So, here’s a friend of mine…. Well, I’ve never actually met him, but he seems pretty cool. This is SoapDog who also gives talks at events. He’s not here, sadly. Notice that he’s got many nicknames. Some of those he assigned himself, and some of them others assigned him. Others can add their own avatars too, so you know that the person you’re referencing is your friend… if you want to!
Here’s How You Win
Gossip with your friends
And friends of friends
Once you’re friends with someone, you can chat with them. But you’re not only chatting with your friends, you’re also chatting with their friends too. You see, Scuttlebutt assumes that someone you’re talking to is probably going to be talking with their friends, so when your client syncs up with the rest of the network, it’s also picking up the content from your friends friends too – although it won’t show their content unless you’re also friends with them too. See, if I’m friends with {pick audience member A} and {another audience member B}, but if {A} isn’t online when I am, but {B} is, but {B} is online when {A} is, then I can collect {A}’s content from {B}, and {A} can get my content from {B} too. This is a part of the protocol called “Gossip”, and isn’t only used in Scuttlebutt, but it’s what I always think about when I hear the term. You can extend the reach of your gossip, but that takes longer to bootstrap each connection, and takes more data and bandwidth to do so!
Here’s How You Win
Post about things that interest you
Like Twitter, Facebook and now even Linked In, Hashtags are a thing. On Scuttlebutt, they’re called Channels, and you can follow them. Once you’re following a channel, whenever the channel is mentioned in a conversation it’ll pop up in that channel.
Here’s How You Win
Talk in private
The identity you have is actually a public/private key pairing. What this means is that we can publish an entry to SSB that the clients can’t decode unless they have the matching private key, and using Gossip, we know that this message will go to my friends, and their friends. It’s all quite smart really.
SSB was designed by Dominic Tarr in 2013, because he tended to sail a lot, and he wanted to take pictures when he was out at sea, but then when he came to shore he could sync his data with his family, and then go back out to sea, and catch up with what his family had sent him. As a result, the protocol was designed to be offline *by default* and only sync when it was convenient to do so. Later enhancements to the protocol allowed an initial connection to be established using mDNS – a local broadcast system, which annoyingly doesn’t work on this WiFi, or even over Bluetooth… but I couldn’t make that work last night either!
Here’s How You Win
GNU Terry Pratchett
Wait… What?
Don’t let your messages die
Once you’re connected to each other you exchange your message tree, a bit like doing a git pull or getting the latest part of the bitcoin block chain… which means, GNU TERRY PRATCHETT. Um, OK, so that’s not quite right. There’s a concept in one of the Pratchett books, where “A man is not dead while his name is spoken”. In Scuttlebutt, you can’t rewrite history like you can with Git, so you can’t ask your followers and friends to “forget” you sent a message saying “I like bananas” (which I don’t), so whenever you post in SSB, that’s it… there’s no take-back EXCEPT…
If all the people who know you forget about you, then your message will wither and vanish. But if even one other node remembers you, then when it comes back online, everyone it knows will know about your message. This also has some impact because right now you can’t have two machines sharing the same identity – I have a phone profile and a laptop profile. If you’re really clever, you can ensure that one machine is ABSOLUTELY NOT RUNNING before sharing the .ssb directory between non-phone OS machines, and starting the client on THE OTHER MACHINE, and it *will work*. If you don’t sync the machines back up before you swing back, you get into a Fork state and then everything gets messy. Don’t do that. Run multiple profiles, and ask people to befriend you on all of them.
Here’s How You Win
Don’t limit yourself to one application
I’ve mentioned phone OS and non phone OS applications. Well, there’s a few of them. There’s a command line tool and server called SBot, there’s the reference GUI tool, Patchwork, and there’s an app for Android, called Manyverse which is very much in beta, as we discovered last night!!. But that’s not all. there’s a few other GUI apps, there’s a web extension for Firefox, and there’s even chess apps, git services and even an NPM repository on SSB. But, I’d stick with Patchwork and Manyverse for right now!
I mentioned the command line client before. One major application of this is the Pub. A pub is basically an always-on node in the network. Anyone can run one, and it essentially just friends (or follows and is followed by) anyone who gets an invite. If you don’t join a pub, you can make friends with someone by being on the same network as them (except here, where they block client-to-client communications) and then follow them. But, a pub also opens you up to the wider SSB community. You’ll see more channels and people by going this way and you’ll probably have much more engagement with SSB.
Here’s How You Win
Be Decentralised
SSB has no central servers – it’s more like Git on Bittorrent than a webserver. While you can host a SSB pub on a server, you don’t need to do that.
Bad UX
Low Discoverability
Small Community
Risk of Cliques
Here’s How You Lose…?
Here’s How You Win
Give Secure Scuttlebutt A Try
Resume presentation
A talk by @JonTheNiceGuy (Jon Spriggs) Here’s how you win : Secure Scuttlebutt An offline first, peer to peer social network Psst… Looking for the speaker notes? Press S. Move through the talk by pressing the “right” arrow. Hi There! I’m Jon “The Nice Guy”, or Jon Spriggs, and today’s talk is called “Here’s how you win”, A talk about Secure Scuttlebutt which is an Offline First peer to peer social network.
Little fact about this talk; the title is based on a conversation about teaching people how to play a game. The conversation was with Ben Grubert from Inevitable