Patchwork – Decentralized messaging and sharing app built on Secure Scuttlebutt
github.com
github.com
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!
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.
[1]: https://www.scuttlebutt.nz/getting-started.html [2]: https://github.com/ssbc/patchwork/releases
[1] %DI98y9SukdIcd0RW5mp9MRc0mxHziGLP/+PNUu59pO8=.sha256
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
By the way, there's some beautiful protocol docs for scuttlebutt here: https://ssbc.github.io/scuttlebutt-protocol-guide/ =]
I guess it was muscle memory since I was looking at the ssb-igo repo earlier.
I wonder if a security review is something that can be funded through the open collective that is being set up (https://opencollective.com/secure-scuttlebutt-consortium ) or some other funding source.
By the way, the repositories that I mentioned earlier for the Rust implementation of the protocol in progress are mostly here:
https://www.csoonline.com/article/3214624/security/malicious... The sprawling dependencies alongside potential security/breaking issues are huge. It is a large and vulnerable attack surface.
https://github.com/pferreir/pysecrethandshake
I've also implemented packet-stream on top of it (and intend to produce a proof of concept client at some point):
https://github.com/pferreir/pyssb
My time got diverted into other things, but if someone wants to help out, feel free to contact me on SSB (ub|k) or Twitter (@pferreir).
https://github.com/clehner/git-ssb Here's a window into this p2p land : https://git.scuttlebot.io/ go gentle on it, it's a little server
Welcome to the cloud proper
Check them out here : https://www.scuttlebutt.nz/applications.html
That site also has a good FAQ and other background info.
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?
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
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!
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.
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.)
More information about apps here: https://www.scuttlebutt.nz/applications.html
Let me know if you need a hand with any of the setup.
The UI could do with some work.
And / or start a thread in #new-people on scuttlebutt.
Can you set up a private, invite only pub? Say for an organization or team?
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.
i recommend SSB to my friends as the place to find me if all hell breaks loose
What do you mean by this? Is there some sort of hardware politics battle in the GNU social community or something?
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.
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
You will find a list of public pubs which can be used in Patchwork to access other feeds https://github.com/ssbc/scuttlebot/wiki/Pub-Servers
What the Pub solve is that you can download a bunch of peoples feed without they and their friends have to be online.
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
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)).
[1] http://decent.gwenbell.com/
ETA: More explanation directly on http://gwenbell.com
we also have a git-ssb gateway at https://git.heropunch.io
sbot isn't super fast so be patient but don't worry about overloading the server we have plenty of extra capacity
You got me in! Thanks for sharing.
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.
I decided to host a pub for tech enthusiasts.
technology.ssb-pub.com
You should probably mention it with the #scuttlebutt tag as well as just saying hello in #new-people :)