
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
ssb-server
Advanced tools
ssb-server is an open source peer-to-peer log store used as a database, identity provider, and messaging system. It has:
ssb-server behaves just like a Kappa Architecture DB. In the background, it syncs with known peers. Peers do not have to be trusted, and can share logs and files on behalf of other peers, as each log is an unforgeable append-only message feed. This means ssb-servers comprise a global gossip-protocol mesh without any host dependencies.
If you are looking to use ssb-server to run a pub, consider using ssb-minimal-pub-server instead.
Join us in #scuttlebutt on freenode.
a known-working shrinkwrapped version will be installed.
npm install -g ssb-server
There are already several applications built on ssb-server, one of the best ways to learn about secure-scuttlebutt is to poke around in these applications.
it is recommended to get started with patchwork, and then look into git-ssb and patchbay.
# Start the server with extra log detail
# Leave this running in its own terminal/window
ssb-server start --logging.level=info
# publish a message
ssb-server publish --type post --text "My First Post!"
# stream all messages in all feeds, ordered by publish time
ssb-server feed
# stream all messages in all feeds, ordered by receive time
ssb-server log
# stream all messages by one feed, ordered by sequence number
ssb-server hist --id $FEED_ID
var Server = require('ssb-server')
var config = require('ssb-config')
var fs = require('fs')
var path = require('path')
// add plugins
Server
.use(require('ssb-master'))
.use(require('ssb-gossip'))
.use(require('ssb-replicate'))
.use(require('ssb-backlinks'))
var server = Server(config)
// save an updated list of methods this server has made public
// in a location that ssb-client will know to check
var manifest = server.getManifest()
fs.writeFileSync(
path.join(config.path, 'manifest.json'), // ~/.ssb/manifest.json
JSON.stringify(manifest)
)
see: github.com/ssbc/ssb-config for custom configuration.
elsewhere:
var pull = require('pull-stream')
var Client = require('ssb-client')
// create a ssb-server client using default settings
// (server at localhost:8080, using key found at ~/.ssb/secret, and manifest we wrote to `~/.ssb/manifest.json` above)
Client(function (err, server) {
if (err) throw err
// publish a message
server.publish({ type: 'post', text: 'My First Post!' }, function (err, msg) {
// msg.key == hash(msg.value)
// msg.value.author == your id
// msg.value.content == { type: 'post', text: 'My First Post!' }
// ...
})
// stream all messages in all feeds, ordered by publish time
pull(
server.createFeedStream(),
pull.collect(function (err, msgs) {
// msgs[0].key == hash(msgs[0].value)
// msgs[0].value...
})
)
// stream all messages in all feeds, ordered by receive time
pull(
server.createLogStream(),
pull.collect(function (err, msgs) {
// msgs[0].key == hash(msgs[0].value)
// msgs[0].value...
})
)
// stream all messages by one feed, ordered by sequence number
pull(
server.createHistoryStream({ id: < feedId > }),
pull.collect(function (err, msgs) {
// msgs[0].key == hash(msgs[0].value)
// msgs[0].value...
})
)
})
ssb-server's message-based data structure makes it ideal for mail and forum applications (see Patchwork). However, it is sufficiently general to be used to build:
Because ssb-server doesn't depend on hosts, its users can synchronize over WiFi or any other connective medium, making it great for Sneakernets.
ssb-server is eventually-consistent with peers, and requires exterior coordination to create strictly-ordered transactions. Therefore, by itself, it would probably make a poor choice for implementing a crypto-currency. (We get asked that a lot.)
MIT
FAQs
network protocol layer for secure-scuttlebutt
We found that ssb-server demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 17 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.