mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-04-25 18:42:15 +00:00
113 lines
3.7 KiB
JavaScript
113 lines
3.7 KiB
JavaScript
'use strict'
|
|
|
|
const createNode = require('../test/utils/create-node')
|
|
|
|
const introspection = async () => {
|
|
let libp2pNode
|
|
|
|
// Start node
|
|
await new Promise((resolve, reject) => {
|
|
createNode('/ip4/0.0.0.0/tcp/0', {
|
|
config: {
|
|
peerDiscovery: {
|
|
bootstrap: {
|
|
interval: 100,
|
|
enabled: true,
|
|
list: [
|
|
'/ip4/104.236.176.52/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z',
|
|
'/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ',
|
|
'/ip4/104.236.179.241/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM',
|
|
'/ip4/162.243.248.213/tcp/4001/ipfs/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm',
|
|
'/ip4/128.199.219.111/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu',
|
|
'/ip4/104.236.76.40/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64',
|
|
'/ip4/178.62.158.247/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd',
|
|
'/ip4/178.62.61.185/tcp/4001/ipfs/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3',
|
|
'/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx',
|
|
'/ip6/2604:a880:1:20::1f9:9001/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z',
|
|
'/ip6/2604:a880:1:20::203:d001/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM',
|
|
'/ip6/2604:a880:0:1010::23:d001/tcp/4001/ipfs/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm',
|
|
'/ip6/2400:6180:0:d0::151:6001/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu',
|
|
'/ip6/2604:a880:800:10::4a:5001/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64',
|
|
'/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd',
|
|
'/ip6/2a03:b0c0:1:d0::e7:1/tcp/4001/ipfs/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3',
|
|
'/ip6/2604:a880:1:20::1d9:6001/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx',
|
|
'/dns4/node0.preload.ipfs.io/tcp/443/wss/ipfs/QmZMxNdpMkewiVZLMRxaNxUeZpDUb34pWjZ1kZvsd16Zic',
|
|
'/dns4/node1.preload.ipfs.io/tcp/443/wss/ipfs/Qmbut9Ywz9YEDrz8ySBSgWyJk41Uvm2QJPhwDJzJyGFsD6'
|
|
]
|
|
},
|
|
mdns: {
|
|
interval: 100,
|
|
enabled: true
|
|
}
|
|
}
|
|
}
|
|
}, (err, node) => {
|
|
if (err) {
|
|
reject(err)
|
|
}
|
|
|
|
libp2pNode = node
|
|
|
|
libp2pNode.start((err) => {
|
|
if (err) {
|
|
reject(err)
|
|
} else {
|
|
resolve()
|
|
}
|
|
})
|
|
})
|
|
})
|
|
|
|
libp2pNode.on('peer:discovery', (peerInfo) => {
|
|
const noop = () => { }
|
|
|
|
peerInfo = libp2pNode.peerBook.put(peerInfo)
|
|
if (!peerInfo.isConnected()) {
|
|
libp2pNode.dial(peerInfo, noop)
|
|
}
|
|
})
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 15000))
|
|
|
|
// Intropsection
|
|
const data = libp2pNode.introspection.host()
|
|
|
|
// console.log('conns', data.subsystems.swarm.conns)
|
|
|
|
const conns = libp2pNode._switch.connection.connections
|
|
const connsPeers = Object.keys(conns)
|
|
|
|
connsPeers.forEach((key) => {
|
|
const conn = conns[key][0]
|
|
|
|
console.log(conn.muxer.multiplex._list.filter((m) => !!m))
|
|
})
|
|
|
|
const encodedData = libp2pNode.introspection.marshal(data)
|
|
const decodedData = libp2pNode.introspection.unmarshal(encodedData)
|
|
|
|
console.log('dec', decodedData)
|
|
|
|
// Stop node
|
|
await new Promise((resolve, reject) => {
|
|
libp2pNode.stop((err) => {
|
|
if (err) {
|
|
reject(err)
|
|
} else {
|
|
resolve()
|
|
}
|
|
})
|
|
})
|
|
|
|
console.log('all done')
|
|
process.exit()
|
|
}
|
|
|
|
introspection()
|
|
|
|
/*
|
|
TODO:
|
|
|
|
- WebSockets transports with empty listen_multiaddrs
|
|
*/
|