All great for the vibes, but _personally_ I'd rather read tutorials on how to get it running easily on an old solar powered raspberry pi, or how to install it on my dad's phone. The introductory video [0] to Scuttlebutt is an excellent example of concise, hands down, brief explanation on why this software is important (vibes + useful). Tutorials and brief explanation change the future better than solarpunk short stories. Rock on!
The getting started guide [1] is pretty comprehensive, I think. Let me know if there's something you think is missing. There phone version is _very_ alpha still. Installing it on your solar powered raspberry pi is just a matter of downloading the AppImage from the releases page [2].
I'd also note that if you actually have a solar powered raspberry you'll probably fit right in. There are a lot of "solarpunk" people on the network.
forgot to mention. There's a post with instructions [1] for setting up scuttlebutt on a Raspberry Pi Pirate box. I'd link you to it on the web but the user has chosen not to have their posts shown on our public gateways, but if you join the network you can just throw this in the search field and you'll see all the details.
Awesome! I've been using patchwork for some days and was always curious how to navigate to these ssb:// link i see thrown in places.
You just throw it in the search field and you'll see all the details! top!
Is there a concise description of the ssb protocol somewhere? I tried reading the ssb website but it's too conversational; I can't get a grip on what the actual cryptography is.
There's someone working on a rust implementation at the moment. I can't find a link to the repository just now, but there's plenty of threads on it if you search 'rust' at the top right of patchwork (after installing and adding a pub.)
I'll find the repo and reply to this thread when I'm home later :)
There were some previous efforts towards a Go implementation, but I'm not sure how far along they got: https://github.com/maackle/ssb-igo
Thanks, I really like the core ideas of ssb but the nodejs implementation and lack of a security review give me a lot of professional reservations. I'm inclined to fork and use a more off the shelf method of securing p2p connections. The practice of binding a "secure" web-server to localhost is also a bit [dubious](https://security.stackexchange.com/questions/86773/how-secur...).
What's your reservations about it being implemented in nodejs? It's not my favourite technology stack either (I much prefer scala / haskell), but it hasn't deterred me from using it or contributing to the project.
Some of the code you might be interested is _in_ scuttlebutt, as in there's a git implementation that lives in this p2p database / network. It's called git-ssb, and it has a github like interface.
in addition to the already mentioned Rust implementation that's currently being worked on, i believe someone has already gotten some of the core functionality working in Red http://www.red-lang.org/
Congrats Dominic and co! I saw that even Julian Assange was recommending scuttlebutt on Twitter!!
A couple people have asked about browser based access and some people have replied that that wouldn't work?
Could somebody explain why? Me and Dominic have debated design a couple times, and on my own system we have P2P cryptographic identities working just fine in the browser (see https://hackernoon.com/so-you-want-to-build-a-p2p-twitter-wi... for an example), so this should be possible with scuttlebutt also. Could anyone explain further?
Sorry to semi-hijack your comment there, but, could you perhaps outline the functional differences (besides the extremely obvious ones like "it's not the same protocol") between Patchwork, Briar (Check the 34C3 talk on Briar if you find yourself unfamiliar with it: https://www.youtube.com/watch?v=iRJ8vIh3dVU - albeit I kind of doubt that'd end up the case), and secushare (see http://secushare.org/comparison)?
They seem to try to cover many of the same points, but they also seem to have quite a few differences. I primarily ask because secushare hasn't yet updated their comparison page to include Patchwork (although it already covers SSB), and because that same page has yet to account for the release version of Briar.
Edit:
Nevermind the difference to secushare, I've noticed secureshare has an entry on Patchwork in their FAQ, just not on their comparison page:
http://secushare.org/answers
Browser based access is absolutely possible. Not only that it exists.
It has 2 forms:
If you want a read-only version of the network there are a couple servers that do that. It's useful for showing people who aren't on ssb interesting conversations.
If you want to actually interact with the network that's possible too but there are... limitations / issues.
There are 2 aspects to this.
1) it's a distributed network. So, either you need to stick a client in the cloud with a web interface (Patchfoo [1] is just such a client, but the interface is.... meh) OR you need to run the entire client in your browser, and the problem with that is where do you store the data? You're going to quickly exceed the max of local store (i forget what that is but if you start following lots of people and they post photos you're going to exceed it).
2) You can't afford to loose your private key. SSB uses Public Key Encryption and as such if you loose your key you can no longer prove that you're you so you become disconnected from all your prior posts and people following the old you no longer get updates from "you" because "you" can't post as the old you anymore.
If you use multiple browsers then how would you sync the keys between them?
Also, SSB uses a blockchain for each user. If you have the same keys on multiple computers and one computer posts before it's synced up with the last post from the other computer then you've just forked your chain and it screws up everyone who's following you because you don't know which version of the chain each follower has ended up on.
(2) is a concern but ultimately depends upon the key management question - we already solved this and made an animated explainer videos of it: http://gun.js.org/explainers/data/security.html (and you can see a demo of it working in action in the parent posts, or just check the source code).
(3) the blockchain, yes that is problematic, and is exactly what me and Dominic were debating in 2014. If you use the CRDT approach (which is what we do) you don't have that problem.
So again, these are all things that have doable solutions, nothing can stop SSB!!! Not even pesky browsers.
Hi Mark. What's the underlying database used there?
SSB in the browser is a subproject we're pushing forwards sometimes, but it's progressing slowly. One of the main obstacles is IndexedDB which seems to be much worse (in many aspects) than LevelDB, upon which SSB used to base itself. Nowadays SSB is based on FlumeDB, which is often backed by just the filesystem. Then there are other obstacles like building P2P connections through WebRTC.
Yes yes yes WebRTC has been a ridiculous pain in the butt for me, which is why I still have websocket fallback as default - browsers really need to get their game together and improve WebRTC (I hear there is a new version coming up that should fix a lot of problems)
What database underneath for the demo? GUN of course, we added a framework called SEA (Security, Encryption, Authorization) which seamlessly integrates Web Crypto API in the background so app developers don't have to fuss with it directly or learn the Web Crypto API (which is poorly documented and very confusing, but a life saver that it is available at all!).
Huh, haven't heard of FlumeDB I will definitely check it out. Great progress BTW, super exciting to see the community grow!!! Yeah, IndexedDB has its quirks, I stuck with localStorage personally cause it works like a charm and is much faster than any perf I could get out of LevelDB (I must have been doing something wrong with Level, because it never worked as well as we were expecting).
I'm very excited to see a browser subproject of SSB, that will be great. If it helps at all, we're currently refactoring and modularizing SEA which may help with SSB in the browser even if gun isn't needed or used. Let me know!
Will this get an events organisation feature like Facebooks? Because if so, I'm sold. Or is it just like all of the other federated/distributed social networks that are limited to simple message feeds only?
It's already got an events organisation feature :). It's called 'gatherings' in patchwork (and other clients too.) Here's a screenshot of a gathering: https://imgur.com/PbB8R9q
Nope - it's not limited to simple message feeds. For example, I was able to implement a chess app and integrate it into one of the scuttlebutt viewer clients (patchbay): https://github.com/Happy0/ssb-chess. Someone's working on a Go (game) app too :).
There is an app for discussing and reviewing books too - and some of the messages for this app are rendered on the main feed too (alongside gatherings and other things.)
Well. I created a gathering. The UI gives me no indication of who can see it; if it's public or private. The UI gives me no indication of how I can "invite" people to it so they can see it (if it's even private).
You could create an issue on the patchwork github issues page (https://github.com/ssbc/patchwork/issues) outlining the changes you'd like to see, if you like :).
And / or start a thread in #new-people on scuttlebutt.
i would actually recommend ssb-pub [1] over ssb-easy-pub.
ssb-pub is private and has no ui. You generate invite codes on the command line. ssb-easy-pub does provide a web UI so that people can request invite codes easily BUT the codebase is in need of some TLC and is difficult to get running easily.
ssb-pub is trivial to set up, especially if you use the one-click installer.
such a wonderful community of folks there. i log on once every several days and sus leave pleased. also, it’s a nomadic group, and i’ve been pleased to meet a few other community members in person.
i recommend SSB to my friends as the place to find me if all hell breaks loose
How does this compare to Mastodon/GNU social? From what I can tell, this is inviting me to run a P2P program on my own system rather than on a server; is that just an implementation detail?
You've got it! You run a P2P system on your local machine... in theory, you don't need the internet to communicate. Messages can be sent via your friends hopping between LANs using the underlying gossip protocol.
it's like federation, but at the level of a user. Much easier to set up, much easier to curate / moderate what you want to see.
There's still emergent community in the space, it's just not tied to the politics of hardware
I wouldn't say it's "like federation" at all. In no scenario do you have an entire group of people who suddenly loose their accounts and connections if the owner of the "server" they connect to decides to stop hosting it (as has happened with many mastodon instances).
In addition in works offline (including images). Many of us catch up with friends and reply to their posts when on the train, plain, boat, road, whatever and sync up when we get to a net connection, or local connection to a local friend with SSB.
When someone else runs the server you use, and your account is tied to their server, you are at the whims of the server owner, and are not able to migrate your identity.
It does not work like that, the gateway will not be able to show anything, and if you would like to go through a gateway you would have to share your secret key with that Gateway, which means full control of your log.
The first time you use Secure Scuttlebutt will be boring because it will be an empty town, you will not have anything and you will not see anyone's feed either. The magic happens when you start following someone or you are at the same network as someone else your client start downloading the log of your friend and the log your friend have stored from their friends, and the feed is filled with information. You will even be able to view your social network offline and you will even be able to do comments in other peoples feeds and it will sync when you are online again.
Most likley you will not be on the same network as anyone else which means you will not be able to see anyone so the solution is to walk in to a pub where almost everyone in the town are
Although I understand the purpose of a new user having no data on first use I do not agree with it. Using a platform for the first time can be foreign and it eases the mind of the user if they can see what it would look like day-to-day. Maybe just have some test material and a very obvious button to wipe it clean when they are ready?
If you follow the instructions in the Getting Started Guide [1] it will not be "an empty town". That would be a pretty crappy getting-started experience.
Just connect to a pub and you'll find tons of content.
I would also recommend AGAINST ever doing `rm -rf ~/.ssb` as one commenter suggested. That will wipe out your keys, and thus your identity, and you'll never be able to post anything as that identity again (unless you backed up your secret file or connected it to another identity (advanced usage)).
If you're familiar with terminal, you can start the app, connect to a pub, have a play, and when you want to reset _everything_ including your identity, run :
```
rm -rf ~/.ssb
```
(this assumes mac / linux)
Next time you start Patchwork a new identity will be made and you'll be starting from fresh
owning your own pub is cool, but most of us don't bother because you really don't need one to use the system. Well, you don't need _your own_.
There's active work going on to improve the support for private groups.
if you do want to set up a pub i'd recommend ssb-pub. It's trivial to get up and running (but is command line only). easy-ssb-pub provides a web UI that your friends could request invites from but it needs some TLC right now.