Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

replication occurs without errors, but documents aren't propagated #165

Open
TobyMosque opened this issue Apr 3, 2019 · 0 comments
Open

Comments

@TobyMosque
Copy link

TobyMosque commented Apr 3, 2019

I'm trying to replicate the documents between two or more remote instances of the hyperdb

import hyperdb from 'hyperdb'
import signalhub from 'signalhub'
import pump from 'pump'
import swarm from 'webrtc-swarm'
import wrtc from 'electron-webrtc'

let key = Buffer.from(store.key, 'base64')
let db = hyperdb(`./${storage}.db`, key, {
  firstNode: true
})

db.on('ready', () => {
  let uuid = db.local.key.toString('hex')
  console.log('target: ', uuid)
  let channel = db.discoveryKey.toString('hex')
  let hub = signalhub(channel, [ store.swarmHost ])
  let sw = swarm(hub, { wrtc: wrtc(), uuid })
  sw.on('peer', function (peer, uuid) {
    console.log('source: ', uuid)
    // let key = Buffer.from(uuid, 'hex')
    // db.authorize(key, () => {
    let stream = db.replicate(/*{ download: true, upload: true }*/)
    pump(peer, stream, peer, function (err, data) {
      if (err) {
        console.error('error: ', err)
      } else {
        console.log('success: ', data)
      }
    })
    // 
  })
})

I didn't catch a single error in the dev tools, but the documents isn't propagated to the others instances of the hyperdb

target:  2a69e9bedad2bb4181011966a9003686272393ad...
source:  716a6528ee534dd4165153ad13dfb6bf1f5c2ce5...
success:  undefined
source:  716a6528ee534dd4165153ad13dfb6bf1f5c2ce5...
success:  undefined

whatever, I catch some errors in the terminal.

[27700:0402/224705.037:ERROR:adm_helpers.cc(73)] Failed to query stereo recording.
[27700:0402/224707.038:ERROR:peerconnection.cc(5801)] Called in wrong state: kHaveLocalOffer (INVALID_STATE)
[27700:0402/224707.039:ERROR:peerconnection.cc(2233)] Failed to set remote offer sdp: Called in wrong state: kHaveLocalOffer
[27700:0402/224719.415:ERROR:peerconnection.cc(5801)] Called in wrong state: kHaveLocalOffer (INVALID_STATE)
[27700:0402/224719.415:ERROR:peerconnection.cc(2233)] Failed to set remote offer sdp: Called in wrong state: kHaveLocalOffer
[27700:0402/224846.447:ERROR:peerconnection.cc(3011)] AddIceCandidate: ICE candidates can't be added without any remote session description.

Some OS and package infos.

Operating System - Windows_NT(10.0.17134) - win32/x64
NodeJs - 10.15.1

Global packages
  NPM - 6.4.1
  yarn - 1.13.0
  @quasar/cli - 1.0.0-beta.4
  cordova - 8.1.2 (cordova-lib@8.1.1)

Important local packages
  quasar - 1.0.0-beta.15 -- High performance, Material Design 2, full front end stack with Vue.js -- build SPA, SSR, PWA, Hybrid Mobile Apps and Electron apps, all simultaneously using the same codebase
  @quasar/app - 1.0.0-beta.15 -- Quasar Framework App CLI
  @quasar/extras - 1.1.1 -- Quasar Framework fonts, icons and animations
  vue - 2.6.10 -- Reactive, component-oriented view layer for modern web interfaces.
  vue-router - 3.0.2 -- Official router for Vue.js 2
  vuex - 3.1.0 -- state management for Vue.js
  electron - 4.1.3 -- Build cross platform desktop apps with JavaScript, HTML, and CSS
  electron-packager - Not installed
  electron-builder - 20.39.0 -- A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box
  @babel/core - 7.3.4 -- Babel compiler core.
  webpack - 4.29.6 -- Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.
  webpack-dev-server - 3.2.1 -- Serves a webpack app. Updates the browser on changes.
  workbox-webpack-plugin - 4.1.1 -- A plugin for your Webpack build process, helping you generate a manifest of local files that workbox-sw should precache.
  register-service-worker - 1.6.2 -- Script for registering service worker, with hooks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant