mirror of
https://github.com/orbitdb/orbitdb.git
synced 2025-06-27 00:12:29 +00:00

* docs: Access controllers. * test: Re-open an existing db using its address. * docs: Simple db interaction. * docs: Basic Identities. * docs: Storage. * docs: Implementing a custom database. * docs: Example OrbitDB AC. * docs: Use identity id when customizing access. * docs: canAppend. * docs: Graphically describe log joining. * docs: Update db types. * docs: Sync-ing. * docs: Reverse flow arrows. * docs: Logical clock. * docs: DB address and manifest. * docs: Move ops description to db. * docs: CRDT. * docs: Peer discovery, connecting ipfs nodes, orbitdb replication. * docs: Change file name case to match other documentation solutions (e.g. IPFS/libp2p). * docs: Links to CRDT papers. * docs: A getting started to get up and running quickly. * docs: Move replication to own readme. * docs: Links to various js-libp2p connection config. * docs: Examples for connecting two node servers. * docs: Server to browser connection. * docs: Replication how-to. * docs: Remove SYNC. * docs: Simplify oplog discussion. * docs: Connecting to IPFS in the browser. * docs: Topics moved to separate docs.
39 lines
951 B
Markdown
39 lines
951 B
Markdown
# Replication
|
|
|
|
Below is a simple replication example. Both peers run within the same Node daemon.
|
|
|
|
```
|
|
const waitFor = async (valueA, toBeValueB, pollInterval = 100) => {
|
|
return new Promise((resolve) => {
|
|
const interval = setInterval(async () => {
|
|
if (await valueA() === await toBeValueB()) {
|
|
clearInterval(interval)
|
|
resolve()
|
|
}
|
|
}, pollInterval)
|
|
})
|
|
}
|
|
|
|
let connected1 = false
|
|
let connected2 = false
|
|
|
|
const onConnected1 = async (peerId, heads) => {
|
|
connected1 = true
|
|
}
|
|
|
|
const onConnected2 = async (peerId, heads) => {
|
|
connected2 = true
|
|
}
|
|
|
|
db1.events.on('join', onConnected1)
|
|
db2.events.on('join', onConnected2)
|
|
|
|
await db1.put({ _id: 1, msg: 'record 1 on db 1' })
|
|
await db2.put({ _id: 2, msg: 'record 2 on db 2' })
|
|
await db1.put({ _id: 3, msg: 'record 3 on db 1' })
|
|
await db2.put({ _id: 4, msg: 'record 4 on db 2' })
|
|
|
|
await waitFor(() => connected1, () => true)
|
|
await waitFor(() => connected2, () => true)
|
|
```
|