Skip to content

Node Crashes In crypto.js When Dialed  #229

Closed
@threejeez

Description

@threejeez

Type: Question

Severity: Low

Description:

I am running a very basic bootstrap node on EC2 and only when I give it a peerId (instead of letting it generate it's own) it crashes when dialed in crypto.js. This does not happen when I run the same test locally.

What may be different about running a node on EC2 that would cause this to happen?

My bootstrap node bundle:

class MyBundle extends libp2p {
  constructor (_options) {

    const defaults = {
      modules: {
        transport: [new WebSockets(), new TCP()],
        streamMuxer: [Mplex],
        connEncryption: [SECIO]
      }     
    }

    super(defaultsDeep(_options, defaults))
  }
}

Creating the node:

function createNode (callback) {
  let node
  const id = 'QmcdGp9P2ZvahuoxgJP8yPHXn7CtDhbEpxCctyAqJiPZhf'

  waterfall([
    (cb) => PeerInfo.create({id}, cb),
    (peerInfo, cb) => {
      const peerId = peerInfo.id.toB58String()

      peerInfo.multiaddrs.add(`/ip4/0.0.0.0/tcp/4001/ipfs/${peerId}`)

      node = new MyBundle({peerInfo})

      console.log(`Starting node ${peerId}`)
      node.start(cb)
    }
  ], (err) => callback(err, node))
}

This is the stack trace:

  libp2p:tcp:listen new connection /ip4/18.212.189.186/tcp/47038 +11s
  mss:listener	 (101ck5) adding handler: /mplex/6.7.0 +0ms
  mss:listener	 (101ck5) adding handler: /spdy/3.1.0 +0ms
  mss:listener	 (101ck5) adding handler: /ipfs/id/1.0.0 +0ms
  mss:listener	 (101ck5) adding handler: /secio/1.0.0 +0ms
  mss:listener	 (101ck5) adding handler: /ipfs/ping/1.0.0 +0ms
  mss:listener	 (101ck5) adding handler: /ipfs/kad/1.0.0 +0ms
  mss:listener	 (101ck5) listener handle conn +1ms
  mss:listener	 (101ck5) writing multicodec: /multistream/1.0.0 +0ms
  libp2p:tcp:listen new connection /ip4/18.212.189.186/tcp/47040 +7ms
  mss:listener	 (11zzr4) adding handler: /mplex/6.7.0 +0ms
  mss:listener	 (11zzr4) adding handler: /spdy/3.1.0 +0ms
  mss:listener	 (11zzr4) adding handler: /ipfs/id/1.0.0 +1ms
  mss:listener	 (11zzr4) adding handler: /secio/1.0.0 +0ms
  mss:listener	 (11zzr4) adding handler: /ipfs/ping/1.0.0 +0ms
  mss:listener	 (11zzr4) adding handler: /ipfs/kad/1.0.0 +0ms
  mss:listener	 (11zzr4) listener handle conn +0ms
  mss:listener	 (11zzr4) writing multicodec: /multistream/1.0.0 +0ms
  mss:listener	 (101ck5) received ack: /multistream/1.0.0 +6ms
  mss:listener	 (11zzr4) received ack: /multistream/1.0.0 +2ms
  mss:listener	 (11zzr4) received: +1ms
  mss:listener	 (11zzr4) send ack back of: /secio/1.0.0 +0ms
  libp2p:switch:protocol-muxer registering handler with protocol /secio/1.0.0 +0ms
  libp2p:secio 1. propose - start +0ms
  libp2p:secio 1. propose - writing proposal +0ms
/home/ec2-user/bootstrap-node/node_modules/libp2p-secio/src/handshake/crypto.js:22
    pubkey: state.key.local.public.bytes,
                            ^

TypeError: Cannot read property 'public' of null
    at Object.exports.createProposal (/home/ec2-user/bootstrap-node/node_modules/libp2p-secio/src/handshake/crypto.js:22:29)
    at propose (/home/ec2-user/bootstrap-node/node_modules/libp2p-secio/src/handshake/propose.js:18:31)
    at series (/home/ec2-user/bootstrap-node/node_modules/libp2p-secio/src/handshake/index.js:13:13)
    at /home/ec2-user/bootstrap-node/node_modules/async/internal/parallel.js:31:39
    at replenish (/home/ec2-user/bootstrap-node/node_modules/async/internal/eachOfLimit.js:66:17)
    at /home/ec2-user/bootstrap-node/node_modules/async/internal/eachOfLimit.js:71:9
    at eachOfLimit (/home/ec2-user/bootstrap-node/node_modules/async/eachOfLimit.js:39:36)
    at /home/ec2-user/bootstrap-node/node_modules/async/internal/doLimit.js:9:16
    at _parallel (/home/ec2-user/bootstrap-node/node_modules/async/internal/parallel.js:30:5)
    at series (/home/ec2-user/bootstrap-node/node_modules/async/series.js:83:26)

Steps to reproduce the error:

Run a node on EC2 host and dial it from another node.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions