I’m researching how to build a offline-first web application (PWA). It has a group of nodes running on a subnet and only one peer at a time talks to the cloud, the primary, if the primary goes down. The other peers need to become aware and since they all share the same database via orbit-db anyone can then become the primary or stay offline and continue to sync data on the lan.
It’s not clear how to do this from the Ipfs docs (js-ipfs). Really I’d just like to know if it’s possible.
Orbit-db (built on js-ipfs) intro does say “making OrbitDB an excellent choice for … offline-first web applications”
I suppose I could also build a signalling server into every node (PWA instance on each host) and if the current primary node which was also the acting signalling server went down and the peers lost contact with it another could be turned on somehow?
From what I can see adding to the bootstrap list seems to be a way to handle private network setups.
I can’t see a way to add this private network bootstrap list to the js-ipfs new IPFS config.
Maybe something like const IPFS = require(‘ipfs’)
const OrbitDB = require(‘orbit-db’)
const ipfs = new IPFS()
ipfs.on(‘ready’, () => {
const orbitdb = new OrbitDB(ipfs)
})
ipfs.bootstrap.add … when the ssdp initially returns a list and then any new nodes that pop up on the private betwork.
But then would each peer have a bootstrap node list of all the other peers on the private network except itself. Is that how it’s supposed to work?