webworkers work

This commit is contained in:
Pavel Murygin 2021-11-23 12:53:13 +03:00
parent b5dfe4365f
commit 3c945d75f9
4 changed files with 164 additions and 25 deletions

162
package-lock.json generated
View File

@ -9,7 +9,8 @@
"version": "0.1.0",
"license": "ISC",
"dependencies": {
"@fluencelabs/fluence": "^0.14.2",
"@fluencelabs/avm": "0.16.0-webworker.7",
"@fluencelabs/fluence": "0.10.4-worker-threads-551.0",
"@fluencelabs/fluence-network-environment": "1.0.10",
"css-spinners": "^1.0.1",
"tachyons": "^4.12.0",
@ -1330,20 +1331,22 @@
}
},
"node_modules/@fluencelabs/avm": {
"version": "0.15.4",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.15.4.tgz",
"integrity": "sha512-NLZDq83ocJ1Helm0D8kPMSSkjxH0y+Tujg0px773zjIShbh3jgiJOjAW1xCYgTt9K0LqepjP0bWX4/8nUZfr7g==",
"version": "0.16.0-webworker.7",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.16.0-webworker.7.tgz",
"integrity": "sha512-wKHHMQcySHbIUS3YCk4nffZZb3hAeyLuTySaKO7iV1InVrkEBpC/EXk2t3fn4Hl6csXkUl2jftSDyBJdxw2dlg==",
"dependencies": {
"base64-js": "1.5.1"
"base64-js": "1.5.1",
"buffer": "^6.0.3",
"threads": "^1.7.0"
}
},
"node_modules/@fluencelabs/fluence": {
"version": "0.14.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.14.2.tgz",
"integrity": "sha512-Cf5Ii6dpVSSi839jB7H0Y9k07xncYdHiTNKp4LlPg6inXuy2OPb2E7qF5DXlMM9O1dBb/UJTa4jZlQDsgWriiQ==",
"version": "0.10.4-worker-threads-551.0",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.4-worker-threads-551.0.tgz",
"integrity": "sha512-57BEsExQo5gGfgwv0TZ7/jnL6Vd3QC0Esl07HsVyeTtE6Ha/eMeYzmrsodirLbih+8mS5fSL5sgio8DiBijXKA==",
"dependencies": {
"@chainsafe/libp2p-noise": "4.0.0",
"@fluencelabs/avm": "0.15.4",
"@fluencelabs/avm": "0.16.0-webworker.6",
"async": "3.2.0",
"base64-js": "1.5.1",
"bs58": "4.0.1",
@ -1367,6 +1370,15 @@
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence-network-environment/-/fluence-network-environment-1.0.10.tgz",
"integrity": "sha512-aaWZDDFIIasSTgdFdw1KEz+boZMSn7pXffUENZNLX4DrP11rC3AEX4c8GnIJQbWqGsouOFZOPna2DSG6o2rLNQ=="
},
"node_modules/@fluencelabs/fluence/node_modules/@fluencelabs/avm": {
"version": "0.16.0-webworker.6",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.16.0-webworker.6.tgz",
"integrity": "sha512-lza6jMD/leeRAOicQHsS2Hxk6YZtVp/Apl6iLXXbPF2hk+kqWkC6dvuKGFWwNf1xlapSjyY6YVjmFcVvhDErtQ==",
"dependencies": {
"base64-js": "1.5.1",
"threads": "^1.7.0"
}
},
"node_modules/@motrix/nat-api": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz",
@ -6885,6 +6897,15 @@
"node": ">=4.0.0"
}
},
"node_modules/esm": {
"version": "3.2.25",
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
"integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
"optional": true,
"engines": {
"node": ">=6"
}
},
"node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@ -9379,6 +9400,17 @@
"node": ">=8"
}
},
"node_modules/is-observable": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-observable/-/is-observable-2.1.0.tgz",
"integrity": "sha512-DailKdLb0WU+xX8K5w7VsJhapwHLZ9jjmazqCJq4X12CTgqq73TKnbRcnSLuXYPOoLQgV5IrD7ePiX/h1vnkBw==",
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-path-cwd": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
@ -11950,6 +11982,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/observable-fns": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/observable-fns/-/observable-fns-0.6.1.tgz",
"integrity": "sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg=="
},
"node_modules/obuf": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
@ -16291,6 +16328,31 @@
"node": ">=0.10.0"
}
},
"node_modules/threads": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/threads/-/threads-1.7.0.tgz",
"integrity": "sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==",
"dependencies": {
"callsites": "^3.1.0",
"debug": "^4.2.0",
"is-observable": "^2.1.0",
"observable-fns": "^0.6.1"
},
"funding": {
"url": "https://github.com/andywer/threads.js?sponsor=1"
},
"optionalDependencies": {
"tiny-worker": ">= 2"
}
},
"node_modules/threads/node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"engines": {
"node": ">=6"
}
},
"node_modules/through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
@ -16381,6 +16443,15 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
"node_modules/tiny-worker": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/tiny-worker/-/tiny-worker-2.3.0.tgz",
"integrity": "sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==",
"optional": true,
"dependencies": {
"esm": "^3.2.25"
}
},
"node_modules/to-arraybuffer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
@ -19500,20 +19571,22 @@
"dev": true
},
"@fluencelabs/avm": {
"version": "0.15.4",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.15.4.tgz",
"integrity": "sha512-NLZDq83ocJ1Helm0D8kPMSSkjxH0y+Tujg0px773zjIShbh3jgiJOjAW1xCYgTt9K0LqepjP0bWX4/8nUZfr7g==",
"version": "0.16.0-webworker.7",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.16.0-webworker.7.tgz",
"integrity": "sha512-wKHHMQcySHbIUS3YCk4nffZZb3hAeyLuTySaKO7iV1InVrkEBpC/EXk2t3fn4Hl6csXkUl2jftSDyBJdxw2dlg==",
"requires": {
"base64-js": "1.5.1"
"base64-js": "1.5.1",
"buffer": "^6.0.3",
"threads": "^1.7.0"
}
},
"@fluencelabs/fluence": {
"version": "0.14.2",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.14.2.tgz",
"integrity": "sha512-Cf5Ii6dpVSSi839jB7H0Y9k07xncYdHiTNKp4LlPg6inXuy2OPb2E7qF5DXlMM9O1dBb/UJTa4jZlQDsgWriiQ==",
"version": "0.10.4-worker-threads-551.0",
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.4-worker-threads-551.0.tgz",
"integrity": "sha512-57BEsExQo5gGfgwv0TZ7/jnL6Vd3QC0Esl07HsVyeTtE6Ha/eMeYzmrsodirLbih+8mS5fSL5sgio8DiBijXKA==",
"requires": {
"@chainsafe/libp2p-noise": "4.0.0",
"@fluencelabs/avm": "0.15.4",
"@fluencelabs/avm": "0.16.0-webworker.6",
"async": "3.2.0",
"base64-js": "1.5.1",
"bs58": "4.0.1",
@ -19530,6 +19603,17 @@
"rxjs": "^7.3.0",
"ts-pattern": "^3.3.3",
"uuid": "8.3.0"
},
"dependencies": {
"@fluencelabs/avm": {
"version": "0.16.0-webworker.6",
"resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.16.0-webworker.6.tgz",
"integrity": "sha512-lza6jMD/leeRAOicQHsS2Hxk6YZtVp/Apl6iLXXbPF2hk+kqWkC6dvuKGFWwNf1xlapSjyY6YVjmFcVvhDErtQ==",
"requires": {
"base64-js": "1.5.1",
"threads": "^1.7.0"
}
}
}
},
"@fluencelabs/fluence-network-environment": {
@ -24127,6 +24211,12 @@
"estraverse": "^4.1.1"
}
},
"esm": {
"version": "3.2.25",
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
"integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
"optional": true
},
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@ -26142,6 +26232,11 @@
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
"dev": true
},
"is-observable": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-observable/-/is-observable-2.1.0.tgz",
"integrity": "sha512-DailKdLb0WU+xX8K5w7VsJhapwHLZ9jjmazqCJq4X12CTgqq73TKnbRcnSLuXYPOoLQgV5IrD7ePiX/h1vnkBw=="
},
"is-path-cwd": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
@ -28258,6 +28353,11 @@
}
}
},
"observable-fns": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/observable-fns/-/observable-fns-0.6.1.tgz",
"integrity": "sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg=="
},
"obuf": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
@ -31869,6 +31969,25 @@
}
}
},
"threads": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/threads/-/threads-1.7.0.tgz",
"integrity": "sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==",
"requires": {
"callsites": "^3.1.0",
"debug": "^4.2.0",
"is-observable": "^2.1.0",
"observable-fns": "^0.6.1",
"tiny-worker": ">= 2"
},
"dependencies": {
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
}
}
},
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
@ -31960,6 +32079,15 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
"tiny-worker": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/tiny-worker/-/tiny-worker-2.3.0.tgz",
"integrity": "sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==",
"optional": true,
"requires": {
"esm": "^3.2.25"
}
},
"to-arraybuffer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",

View File

@ -31,7 +31,8 @@
},
"homepage": "https://github.com/fluencelabs/fluence-admin#readme",
"dependencies": {
"@fluencelabs/fluence": "^0.14.2",
"@fluencelabs/fluence": "0.10.4-worker-threads-551.0",
"@fluencelabs/avm": "0.16.0-webworker.7",
"@fluencelabs/fluence-network-environment": "1.0.10",
"css-spinners": "^1.0.1",
"tachyons": "^4.12.0",

View File

@ -26,12 +26,14 @@ import { Elm } from './Main.elm';
import * as serviceWorker from './serviceWorker';
import { interfaceInfo, peerInfo } from './types';
import { askAllAndSend, getAll } from './_aqua/app';
import { BackgroundWorker } from '@fluencelabs/avm';
const defaultNetworkName = 'testNet + krasnodar';
const defaultEnv = {
relays: [...testNet, ...krasnodar, ...stage],
relayIdx: 2,
// relays: [...testNet, ...krasnodar, ...stage],
relays: [krasnodar[3]],
relayIdx: 0,
logLevel: 'error',
};
@ -113,9 +115,14 @@ function genFlags(peerId, relays, relayIdx) {
(async () => {
const { relays, relayIdx, logLevel } = await initEnvironment();
setLogLevel(logLevel);
// setLogLevel(logLevel);
setLogLevel('error');
const keyPair = await KeyPair.randomEd25519();
await Fluence.start({ connectTo: relays[relayIdx].multiaddr });
await Fluence.start({
connectTo: relays[relayIdx].multiaddr,
defaultTtlMs: 500000,
avmWorker: new BackgroundWorker(),
});
const pid = Fluence.getStatus().peerId;
const flags = genFlags(pid, relays, relayIdx);
console.log(`Own peer id: ${pid}`);
@ -168,7 +175,7 @@ function genFlags(peerId, relays, relayIdx) {
// });
// }
await getAll(data.knownPeers, collectPeerInfo, collectServiceInterface, { ttl: 120000 });
await getAll(data.knownPeers, collectPeerInfo, collectServiceInterface, { ttl: 500000 });
});
})();

View File

@ -18,12 +18,15 @@ console.log('\x1b[36m%s\x1b[0m', `** elm-webpack-starter: mode "${MODE}", withDe
var common = {
mode: MODE,
entry: './src/index.js',
entry: {
index: './src/index.js',
},
output: {
path: path.join(__dirname, 'dist'),
publicPath: '/',
globalObject: 'this',
// FIXME webpack -p automatically adds hash when building for production
filename: MODE === 'production' ? '[name]-[hash].js' : 'index.js',
// filename: MODE === 'production' ? '[name]-[hash].js' : 'index.js',
},
plugins: [
new HTMLWebpackPlugin({