Orbit-db createInstance error "Path must be a string"

82 Views Asked by At

ipfs initializes, but I cannot manage to get an orbitdb instance.

const orbitdb = await OrbitDB.createInstance( ipfs );

Uncaught (in promise) TypeError: Path must be a string. Received "12D3KooWByXmww9fsJv46RddyFk4PJDfiuAY315MHQb9jAtyTBfW"
    at assertPath (index.js:29:1)
    at Object.join (index.js:186:1)
    at OrbitDB.createInstance (OrbitDB.js:109:1)
    at async App.js:27:1

I am using:

  • orbit-db: 0.28.6
  • ipfs: 0.63.5

path comes from config-overrides.js for webpack 5 :

const webpack = require('webpack');
module.exports = function override(config) {
    const fallback = config.resolve.fallback || {};
    Object.assign(fallback, {
        "crypto": require.resolve("crypto-browserify"),
        "stream": require.resolve("stream-browserify"),
        "assert": require.resolve("assert"),
        "http": require.resolve("stream-http"),
        "https": require.resolve("https-browserify"),
        "os": require.resolve("os-browserify"),
        "url": require.resolve("url"),
        "path": require.resolve("path-browserify")
    })
    config.resolve.fallback = fallback;
    config.plugins = (config.plugins || []).concat([
        new webpack.ProvidePlugin({
            process: 'process/browser',
            Buffer: ['buffer', 'Buffer']
        })
    ])
    return config;
}
1

There are 1 best solutions below

0
On

The error comes from the id used in orbitdb.js, which is an object not a string.

This solves it:

const anId = await ipfs.id();
console.log( anId.id.string );

const orbitdb = await OrbitDB.createInstance( ipfs ,{
  id : anId.id.string,
} );