SSB-JS partial replication implementation notes

This document consists of loose thoughts about how to structure an implementation of ssb-secure-partial-replication in the JavaScript stack.

Components

Meta feeds

Bendy butt / DB2

RPC/EBT changes

Feed replicator

ssbc/ssb-replication-scheduler#5

Netsim tests

We should be able to use netsim to test all of this new stuff against the existing and between implementations (go, js). Probably start with a base case of ~100 peers and 100k messages and test: 10, 30, 90% meta feeds.

Example app

Fusion identity (Stretch goal)

fusion identity spec

A component for:

  • Doing operations on identities including inviting, attestation etc.
  • Query methods for the state

Should probably be written using ssb-crut:

Set replication (Stretch goal)

Implement the protocol described in Aljoscha's master thesis. Maybe start with a simplified version

Related work:

Network identity? (Stretch goal)

https://github.com/ssb-ngi-pointer/ssb-network-identity-spec

DONE

Index writer

A component responsible for writing and updating the index feeds.

Implementation: ssb-index-feed-writer

Netsim

A network simulator that supports JS & go nodes.

Fixed SSB-ebt

A EBT component that only takes care of EBT replication for a given subset of feeds. Could start with simple-ebt.

SSB-friends

SSB friends has been untangled from ssb-replicate and should be run in that mode.