ssbc/ssb-ebt

Name: ssb-ebt

Owner: Secure Scuttlebutt Consortium

Description: secure scuttlebutt replication with epidemic-broadcast-trees

Created: 2017-04-04 07:57:03.0

Updated: 2018-05-21 20:17:23.0

Pushed: 2018-05-23 00:50:31.0

Homepage:

Size: 103

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

ssb-ebt

Adapter for epidemic-broadcast-trees to secure-scuttlebutt

testing/debugging

There are several scripts in ./debug which I used for testing ebt replicaiton.

use ./debug/remote.js <address> to connect to an sbot running ebt and replicate. Running this won't store anything locally, it will just download everything drop it on the floor. This is used to test performance of ebt on a server.

I normally see values between 2k and 3k messages per second, that replicates 100k messages in under a minute.

api
ebt.replicate (opts)

creates a duplex replication stream to the remote peer. when two peers connect, the peer who initiated the call (the client) should call this. It is not intended to be called by the user.

ebt.request (feedId, toReplicate)

request that feedId be replicated. toReplicate is a boolean, replicate feed if true. If set to false, replication is immediately stopped.

ebt.peerStatus (id, cb)

query the status of replication for id. returns a small data structure showing the replication state for all peers we are currently connected to.

output looks like this:


d": "@EMovhfIrFk4NihAKnRNhrfRaqIhBv1Wj8pTxJNgvCCY=.ed25519",
eq": 13293, //the sequence we have locally.
eers": {
//where each of these peers are up to:
"@TRE4lNNXrtx3KK9Tgks2so2PjCP6w9tRvsy7wyqiyo4=.ed25519": {
  "seq": 13293, //the sequence this peer has acknowledged, we definitely know they have this number.
  "replicating": {
    "tx": true,
    "rx": true,
    "sent": 13293, //the sequence we have sent to this peer. They _probably_ have this, but not gauranteed.
    "requested": 13293 //the sequence we requested from this peer
  }
},
"@h1fDsZgwBtZndnRDHCFV84TMZYl16m3zhyTTQsE/V94=.ed25519": {
  "seq": 13293,
  "replicating": {
    "tx": true,
    "rx": false,
    "sent": 13293,
    "requested": 13293
  }
}


License

MIT


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.