Scuttleverse Newsletter #18 (Winter edition)
Winter Edition 2020 Edition
Hi-ho butts, and friends, and extended internet-family!
The newsletter staff (hi it's only me) took a holiday break. It's back now, in the Future Year Twenty Twenty-one. Let's have a look at the shenanigans that's being going on in the newsletter's brief absence, yes?
Community
➫ Community ponderings by a community member
The lovely umhi was (quite a while back) interviewed in write.as. It's a sprawling & down-to-earth interview, touching on notions of communities, romantic x forward-looking visions of the web, and ssb. It's a great read, have a look.
Scuttlebutt is a welcoming neighbourhood by the water where I go to escape the city noise, reflect & write, meet new people & socialize, and learn about new tools & spaces I might explore. And Neocities is the district where I currently reside, and which feels like a remnant of the colorful city that I first roamed & became inspired by when I arrived here.
➫ Breadstans Unite
gorgeous gluten-free loaves
The Scuttleverse seems abundant with bread-based enthusiasm from where I am sitting. Recently, Wingy Scruffhead shared some beautiful gluten-free loaves in one of the scuttleverse's proliferating breadthreads (brheads) [01].
In personal news, I recently started the process of awakening my starter–it's slow & steady in the northern hemisphere's wintery climate.
➫ Gong Fu Tea x Maintainer News
gong fu tea ceremony
SoapDog chimes in with a thread on the joys of discovering the gong fu tea ceremony [02].
Also in SoapDog news: an announcement [03] that he was stepping down as an SSB maintainer for the moment to refocus on writing (words, not code!). The community heartily supported his decision.
➫ Common Social Norms in the Scuttleverse
skyebend shared a lovely list [04] of some of the scuttleverse's common (positive) social norms and behaviours, which have been cultivated over the years by talented community gardeners. I've listed a few below, but check out the full list in your client of choice.
Here are the first three (read the post for the remainder!)
welcoming #new-people
being vulnerable
reminding folks not to call each other names or troll
➫ Ye Greate Moderatione Threade
Andre–prolific writer, developer, and artisan coffee brewer–started a thread soliciting thoughts on the future of Scuttlebutt moderation, put into motion by recent world events. The thread [05] has 60+ thoughtful replies at time of writing, from all kinds of perspectives. It is a sobering & reflective read, and anyone thinking about these questions is invited to take part in the community knowledge being put on display.
➫ Reformed (Reluctant) BDFL, Current Boat Builder
benevolent dominic for life
Dominic has become a youtuber restoring boats! Follow his catamaran restoring adventures on SSB [06] or on youtube (don't forget to like subscribe & muxrpc)
➫ Scuttlebutt, På Danska
Abekonge wrote a Danish user's guide to Scuttlebutt: [07]
➫ Solarpunk Salad Bar
neon-lighted saladbar
The user Tales from the Dork Web shares their solarpunk salad bar [08].
➫ Freedom on the Island
mix took to posting updates from a weekend gathering held by & for the Ahau team [09]
🔗 Community Links
- [01]: %IauBBinbeOhQXim3t5r7pDjyzcHzTS8QlLtX08E3w/c=.sha256 breadheads unite
- [02]: %CAeb7585KVADHzlDXiVgqymrCTZ1xkyO6aC8pMMqmbc=.sha256 tea posting
- [03]: %j0OeHbO566rb/nykmGP4fq/L9gJQV5bhE0tkH0HkPjU=.sha256 soapdog's maintainer post
- [04]: %6aVAYuUav2g/mkwG7y2Rs474G+TFiTUFhqMgUem3+uY=.sha256 ssb's pro-social behaviours
- [05]: %LKqAORPSwWHNrEzQGgXRVGzmy8xOej71685p26a6PSg=.sha256 the great moderation thread
- [06]: %lVps/l/RkQdArMQyobpzcmz3U9D+rOwJaORZL23ClXQ=.sha256 dominic's boat building
- [07]: %WGHGFoScapjelhrJ0EMmOdukg1r4LVU4ny1taDUBY18=.sha256 ssb user guide in danish
- [08]: %WGHGFoScapjelhrJ0EMmOdukg1r4LVU4ny1taDUBY18=.sha256 solarpunk salad bar
- [09]: %5BqIJYHPndTFL+gsRbvHdLV9mMhbgMkdH4spoevXw2M=.sha256 nz sightseeing with mix
Finances
Powersource asks if anyone wants to get paid to work more on oasis (progress updates in the thread!) [10]
🔗 Finances Links
- [10]: %K+lxhXlK870neq3a5eAg5Dteoh3e9PCcizBkiLssOUA=.sha256 oasis work thread
Technical
➫ Private Groups Snippets
mix shares an example snippet of how easy private groups are to use when interacting via the module ssb-tribes: [11]
➫ If It Quacks Like a Doc, and Walks Like A Doc, Then It Must Be New Developer Docs
New technical documentation has emerged on the relatively recently uncovered dev.scuttlebutt.nz. Most recently added was an overview of the Golang codebase and SSB implementation.
➫ Academic Corner: Set Reconciliation Paper, 9 Min SSB Presentation
Erick, the previous editor of this esteemed newsletter, shared [12] a research-based article he came over. The article details the use of Bloom filters for "set reconciliation between replicas", and is a new piece by Martin Kleppman.
Also mentioned: "Byzantine Eventual Consistency and the Fundamental Limits of Peer-to-Peer Databases" by Martin Kleppmann, Heidi Howard
Also from Erick: a 9 min presentation he made on gossiping with SSB as part of his post-doc work. It was put together for the 1st International Workshop on Distributed Infrastructure for Common Good: [13]
➫ Swiss Security (using OpenPGP Smartcards)
cft shares the following (emphasis mine): [14]
It took some effort but finally here we are: a proof-of-concept that all ed25519 ops needed for SSB can be offloaded to a security dongle. I worked with the Yubikey 5 NFC that can be accessed via USB but also NFC. Currently it is a standalone library for USB and is not integrated in any SSB client software.
[The use of a ed25510-enabled security token] prevents that secret keys end up unencrypted in backups where they do not belong.
Because these smartcard tokens can also store small amounts of user data, it is possible to keep state, for example the tip of a hash chain, which can help to avoid accidental forks.
See the code and more in the repository.
➫ NGI Takeoff
Wheeeew–this is going to get wordy, 'cause a heck of a lot is going down. The NGI Pointer crew (detailed in the previous newsletter) has gotten started!
Arj & Andre have been hard at work collaborating on the nodejs side of things—optimizing syncing speed and benchmarks like a beaver optimizes sustainable wetlands. At the same time, Cryptix is focusing on the golang codebase—doing cleanup, rewrites, and continuing work on private groups and epidemic broadcast trees, with future work landing on supporting rooms later this spring. Zenna has been busy facilitating meetings and negotiating with the funders & writing up contracts. That's the summary, but let's break it all down and provide links, so you readers can get dirty in the details.
To keep apprised of the latest NGI updates, keep an eye on the #ngipointer channel.
NGI: Go
Cryptix loves his branches, so make sure to check the active branches of the go code to see where the focus is currently at.
Relevant Go pull requests:
- Recently merged private groups code
- Super duper mega PR for private groups
- Epidemic Broadcast Trees WIP
NGI: 10x faster indexing
ssb-db2 benchmarks
Arj shared some preliminary results for the node-side of things with a (roughly) 10x speed increase when indexing [15].
For the latest benchmarks, see the github actions comments in the NGI Pointer Org's PRs (example).
NGI: Rooms 2
Rooms are a concept pioneered by Andre & Manyverse; they are basically a server that exists to bridge two SSB peers in realtime, without polluting the social graph–pub servers issue follows to the people invited to it, often causing them to balloon into hundreds and thousands of follows, which connects people who might not want to be connected.
Andre explains rooms:
A room server is an SSB peer with privileged internet presence (not behind NATs) that allows its clients to perform tunneled connections with tunnel addresses.
Rooms 2 is currently being designed–one facet of improvement is increased privacy for room users–and is soon to be implemented in both nodejs & golang. See the linked specification for more details–and you should check it out. The spec is highly hyperlinked and feels a bit like walking through an extremely specific and nerdy text adventure, in a way.
NGI: Diaries
As part of the NGI Pointer grant, the dev team has been keeping the community updated through public dev diaries:
- Zenna's ngi pointer diary: [16]
- Andre's (often updated) ngi pointer diary [17]
- andre: improved paginate performance by 2000x
- Arj's ngi pointer diary: [18]
- Cryptix's ngi pointer diary:
- pt. 1 [19]
- pt. 2 [20]
➫ Manyverse Releases
daaark moooode
Manyverse's has had a couple of releases since our last dance:
Included in these releases are:
- interface improvements
- dark mode
- bug fixes
- ssb-db2 is now being used for reactions, as a cautious first step before the next release, which Andre believes will be mostly (if not entirely) using ssb-db2 for queries
Building a new database for SSB is a significant challenge, since the database is the central component in any SSB app, and traditionally has been handled by many complex modules invented by Dominic Tarr. Anders and I were really busy (we made 36 PRs in December alone) building a faster replacement in just 3 months, and in December we fixed a ton of corner case bugs, while keeping an eye on performance.
Read the full posts for more information and links.
Oh yeah: Manyverse Desktop has also started development. Busy, busy.
➫ An Oasis In A Desert of (Recently Updated Desktop) Clients
The Oasis changes, discussed in the last missive were merged! A new Oasis Desktop Release was also authored. Hooray!
That means Oasis can now be used to post images (with exif data removal), revise & render work-in-progress posts (that have yet to be posted) and other changes.
It's also looking like more updates will be landing right in the next few months to come from new development initiatives.
➫ SSB Browser Update
node diagram over ssb browser components
Arj chimed in with an update from the SSB Browser side of things. SSB Browser is a SSB client and interface that is built to work directly in modern web browsers, without any extensions, and to be easily extensible. Its structure is modular, with a decoupled core—handling all ssb-specific logic—that can easily be used to build your own browser client. [23]
In this update, Anders focused on integrating the latest NGI Pointer code (ssb-db2, jitDB).
I’m really happy with the results from the perspective of an application developer as the new jitdb syntax is a lot easier to write and understand. Visually from the end users perspective there is no change in this release.
I'm honestly a bit tingly about the jitdb syntax :~
➫ Muddy Patchboots on the Ground
From August, on patchboot: [24]
Why not use gossip for the client itself? Asking friends for software recommendations seems like a good idea, why not do this automatically on Scuttlebutt?
The idea of PatchBoot is to provide a Scuttlebutt client with no other feature than loading apps found in the scuttleverse.
Rabbit holes for exploration:
- Scuttle shell browser [25]
- Patchboot inside Firefox [26]
- Patchgraph: a patchboot app [27]
➫ Planetary News
Planetary is coming out of beta! [28]
We’re in the final stages of the public launch for Planetary. This is a major milestone for us. The app isn’t perfect, but we do feel it’s ready to get out there. In order to get some attention around it, it’d be really awesome if folks in the #scuttlebutt community could help post about it, on the fediverse, twitter, blogs
🔗 Technical Links
- [11]: %CYCXlGf/lXA19pDzYbxOG+9/6subQXnit6+8yhFKTx0=.sha256 mix's private groups snippets
- [12]: %LhGQDiDffdHnwPsyX4QDOF6jvvmoNiPNg0inSApa6VU=.sha256 set reconciliation article
- [13]: %39A+FtJ88pqgFJzNyBPFwYGb9w0Tcpuhwyej5R4ivNk=.sha256 erick's ssb gossip presentation
- [14]: %Q6/Hft4cvxIxm6uiUPjqlG8ozd2pbfbX4D82m5J8nn4=.sha256 cft's security hardware token
- [15]: %sqVE2AIvO1eXrJpwumaGhQ0FaIU11z1btJeRDCcOY/E=.sha256 arj's 10x benchmark improvment
- [16]: %in/uRzA0DwDr/8a6wF7722RDnhe7Qao28w49WUWQC9k=.sha256 zenna's dev diary
- [17]: %HqvC29wmrW64/mbsL+6Je4mNwMNazxW9iSBb3Wya70c=.sha256 andre's dev diary
- [18]: %AQNGc9G+6mWgilOxQFQJXcRdougXYLmqcHExBPFXXmk=.sha256 arj's dev diary
- [19]: %i6pDs9WVWuG6QvcUIDejRumMj0Q0pFH6XD5SDq7vSUQ=.sha256 cryptix's dev diary, pt 1
- [20]: %1ts45jTyl1H+paGP9iUBa4D1/QX6UqDC+DJfpZ7Fc2U=.sha256 cryptix's dev diary, pt 2
- [21]: %4gkmvdTEXL49/2pBZLSKK+7+OOJQ2KnbCl2GmGqWvpM=.sha256 manyverse dec release
- [22]: %kMZR0b/NP2OtlCw+6sMdcT2RdbHxCITvKmB9IJ7ZThw=.sha256 manyverse jan release
- [23]: %kMZR0b/NP2OtlCw+6sMdcT2RdbHxCITvKmB9IJ7ZThw=.sha256 arj's ssb browser update
- [24]: %uaUQT4R5p13Kje9rcZcrC5l6orSxnNfPNxepH6vpfYE=.sha256 patchboot
- [25]: %UHLagbnY2ClhCLS7nCshl7Oci3p6nPMHN+EcYRsqWiA=.sha256 patchboot + scuttle shell browser
- [26]: %Mv0Jr5X+ujVmiVKyoRKHNKMvBSkrewundFLYFUsMLrg=.sha256 patchboot in firefox
- [27]: %jcDfhh7DL8p8nFAiH9wG1IpBlJ3BZzNIbwwiYUa+wPM=.sha256 patchgraph, a patchboot app
- [28]: %kXEXGmyNyo+uKkcySMwghVKpvRmgxb6u9RBFZYrY4BM=.sha256 planetary release announcement
Closing off
A late one, but a good one—at least I hope so! Take care of yourselves, butts, and take care of each other. Happy new year.
2021-01-13
cblgh, signing off for now