From 3c945d75f96c921ab602dbfa6cc51f0cbca4047e Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Tue, 23 Nov 2021 12:53:13 +0300 Subject: [PATCH 1/3] webworkers work --- package-lock.json | 162 +++++++++++++++++++++++++++++++++++++++++----- package.json | 3 +- src/index.js | 17 +++-- webpack.config.js | 7 +- 4 files changed, 164 insertions(+), 25 deletions(-) diff --git a/package-lock.json b/package-lock.json index 58c8c03..d315651 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index 3a62149..3e6ada8 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/index.js b/src/index.js index 19a648f..88aa831 100644 --- a/src/index.js +++ b/src/index.js @@ -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 }); }); })(); diff --git a/webpack.config.js b/webpack.config.js index b6ab174..84de614 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -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({ From 7eb79848e225aa0194681519710a749b87d005f5 Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Thu, 25 Nov 2021 12:26:38 +0300 Subject: [PATCH 2/3] Uncomment peer discovery --- aqua/app.aqua | 4 +- src/_aqua/app.d.ts | 4 +- src/_aqua/app.js | 173 +++++++++++++++++++++++++++++++++++---------- src/index.js | 4 +- 4 files changed, 143 insertions(+), 42 deletions(-) diff --git a/aqua/app.aqua b/aqua/app.aqua index 1a47175..293bf45 100644 --- a/aqua/app.aqua +++ b/aqua/app.aqua @@ -28,7 +28,7 @@ func findAndAskNeighboursSchema(relayPeerId: PeerId, clientId: PeerId, collectPe for n2 <- neighbors2 par: askAllAndSend(n2, collectPeerInfo, collectServiceInterface) -func getAll(knownPeers: []PeerId, collectPeerInfo: PeerInfoCb, collectServiceInterface: ServiceInterfaceCb): +func getAll(relayPeerId: PeerId, knownPeers: []PeerId, collectPeerInfo: PeerInfoCb, collectServiceInterface: ServiceInterfaceCb): on HOST_PEER_ID: -- co askAllAndSend(relayPeerId, collectPeerInfo, collectServiceInterface) @@ -38,4 +38,4 @@ func getAll(knownPeers: []PeerId, collectPeerInfo: PeerInfoCb, collectServiceInt for peer <- knownPeers par: askAllAndSend(peer, collectPeerInfo, collectServiceInterface) - -- co findAndAskNeighboursSchema(relayPeerId, %init_peer_id%, collectPeerInfo, collectServiceInterface) + co findAndAskNeighboursSchema(relayPeerId, %init_peer_id%, collectPeerInfo, collectServiceInterface) diff --git a/src/_aqua/app.d.ts b/src/_aqua/app.d.ts index 794ebd1..910f582 100644 --- a/src/_aqua/app.d.ts +++ b/src/_aqua/app.d.ts @@ -35,5 +35,5 @@ export function findAndAskNeighboursSchema(peer: FluencePeer, relayPeerId: strin -export function getAll(knownPeers: string[], collectPeerInfo: (arg0: string, arg1: { external_addresses: string[]; }, arg2: { blueprint_id: string; id: string; owner_id: string; }[], arg3: { dependencies: string[]; id: string; name: string; }[], arg4: { config: { name: string; }; hash: string; name: string; }[], callParams: CallParams<'arg0' | 'arg1' | 'arg2' | 'arg3' | 'arg4'>) => void | Promise, collectServiceInterface: (arg0: string, arg1: string, arg2: { function_signatures: { arguments: string[][]; name: string; output_types: string[]; }[]; record_types: { fields: string[][]; id: number; name: string; }[]; }, callParams: CallParams<'arg0' | 'arg1' | 'arg2'>) => void | Promise, config?: {ttl?: number}): Promise; -export function getAll(peer: FluencePeer, knownPeers: string[], collectPeerInfo: (arg0: string, arg1: { external_addresses: string[]; }, arg2: { blueprint_id: string; id: string; owner_id: string; }[], arg3: { dependencies: string[]; id: string; name: string; }[], arg4: { config: { name: string; }; hash: string; name: string; }[], callParams: CallParams<'arg0' | 'arg1' | 'arg2' | 'arg3' | 'arg4'>) => void | Promise, collectServiceInterface: (arg0: string, arg1: string, arg2: { function_signatures: { arguments: string[][]; name: string; output_types: string[]; }[]; record_types: { fields: string[][]; id: number; name: string; }[]; }, callParams: CallParams<'arg0' | 'arg1' | 'arg2'>) => void | Promise, config?: {ttl?: number}): Promise; +export function getAll(relayPeerId: string, knownPeers: string[], collectPeerInfo: (arg0: string, arg1: { external_addresses: string[]; }, arg2: { blueprint_id: string; id: string; owner_id: string; }[], arg3: { dependencies: string[]; id: string; name: string; }[], arg4: { config: { name: string; }; hash: string; name: string; }[], callParams: CallParams<'arg0' | 'arg1' | 'arg2' | 'arg3' | 'arg4'>) => void | Promise, collectServiceInterface: (arg0: string, arg1: string, arg2: { function_signatures: { arguments: string[][]; name: string; output_types: string[]; }[]; record_types: { fields: string[][]; id: number; name: string; }[]; }, callParams: CallParams<'arg0' | 'arg1' | 'arg2'>) => void | Promise, config?: {ttl?: number}): Promise; +export function getAll(peer: FluencePeer, relayPeerId: string, knownPeers: string[], collectPeerInfo: (arg0: string, arg1: { external_addresses: string[]; }, arg2: { blueprint_id: string; id: string; owner_id: string; }[], arg3: { dependencies: string[]; id: string; name: string; }[], arg4: { config: { name: string; }; hash: string; name: string; }[], callParams: CallParams<'arg0' | 'arg1' | 'arg2' | 'arg3' | 'arg4'>) => void | Promise, collectServiceInterface: (arg0: string, arg1: string, arg2: { function_signatures: { arguments: string[][]; name: string; output_types: string[]; }[]; record_types: { fields: string[][]; id: number; name: string; }[]; }, callParams: CallParams<'arg0' | 'arg1' | 'arg2'>) => void | Promise, config?: {ttl?: number}): Promise; diff --git a/src/_aqua/app.js b/src/_aqua/app.js index 9f2a5c4..b533f69 100644 --- a/src/_aqua/app.js +++ b/src/_aqua/app.js @@ -510,73 +510,166 @@ export function getAll(...args) { (xor (seq (seq - (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "relayPeerId") [] relayPeerId) + ) (call %init_peer_id% ("getDataSrv" "knownPeers") [] knownPeers) ) (xor - (fold knownPeers peer - (par - (seq - (call -relay- ("op" "noop") []) - (xor - (seq + (seq + (fold knownPeers peer + (par + (seq + (call -relay- ("op" "noop") []) + (xor (seq (seq (seq (seq (seq (seq - (call peer ("peer" "identify") [] ident) - (call peer ("dist" "list_blueprints") [] blueprints) + (seq + (call peer ("peer" "identify") [] ident) + (call peer ("dist" "list_blueprints") [] blueprints) + ) + (call peer ("dist" "list_modules") [] modules) ) - (call peer ("dist" "list_modules") [] modules) + (call peer ("srv" "list") [] services) ) - (call peer ("srv" "list") [] services) + (call -relay- ("op" "noop") []) + ) + (xor + (call %init_peer_id% ("callbackSrv" "collectPeerInfo") [peer ident services blueprints modules]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) ) - (call -relay- ("op" "noop") []) ) - (xor - (call %init_peer_id% ("callbackSrv" "collectPeerInfo") [peer ident services blueprints modules]) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + (call -relay- ("op" "noop") []) + ) + (fold services srv + (par + (seq + (call -relay- ("op" "noop") []) + (xor + (seq + (seq + (call peer ("srv" "get_interface") [srv.$.id!] iface) + (call -relay- ("op" "noop") []) + ) + (xor + (call %init_peer_id% ("callbackSrv" "collectServiceInterface") [peer srv.$.id! iface]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) + ) + ) + (seq + (call -relay- ("op" "noop") []) + (next srv) + ) ) ) - (call -relay- ("op" "noop") []) ) - (fold services srv + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4]) + ) + ) + (next peer) + ) + ) + (par + (seq + (call -relay- ("op" "noop") []) + (xor + (seq + (call relayPeerId ("kad" "neighborhood") [%init_peer_id% [] []] neighbors) + (fold neighbors n (par - (seq - (call -relay- ("op" "noop") []) - (xor - (seq - (seq - (call peer ("srv" "get_interface") [srv.$.id!] iface) - (call -relay- ("op" "noop") []) - ) - (xor - (call %init_peer_id% ("callbackSrv" "collectServiceInterface") [peer srv.$.id! iface]) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + (xor + (seq + (call n ("kad" "neighborhood") [%init_peer_id% [] []] neighbors2) + (fold neighbors2 n2 + (par + (seq + (call -relay- ("op" "noop") []) + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call n2 ("peer" "identify") [] ident0) + (call n2 ("dist" "list_blueprints") [] blueprints0) + ) + (call n2 ("dist" "list_modules") [] modules0) + ) + (call n2 ("srv" "list") [] services0) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (call %init_peer_id% ("callbackSrv" "collectPeerInfo") [n2 ident0 services0 blueprints0 modules0]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5]) + ) + ) + (call -relay- ("op" "noop") []) + ) + (fold services0 srv0 + (par + (seq + (call -relay- ("op" "noop") []) + (xor + (seq + (seq + (call n2 ("srv" "get_interface") [srv0.$.id!] iface0) + (call -relay- ("op" "noop") []) + ) + (xor + (call %init_peer_id% ("callbackSrv" "collectServiceInterface") [n2 srv0.$.id! iface0]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 6]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 7]) + ) + ) + (seq + (call -relay- ("op" "noop") []) + (next srv0) + ) + ) + ) + ) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 8]) + ) + ) + ) + (next n2) ) ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) + ) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 9]) ) ) - (seq - (call -relay- ("op" "noop") []) - (next srv) - ) + (next n) ) ) ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 10]) ) ) - (next peer) + (null) ) ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 11]) ) ) - (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 6]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 12]) ) ` return callFunction( @@ -587,6 +680,12 @@ export function getAll(...args) { "tag" : "void" }, "argDefs" : [ + { + "name" : "relayPeerId", + "argType" : { + "tag" : "primitive" + } + }, { "name" : "knownPeers", "argType" : { diff --git a/src/index.js b/src/index.js index 88aa831..b973469 100644 --- a/src/index.js +++ b/src/index.js @@ -175,7 +175,9 @@ function genFlags(peerId, relays, relayIdx) { // }); // } - await getAll(data.knownPeers, collectPeerInfo, collectServiceInterface, { ttl: 500000 }); + await getAll(Fluence.getStatus().relayPeerId, data.knownPeers, collectPeerInfo, collectServiceInterface, { + ttl: 500000, + }); }); })(); From 0b018ab107c47979f948027805dcd81aa724998d Mon Sep 17 00:00:00 2001 From: Pavel Murygin Date: Wed, 8 Dec 2021 00:15:28 +0300 Subject: [PATCH 3/3] update version --- package-lock.json | 116 ++++++++++++++++++++++++++++++---------------- package.json | 4 +- src/index.js | 2 +- 3 files changed, 79 insertions(+), 43 deletions(-) diff --git a/package-lock.json b/package-lock.json index d315651..d3c7924 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,8 @@ "version": "0.1.0", "license": "ISC", "dependencies": { - "@fluencelabs/avm": "0.16.0-webworker.7", - "@fluencelabs/fluence": "0.10.4-worker-threads-551.0", + "@fluencelabs/avm-worker-web": "0.0.4", + "@fluencelabs/fluence": "0.10.4-avm-worker-558.0", "@fluencelabs/fluence-network-environment": "1.0.10", "css-spinners": "^1.0.1", "tachyons": "^4.12.0", @@ -1331,22 +1331,49 @@ } }, "node_modules/@fluencelabs/avm": { - "version": "0.16.0-webworker.7", - "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.16.0-webworker.7.tgz", - "integrity": "sha512-wKHHMQcySHbIUS3YCk4nffZZb3hAeyLuTySaKO7iV1InVrkEBpC/EXk2t3fn4Hl6csXkUl2jftSDyBJdxw2dlg==", + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.17.6.tgz", + "integrity": "sha512-UV3vKW4O3CmECNyao3aizbrdL5syX0cxoV/+GtqEFOSazLJ0s+qrfYr8j0UWp9zLFi64Z75r8DoJqxKb9wBxkA==", "dependencies": { - "base64-js": "1.5.1", - "buffer": "^6.0.3", + "base64-js": "1.5.1" + } + }, + "node_modules/@fluencelabs/avm-worker": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm-worker/-/avm-worker-0.0.2.tgz", + "integrity": "sha512-S5ijm0QpqNSVSlj3grj6479mBfdF9O1E03xUb5N1/RiBH3fTQnGpK5u5GmbKwPJ6CvZonH7jy8tfMhGDQq5q2w==", + "dependencies": { + "@fluencelabs/avm": "^0.17.4", + "@fluencelabs/avm-worker-common": "^0.0.1" + } + }, + "node_modules/@fluencelabs/avm-worker-common": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm-worker-common/-/avm-worker-common-0.0.2.tgz", + "integrity": "sha512-2SrM9gReZ3h1A9oJGFGVxLSXEnjy1qhN+GG+abA0WEVkOTup6IKAkmKdbkby+HNgZYvdSqlVpCYhcPzdtmwlGw==" + }, + "node_modules/@fluencelabs/avm-worker-web": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm-worker-web/-/avm-worker-web-0.0.4.tgz", + "integrity": "sha512-5f92gHnourvMz1whF4RYPn8OW9q9RrFWlkvJenbBFpVAT/aTIic1OceDJoK9XC/Ao0Xg+fI1SNXz2txwS7DKPw==", + "dependencies": { + "@fluencelabs/avm-worker-common": "^0.0.2", "threads": "^1.7.0" } }, + "node_modules/@fluencelabs/avm-worker/node_modules/@fluencelabs/avm-worker-common": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm-worker-common/-/avm-worker-common-0.0.1.tgz", + "integrity": "sha512-e3+oJD5NmEnCsKhAamZa68ogKX2AOZsWOJkORmYeAF+vDyzSa/nFxqRYa1KVOWhtlXZrKkUg7Mdk4qrZpZiuQg==" + }, "node_modules/@fluencelabs/fluence": { - "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==", + "version": "0.10.4-avm-worker-558.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.4-avm-worker-558.0.tgz", + "integrity": "sha512-09SbvzWxiyfgzj4pJ4KrumhgiAoJLXsnSoupAcjOW/YiE7R2+UPzTy4BDYDFj0SwyC3zJ7WbnZlL42mr/gWAlg==", "dependencies": { "@chainsafe/libp2p-noise": "4.0.0", - "@fluencelabs/avm": "0.16.0-webworker.6", + "@fluencelabs/avm-worker": "^0.0.2", + "@fluencelabs/avm-worker-common": "^0.0.2", "async": "3.2.0", "base64-js": "1.5.1", "bs58": "4.0.1", @@ -1370,15 +1397,6 @@ "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", @@ -19571,22 +19589,51 @@ "dev": true }, "@fluencelabs/avm": { - "version": "0.16.0-webworker.7", - "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.16.0-webworker.7.tgz", - "integrity": "sha512-wKHHMQcySHbIUS3YCk4nffZZb3hAeyLuTySaKO7iV1InVrkEBpC/EXk2t3fn4Hl6csXkUl2jftSDyBJdxw2dlg==", + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.17.6.tgz", + "integrity": "sha512-UV3vKW4O3CmECNyao3aizbrdL5syX0cxoV/+GtqEFOSazLJ0s+qrfYr8j0UWp9zLFi64Z75r8DoJqxKb9wBxkA==", "requires": { - "base64-js": "1.5.1", - "buffer": "^6.0.3", + "base64-js": "1.5.1" + } + }, + "@fluencelabs/avm-worker": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm-worker/-/avm-worker-0.0.2.tgz", + "integrity": "sha512-S5ijm0QpqNSVSlj3grj6479mBfdF9O1E03xUb5N1/RiBH3fTQnGpK5u5GmbKwPJ6CvZonH7jy8tfMhGDQq5q2w==", + "requires": { + "@fluencelabs/avm": "^0.17.4", + "@fluencelabs/avm-worker-common": "^0.0.1" + }, + "dependencies": { + "@fluencelabs/avm-worker-common": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm-worker-common/-/avm-worker-common-0.0.1.tgz", + "integrity": "sha512-e3+oJD5NmEnCsKhAamZa68ogKX2AOZsWOJkORmYeAF+vDyzSa/nFxqRYa1KVOWhtlXZrKkUg7Mdk4qrZpZiuQg==" + } + } + }, + "@fluencelabs/avm-worker-common": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm-worker-common/-/avm-worker-common-0.0.2.tgz", + "integrity": "sha512-2SrM9gReZ3h1A9oJGFGVxLSXEnjy1qhN+GG+abA0WEVkOTup6IKAkmKdbkby+HNgZYvdSqlVpCYhcPzdtmwlGw==" + }, + "@fluencelabs/avm-worker-web": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm-worker-web/-/avm-worker-web-0.0.4.tgz", + "integrity": "sha512-5f92gHnourvMz1whF4RYPn8OW9q9RrFWlkvJenbBFpVAT/aTIic1OceDJoK9XC/Ao0Xg+fI1SNXz2txwS7DKPw==", + "requires": { + "@fluencelabs/avm-worker-common": "^0.0.2", "threads": "^1.7.0" } }, "@fluencelabs/fluence": { - "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==", + "version": "0.10.4-avm-worker-558.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.4-avm-worker-558.0.tgz", + "integrity": "sha512-09SbvzWxiyfgzj4pJ4KrumhgiAoJLXsnSoupAcjOW/YiE7R2+UPzTy4BDYDFj0SwyC3zJ7WbnZlL42mr/gWAlg==", "requires": { "@chainsafe/libp2p-noise": "4.0.0", - "@fluencelabs/avm": "0.16.0-webworker.6", + "@fluencelabs/avm-worker": "^0.0.2", + "@fluencelabs/avm-worker-common": "^0.0.2", "async": "3.2.0", "base64-js": "1.5.1", "bs58": "4.0.1", @@ -19603,17 +19650,6 @@ "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": { diff --git a/package.json b/package.json index 3e6ada8..35431d4 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,8 @@ }, "homepage": "https://github.com/fluencelabs/fluence-admin#readme", "dependencies": { - "@fluencelabs/fluence": "0.10.4-worker-threads-551.0", - "@fluencelabs/avm": "0.16.0-webworker.7", + "@fluencelabs/fluence": "0.10.4-avm-worker-558.0", + "@fluencelabs/avm-worker-web": "0.0.4", "@fluencelabs/fluence-network-environment": "1.0.10", "css-spinners": "^1.0.1", "tachyons": "^4.12.0", diff --git a/src/index.js b/src/index.js index b973469..8885a05 100644 --- a/src/index.js +++ b/src/index.js @@ -26,7 +26,7 @@ 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'; +import { BackgroundWorker } from '@fluencelabs/avm-worker-web'; const defaultNetworkName = 'testNet + krasnodar';