Skip to content

Commit

Permalink
feat(relay): bootstrap timeout
Browse files Browse the repository at this point in the history
  • Loading branch information
DEgITx committed Jan 6, 2021
1 parent 57ee517 commit 8d48c80
Showing 1 changed file with 27 additions and 7 deletions.
34 changes: 27 additions & 7 deletions src/background/spider.js
Original file line number Diff line number Diff line change
Expand Up @@ -262,25 +262,33 @@ module.exports = function (send, recive, dataDirectory, version, env)
}

const getServiceJson = (url) => new Promise((resolve) => {
http.get(url, (resp) => {
let timeout;
const req = http.get(url, (resp) => {
let data = '';

resp.on('data', (chunk) => {
data += chunk;
});

resp.on('end', () => {
clearTimeout(timeout);
try {
resolve(data.length > 0 && JSON.parse(data))
} catch(e) {
logTE('p2p', 'loading bootstrap failed', e)
resolve(false)
}
});
}).on("error", (err) => {
});
req.on("error", (err) => {
clearTimeout(timeout);
logTE('http', `${url} error: ` + err.message)
resolve(false)
});
timeout = setTimeout(() => {
logTE('http', `${url} abort by time`)
req.destroy();
}, 3000)
})

let p2pBootstrapLoop = null
Expand Down Expand Up @@ -333,7 +341,7 @@ module.exports = function (send, recive, dataDirectory, version, env)
return

loadBootstrapPeers('https://api.myjson.com/bins/1e5rmh')
loadBootstrapPeers('https://jsonblob.com/api/jsonBlob/013a4415-3533-11e8-8290-a901f3cf34aa')
loadBootstrapPeers('https://jsonblob.com/api/jsonBlob/4d22c8ba-5046-11eb-b13f-81fd0496c154')
})
}

Expand Down Expand Up @@ -1031,19 +1039,31 @@ module.exports = function (send, recive, dataDirectory, version, env)
'Content-Type' : "application/json",
}
};
logT('close', 'bootstrap peers saved to', host)
const req = http.request(options, resolve);
req.on('error', resolve)
let timeout;
const req = http.request(options, () => {
logT('close', 'bootstrap peers saved to', host)
clearTimeout(timeout)
resolve()
});
req.on('error', () => {
logTE('close', 'cant save bootstrap pears to', host)
clearTimeout(timeout)
resolve()
})
req.end(JSON.stringify({
bootstrap: peersEncripted,
bootstrapMap: encryptor.encrypt(bootstrapMap),
relays: encryptor.encrypt(p2p.relays())
}))
setTimeout(() => {
logTE('close', 'abort by time', host)
req.destroy();
}, 4000)
})

await Promise.all([
saveBootstrapPeers('api.myjson.com', '/bins/1e5rmh'),
saveBootstrapPeers('jsonblob.com', '/api/jsonBlob/013a4415-3533-11e8-8290-a901f3cf34aa')
saveBootstrapPeers('jsonblob.com', '/api/jsonBlob/4d22c8ba-5046-11eb-b13f-81fd0496c154')
])
}
}
Expand Down

0 comments on commit 8d48c80

Please sign in to comment.