OverviewFilesCommitsIssuesDocsReleasesPeers

hyperswarm-peer / integration / test_lookup_cpp.js

38 lines · javascript ref:
// Quick test: can JS lookup find a C++ announced peer?
import HyperDHT from 'hyperdht'
import crypto from 'crypto'
import { readFileSync } from 'fs'

const bstr = readFileSync('/tmp/layer_bootstrap.txt', 'utf8').trim()
const bs = bstr.split(',').map(s => {
  const [host, port] = s.split(':')
  return { host, port: parseInt(port) }
})

const topic = crypto.createHash('sha256').update('test-p2p-layer2').digest()
const cppPk = readFileSync('/tmp/test_dht_announce_pk.txt', 'utf8').trim()

console.log('Looking up topic for C++ pk:', cppPk.slice(0, 16))

const dht = new HyperDHT({ bootstrap: bs, firewalled: false })
await dht.fullyBootstrapped()

let found = false
const stream = dht.lookup(topic)
for await (const data of stream) {
  if (data.peers && data.peers.length > 0) {
    for (const peer of data.peers) {
      const pk = peer.publicKey.toString('hex')
      console.log('Found peer:', pk.slice(0, 16))
      if (pk === cppPk) {
        found = true
        console.log('MATCH — C++ announce verified!')
      }
    }
  }
}

console.log(found ? 'PASS: C++ announce found by JS lookup' : 'FAIL: C++ peer not found')
await dht.destroy()
process.exit(found ? 0 : 1)