ssbc / ssb-server

The gossip and replication server for Secure Scuttlebutt - a distributed social network
1.68k stars 164 forks source link

Can't create invite despite configuration #728

Closed rabble closed 3 years ago

rabble commented 4 years ago

I think i'm following the instructions at https://github.com/ssbc/ssb-config/#connections. There seems to be some debate in the documentation if external should be an array but i get the same error both ways. Any idea what's wrong?

`> ssb invite.create 1

Error: no address available for creating an invite,configuration needed for server. see: https://github.com/ssbc/ssb-config/#connections at Object. (/home/server/ssb-server/node_modules/ssb-invite/index.js:92:29) at apply (/home/server/ssb-server/node_modules/muxrpc-validation/index.js:197:15) at Object. (/home/server/ssb-server/node_modules/muxrpc-validation/index.js:86:14) at Object.hooked (/home/server/ssb-server/node_modules/hoox/index.js:10:15) at Object.localCall (/home/server/ssb-server/node_modules/muxrpc/local-api.js:31:29) at Object. (/home/server/ssb-server/node_modules/muxrpc/local-api.js:37:22) at Object.request (/home/server/ssb-server/node_modules/muxrpc/stream.js:48:17) at PacketStream._onrequest (/home/server/ssb-server/node_modules/packet-stream/index.js:161:17) at PacketStream.write (/home/server/ssb-server/node_modules/packet-stream/index.js:134:41) at /home/server/ssb-server/node_modules/muxrpc/pull-weird.js:56:15`

`$ cat config { "friends": { "hops": 4 }, "connections": { "incoming": { "net": [ { "scope": "public", "host": "0.0.0.0", "external": ["35.202.141.100"], "transform": "shs", "port": 8008 } ] }, "outgoing": { "net": [ { "transform": "shs" } ] } }

}`

rabble commented 4 years ago

similar issue, from scratch... server@instance-1:/home/rabble$ ssb-server publish --type about --about {pub-id "@JH0M9fAkNA/43Jcf832Gff+6VBLJ2H77TTwsAgW+hnA=.ed25519"} --name {test pub}

/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/muxrpcli/index.js:123 throw err ^ TypeError: cb is not a function at dbAppend (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/ssb-db/minimal.js:114:14) at EventEmitter.append (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/ssb-db/minimal.js:60:28) at Object.add (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/ssb-db/create.js:125:10) at apply (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/muxrpc-validation/index.js:201:15) at Object. (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/muxrpc-validation/index.js:86:14) at Object.hooked (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/hoox/index.js:10:15) at Object.localCall (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/muxrpc/local-api.js:31:29) at Object. (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/muxrpc/local-api.js:37:22) at Object.request (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/muxrpc/stream.js:48:17) at PacketStream._onrequest (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/packet-stream/index.js:161:17) server@instance-1:/home/rabble$ ssb-server invite.create 1

/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/muxrpcli/index.js:123 throw err ^ TypeError: resultHost.replace is not a function at Object.stringify (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/multiserver/plugins/net.js:124:31) at /home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/multiserver/compose.js:111:19 at Array.map () at Object.stringify (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/multiserver/compose.js:110:22) at /home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/multiserver/index.js:67:44 at Array.map () at Object.stringify (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/multiserver/index.js:67:10) at EventEmitter.getAddress (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/secret-stack/core.js:213:21) at EventEmitter.hooked [as getAddress] (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/hoox/index.js:10:15) at getInviteAddress (/home/server/.nvm/versions/node/v10.22.0/lib/node_modules/ssb-server/node_modules/ssb-invite/index.js:75:18) server@instance-1:/home/rabble$

njromano commented 4 years ago

Ran into this as well. I believe the error has to do with the external address being an array. Looks like the multiserver net plugin calls replace() on the external object thinking it'll be a string.

njromano commented 4 years ago

To be clear, try replacing "external": ["35.202.141.100"] with "external": "35.202.141.100" (not an array)

craigcomstock commented 3 years ago

https://handbook.scuttlebutt.nz/guides/pubs/setup-a-pub doesn't seem to mention anything about creating or editing a .ssb/config file. I ran into the same cb is not a function error when trying to create an invite as described on the setup-a-pub doc I mention.

I tried creating .ssb/config with this:

$ cat .ssb/config | jq .
{
  "connections": {
    "incoming": {
      "net": [
        {
          "scope": "public",
          "host": "0.0.0.0",
          "external": "box",
          "transform": "shs",
          "port": 8008
        }
      ]
    },
    "outgoing": {
      "net": [
        {
          "transform": "shs"
        }
      ]
    }
  }
}

But I get this error:

user@box:~$ ssb-server start --host box
/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/ssb-config/util/fix-connections.js:38
    throw new Error(message)
    ^

Error: ssb-config: conflicting connection settings for: net host
    at fixConnections (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/ssb-config/util/fix-connections.js:38:11)
    at setDefaults (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/ssb-config/defaults.js:52:12)
    at module.exports (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/ssb-config/inject.js:7:16)
    at Object.<anonymous> (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/bin.js:25:14)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
user@box:~$ ssb-server start --host box
/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/ssb-config/util/fix-connections.js:38
    throw new Error(message)
    ^

Error: ssb-config: conflicting connection settings for: net host
    at fixConnections (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/ssb-config/util/fix-connections.js:38:11)
    at setDefaults (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/ssb-config/defaults.js:52:12)
    at module.exports (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/ssb-config/inject.js:7:16)
    at Object.<anonymous> (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/bin.js:25:14)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)

Oh! I got rid of that error by using ssb-server start --host 0.0.0.0 which is the host in configs which is wanting to match connections/incoming/net/host I guess.

craigcomstock commented 3 years ago

I had to use ssb-server --host box invite.create 1 i.e. adding --host box in order to get it running a bit more, but still I get cb is not a function

/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/muxrpcli/index.js:123
      throw err
      ^
TypeError: cb is not a function
    at Object.<anonymous> (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/ssb-invite/index.js:100:18)
    at apply (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/muxrpc-validation/index.js:199:15)
    at Object.<anonymous> (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/muxrpc-validation/index.js:86:14)
    at Object.hooked (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/hoox/index.js:10:15)
    at Object.localCall (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/muxrpc/local-api.js:31:29)
    at Object.<anonymous> (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/muxrpc/local-api.js:37:22)
    at Object.request (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/muxrpc/stream.js:48:17)
    at PacketStream._onrequest (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/packet-stream/index.js:161:17)
    at PacketStream.write (/home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/packet-stream/index.js:134:41)
    at /home/user/.nvm/versions/node/v10.22.1/lib/node_modules/ssb-server/node_modules/muxrpc/pull-weird.js:56:15

Seems to be some problem printing out usage? aka muxrpcli/index.js function usage()?

clehner commented 3 years ago

@craigcomstock That happens when muxrpc gets confused by the number of arguments Here is the command to use now: sbot invite.create --external $hostname --uses 1