cleanup
parent
94037e7de0
commit
966dc965f2
|
|
@ -5,11 +5,11 @@ const { Signale } = require('signale');
|
||||||
const log = new Signale().scope('GTWY');
|
const log = new Signale().scope('GTWY');
|
||||||
const interactive = new Signale({interactive: true, scope: 'GTWY'});
|
const interactive = new Signale({interactive: true, scope: 'GTWY'});
|
||||||
const stp = require('./STP');
|
const stp = require('./STP');
|
||||||
|
const appdata = require('./appdata');
|
||||||
|
|
||||||
class Gateway {
|
class Gateway {
|
||||||
constructor(identity, endpoints) {
|
constructor(identity, endpoints) {
|
||||||
this.identity = identity;
|
this.identity = identity;
|
||||||
const appdata = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Preferences' : process.env.HOME + "/.local/share")
|
|
||||||
|
|
||||||
this.endpoints = new Keyv({
|
this.endpoints = new Keyv({
|
||||||
store: new KeyvFile({
|
store: new KeyvFile({
|
||||||
|
|
@ -58,7 +58,7 @@ class Gateway {
|
||||||
let pings = [];
|
let pings = [];
|
||||||
let maxPings = 10;
|
let maxPings = 10;
|
||||||
let connectionAttempts = 0;
|
let connectionAttempts = 0;
|
||||||
log.info(`Conencting to ${host}:${port}...`);
|
log.info(`Connecting to ${host}:${port}...`);
|
||||||
|
|
||||||
while(connectionAttempts < 10 && pings.length < maxPings) {
|
while(connectionAttempts < 10 && pings.length < maxPings) {
|
||||||
|
|
||||||
|
|
@ -76,7 +76,7 @@ class Gateway {
|
||||||
interactive.info(`[${pings.length + 1}/${maxPings}] Testing connection...`);
|
interactive.info(`[${pings.length + 1}/${maxPings}] Testing connection...`);
|
||||||
pings.push(await client.ping());
|
pings.push(await client.ping());
|
||||||
// pings.push(10);
|
// pings.push(10);
|
||||||
await new Promise(res => setTimeout(res, 500));
|
await new Promise(res => setTimeout(res, 100));
|
||||||
}
|
}
|
||||||
const average = Math.round(pings.reduce((a, v) => a + v, 0) / maxPings);
|
const average = Math.round(pings.reduce((a, v) => a + v, 0) / maxPings);
|
||||||
interactive.success(`Test complete. Average Ping: ${average}`)
|
interactive.success(`Test complete. Average Ping: ${average}`)
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ const { hri } = require('human-readable-ids');
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const NodeRSA = require('node-rsa');
|
const NodeRSA = require('node-rsa');
|
||||||
let log = require('signale').scope('Identity(null)');
|
let log = require('signale').scope('Identity(null)');
|
||||||
|
const appdata = require('./appdata');
|
||||||
|
|
||||||
module.exports.Identity = class Identity {
|
module.exports.Identity = class Identity {
|
||||||
kv;
|
kv;
|
||||||
|
|
@ -13,7 +14,6 @@ module.exports.Identity = class Identity {
|
||||||
/// ASYNC CONSTRUCTOR
|
/// ASYNC CONSTRUCTOR
|
||||||
constructor(module, id) {
|
constructor(module, id) {
|
||||||
return new Promise(async (res, rej) => {
|
return new Promise(async (res, rej) => {
|
||||||
const appdata = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Preferences' : process.env.HOME + "/.local/share")
|
|
||||||
|
|
||||||
const kv = new Keyv({
|
const kv = new Keyv({
|
||||||
store: new KeyvFile({
|
store: new KeyvFile({
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,9 @@ class STPSocket extends EventEmitter {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.readyState === this.SECURED && obj.cmd === 'PING') {
|
if (this.readyState === this.SECURED && obj.cmd === 'PING') {
|
||||||
this.tcpSocket.write(new PongPacket(obj.data.id).toBuffer());
|
setTimeout(() => {
|
||||||
|
this.tcpSocket.write(new PongPacket(obj.data.id).toBuffer());
|
||||||
|
}, 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
const appdata = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Preferences' : process.env.HOME + "/.local/share");
|
||||||
|
|
||||||
|
module.exports = appdata;
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
const pkg = require('./../package.json');
|
const pkg = require('./../package.json');
|
||||||
const { readFileSync, writeFileSync } = require('fs');
|
const { readFileSync, writeFileSync } = require('fs');
|
||||||
|
const { ensureDirSync } = require('fs-extra');
|
||||||
|
|
||||||
const appdata = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Preferences' : process.env.HOME + "/.local/share")
|
const appdata = require('./appdata');
|
||||||
|
ensureDirSync(`${appdata}/valnet/relay`);
|
||||||
const filepath = `${appdata}/valnet/relay/config.json`;
|
const filepath = `${appdata}/valnet/relay/config.json`;
|
||||||
|
|
||||||
const configObject = {}
|
const configObject = {}
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"express-ws": "^4.0.0",
|
"express-ws": "^4.0.0",
|
||||||
"font-ascii": "^1.2.1",
|
"font-ascii": "^1.2.1",
|
||||||
|
"fs-extra": "^9.1.0",
|
||||||
"gradient-string": "^1.2.0",
|
"gradient-string": "^1.2.0",
|
||||||
"human-readable-ids": "^1.0.4",
|
"human-readable-ids": "^1.0.4",
|
||||||
"ip": "^1.1.5",
|
"ip": "^1.1.5",
|
||||||
|
|
|
||||||
|
|
@ -1,49 +1,17 @@
|
||||||
(async () => {
|
(async () => {
|
||||||
const { title } = require('../lib/title');
|
const { title } = require('../lib/title');
|
||||||
const net = require('net');
|
|
||||||
const log = require('signale').scope('RLAY');
|
const log = require('signale').scope('RLAY');
|
||||||
const { Identity } = require('../lib/Identity');
|
const { Identity } = require('../lib/Identity');
|
||||||
const stp = require('../lib/STP');
|
|
||||||
title('relay', false);
|
title('relay', false);
|
||||||
const identity = await new Identity('relay', 'default');
|
const identity = await new Identity('relay', 'default');
|
||||||
const upnp = require('../lib/upnp');
|
|
||||||
const Node = require('../lib/node');
|
const Node = require('../lib/node');
|
||||||
const { config, write } = require('../lib/config');
|
const { config } = require('../lib/config');
|
||||||
|
const { ensureDirSync } = require('fs-extra');
|
||||||
// const client = stp.connect(identity, config.ports.relay, '127.0.0.1');
|
const appdata = require('../lib/appdata');
|
||||||
|
|
||||||
// upnp.mapIndefinite(5600);
|
|
||||||
|
|
||||||
// ==================================== [STP SERVER]
|
|
||||||
|
|
||||||
|
ensureDirSync(`${appdata}/valnet/relay`);
|
||||||
const node = new Node(identity);
|
const node = new Node(identity);
|
||||||
|
|
||||||
function connectNetwork(t = 1000) {
|
|
||||||
if(t > 60000) t /= 2;
|
|
||||||
|
|
||||||
const poopoo = config.endpoints[0].split(':');
|
|
||||||
// console.log(poopoo);
|
|
||||||
|
|
||||||
const client = stp.connect({
|
|
||||||
identity,
|
|
||||||
port: parseInt(poopoo[1]),
|
|
||||||
ip: poopoo[0]
|
|
||||||
});
|
|
||||||
client.on('ready', () => {
|
|
||||||
log.success('connected to relay!');
|
|
||||||
t = 500;
|
|
||||||
})
|
|
||||||
client.on('error', e => {
|
|
||||||
});
|
|
||||||
client.on('close', e => {
|
|
||||||
t *= 2;
|
|
||||||
setTimeout(connectNetwork.bind(global, t), t);
|
|
||||||
log.warn('disconnected from relay');
|
|
||||||
log.warn('retrying connection... ' + (t / 1000) + 's');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// connectNetwork();
|
|
||||||
|
|
||||||
// ==================================== [EXPRESS]
|
// ==================================== [EXPRESS]
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
|
||||||
34
yarn.lock
34
yarn.lock
|
|
@ -99,6 +99,11 @@ asynckit@^0.4.0:
|
||||||
version "0.4.0"
|
version "0.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||||
|
|
||||||
|
at-least-node@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
|
||||||
|
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
|
||||||
|
|
||||||
aws-sign2@~0.7.0:
|
aws-sign2@~0.7.0:
|
||||||
version "0.7.0"
|
version "0.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
|
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
|
||||||
|
|
@ -656,6 +661,16 @@ fs-extra@^4.0.1:
|
||||||
jsonfile "^4.0.0"
|
jsonfile "^4.0.0"
|
||||||
universalify "^0.1.0"
|
universalify "^0.1.0"
|
||||||
|
|
||||||
|
fs-extra@^9.1.0:
|
||||||
|
version "9.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
|
||||||
|
integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
|
||||||
|
dependencies:
|
||||||
|
at-least-node "^1.0.0"
|
||||||
|
graceful-fs "^4.2.0"
|
||||||
|
jsonfile "^6.0.1"
|
||||||
|
universalify "^2.0.0"
|
||||||
|
|
||||||
function-bind@^1.1.1:
|
function-bind@^1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||||
|
|
@ -690,6 +705,11 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6:
|
||||||
version "4.2.4"
|
version "4.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
|
||||||
|
|
||||||
|
graceful-fs@^4.2.0:
|
||||||
|
version "4.2.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
|
||||||
|
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
|
||||||
|
|
||||||
gradient-string@^1.2.0:
|
gradient-string@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/gradient-string/-/gradient-string-1.2.0.tgz#93f39f2c7c8dcb095608c2ccf0aac24aa315fbac"
|
resolved "https://registry.yarnpkg.com/gradient-string/-/gradient-string-1.2.0.tgz#93f39f2c7c8dcb095608c2ccf0aac24aa315fbac"
|
||||||
|
|
@ -919,6 +939,15 @@ jsonfile@^4.0.0:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
graceful-fs "^4.1.6"
|
graceful-fs "^4.1.6"
|
||||||
|
|
||||||
|
jsonfile@^6.0.1:
|
||||||
|
version "6.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
|
||||||
|
integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
|
||||||
|
dependencies:
|
||||||
|
universalify "^2.0.0"
|
||||||
|
optionalDependencies:
|
||||||
|
graceful-fs "^4.1.6"
|
||||||
|
|
||||||
jsprim@^1.2.2:
|
jsprim@^1.2.2:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
||||||
|
|
@ -1601,6 +1630,11 @@ universalify@^0.1.0:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
|
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
|
||||||
|
|
||||||
|
universalify@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
|
||||||
|
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
|
||||||
|
|
||||||
unpipe@1.0.0, unpipe@~1.0.0:
|
unpipe@1.0.0, unpipe@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
||||||
|
|
|
||||||
Reference in New Issue