Isaac Schlueter (creator of npm) puts it very well: agreement is very difficult, so limit the amount of agreement necessary.
i.e. write modules.
With less agreement required, it's easier to find points of agreement, and so we can have more agreements overall.
Secure-scuttlebutt vs scuttlebutt vs scuttlebot vs sbot?
An explanation of terms, repos and project history
gossip protocolthat synchronises messages via a vector clock of per-node timestamps or sequences. Dominic got this name from an amazon paper "Efficient Reconciliation and Flow Control for Anti-Entropy Protocols". This is the original scuttlebutt module which should now be known as "insecure scuttlebutt". This repo is generally no longer used by the ssb community.
secure-scuttlebutt: this is the database part of ssb. Previously this term referred to the protocol/database as a whole.
scuttlebot: this repo adds networking behaviour to the database (secure-scuttlebutt).
sbot: short for scuttlebot, also the cli command name.
There have been suggestions to rename some repos to better reflect their use and purpose:
pull-stream: minimal composable streams with lazy back pressure and error propagation
mutant: lazy observables and reactive html elements
secure-scuttlebutt: database of unforgable append-only feeds, optimized for efficient peer-to-peer replication
flumedb: modular database where logs are moved with streams
ssb-keys: keyfile operations for ssb
ssb-feed: create a secure-scuttlebutt feed
ssb-config: standard configuration for ssb
ssb-ref: check if a string is a valid ssb-reference
secret-handshake: secure-channel based on a a mutually authenticating key agreement handshake, with forward secure identity metadata.
private-box: private message between two parties (with no
scuttlebot: peer-to-peer log store used as a database, identity provider, and messaging system
muxrpc: lightweight multiplexed rpc
mdmanifest: markdown manifests for mux rpc apis
muxrpcli: command-line interface to mux rpc servers
secret-stack: connect peers to each other using secret-handshakes
ssb-query: a functional query engine, that operates over streams of js objects, and can be optimized via database indexes.
ssb-blobs: blob gossiping ssb-subprotocol
multiblob: a content-addressable-store that supports multiple hashing algorithms
ssb-ebt: replication with epidemic-broadcast-trees
easy-ssb-pub: an easy-to-host server that runs an SSB "Pub"
ssb-pub: easily host your own ssb pub in a docker container
patchcore: a shared library to build ssb apps
ssb-client: client library to scuttlebot
ssb-party: get a scuttlebot client instance. if scuttlebot isn't running, start it in the background, and keep it running until all the clients have disconnected.
ssb-notifier: desktop notifications for secure-scuttlebutt activity
ssb-avatar: query for the avatar that an ssb feed has been assigned
ssb-mentions: extract the mentions in a ssb message
ssb-markdown: render ssb messages to markdown.
ssb-sort: sort a collection of messages by their causal order
react-native-node: Node.js background process for React Native apps, fundamental for running sbot on mobile devices
react-native-ssb-shims: basic shims required to insert modules from the SSB ecosystem into React Native apps
react-native-scuttlebot: scuttlebot but for React Native applications
react-native-ssb-client: like ssb-client, but runs in React Native apps
react-native-ssb-client-keys: keyfile operations for SSB, to be used from the client-side of React Native apps