Closed
Description
- Version:
"libp2p": "^0.24.4",
"libp2p-bootstrap": "^0.9.7",
"libp2p-kad-dht": "^0.14.9",
"libp2p-mdns": "^0.12.2",
"libp2p-mplex": "^0.8.5",
"libp2p-multiplex": "^0.5.1",
"libp2p-railing": "^0.9.2",
"libp2p-rpc": "^0.1.1",
"libp2p-secio": "^0.11.1",
"libp2p-spdy": "^0.13.2",
"libp2p-tcp": "^0.13.0",
"libp2p-webrtc-star": "^0.15.8",
"libp2p-websockets": "^0.12.2",
- Platform: Linux core-VirtualBox 4.18.0-16-generic Update standard to version 7.1.2 🚀 #17~18.04.1-Ubuntu SMP Tue Feb 12 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
- Subsystem: -
Type: Bug, Question
Severity: Medium
Description:
Running two instances to discovery each other, when one is closed, the other crashes with error "socket hang up". Events like peer:disconnect does not get fired.
/home/core/code/node_modules/pull-stream/sinks/drain.js:22
throw end
^
Error: socket hang up
at Stream.onclose (/home/core/code/node_modules/spdy-transport/lib/spdy-transport/connection.js:181:15)
at Object.onceWrapper (events.js:277:13)
at Stream.emit (events.js:194:15)
at Stream.s.destroy (/home/core/code/node_modules/pull-stream-to-stream/index.js:146:7)
at Stream.conn.on (/home/core/code/node_modules/libp2p-rpc/node_modules/libp2p-spdy/src/index.js:18:10)
at Stream.emit (events.js:194:15)
at next (/home/core/code/node_modules/pull-stream-to-stream/index.js:118:41)
at /home/core/code/node_modules/pull-reader/index.js:110:13
at /home/core/code/node_modules/pull-reader/index.js:110:13
at /home/core/code/node_modules/pull-reader/index.js:110:13
Steps to reproduce the error:
Here are my simple code:
const fs = require('fs')
const path = require('path')
const PeerInfo = require('peer-info')
const protobuf = require('protobufjs')
const ip = require('ip');
const Node = require('libp2p-rpc')
// Find this list at: https://github.com/ipfs/js-ipfs/blob/master/src/core/runtime/config-nodejs.json
const bootstrapers = [
'/ip4/10.0.1.10/tcp/46459/ipfs/QmPnoe2fpg4zfPqPZM4Jq6PTYS63PcXdYpSYfwjEjdcsch'
]
const config = {
name: 'your-protocol-name',
version: '1.0.0',
bootstrapers: [],
multicastDNS: {
interval: 1000
}
}
PeerInfo.create((err, peerInfo) => {
if (err) throw new Error(err)
protobuf.load(path.join(__dirname, './protocol.proto')).then((root) => {
const node = new Node(peerInfo, root, config)
var addr = '/ip4/'+ip.address()+'/tcp/46459/ipfs/'+peerInfo.id._idB58String
console.log("id: ", peerInfo.id._idB58String)
console.log("ipfs addr: ", addr)
node.on('peer:connection', (conn, peer, type) => {
console.log("peer:connection id: ", peer.id._idB58String)
console.log(peer._connectedMultiaddr)
peer.rpc.sayHello({name: 'Foo'}, (response, peer) => {
console.log('sayHello Response', response)
})
})
node.on('stop', () => {
console.log('peer:stop')
})
node.on('peer:disconnect', (peer) => {
console.log('peer:disconnect')
})
node.on('peer:disconnection', (peer) => {
console.log('peer:disconnection')
})
node.on('error', (err) => {
console.log('peer:error', err)
})
node.handle('sayHello', (message, peer, response) => {
console.log('sayHello Request', message)
response({ message: 'heyThere' })
})
node.start().then(console.log, console.error)
}, console.error)
})
Metadata
Metadata
Assignees
Labels
No labels