minerDhtAddrs = {
if (start === 0) {
yield {
state: 'paused'
}
return
}
yield {
state: 'starting'
}
let records = []
let totalErrors = 0
let lastCounter = 0
const startTime = new Date()
for await (const {counter, hits, errors, ...record} of dhtFindPeerStream()) {
totalErrors = errors
lastCounter = counter
if (record.miner) {
records.push(record)
}
yield {
state: "streaming",
elapsed: ((new Date()) - startTime) / 1000,
scannedPeers: counter,
totalPeers: filteredMinerPeerIds.length,
recordsLength: records.length,
errors
}
}
const endTime = new Date()
yield {
state: "done",
elapsed: (endTime - startTime) / 1000,
scannedPeers: lastCounter,
totalPeers: filteredMinerPeerIds.length,
records: records.sort(sortMinerRecords),
startTime,
endTime,
errors: totalErrors
}
}