Remove getAll

This commit is contained in:
folex 2021-08-03 14:59:35 +03:00
parent 25fe108889
commit fb140f666a
5 changed files with 146 additions and 322 deletions

View File

@ -18,7 +18,7 @@ func askAllAndSend(peer: PeerId, collectPeerInfo: PeerInfoCb, collectServiceInte
modules <- Dist.list_modules()
services <- Srv.list()
collectPeerInfo(peer, ident, services, blueprints, modules)
collectServiceInterfaces(peer, services, collectServiceInterface)
-- collectServiceInterfaces(peer, services, collectServiceInterface)
-- retrieve PeerInfo and ServiceInterface-s from each peer in `peers`
func getServicesFromPeers(
@ -39,16 +39,12 @@ func discoverNeighbourhood(relay: PeerId, collectNeighbors: []string -> ()):
neighbors2 <- Kademlia.neighborhood(%init_peer_id%, nil, nil)
collectNeighbors(neighbors2)
func getAll(
relay: PeerId,
knownPeers: []PeerId,
collectPeerInfo: PeerInfoCb,
collectServiceInterface: ServiceInterfaceCb,
collectNeighbors: []string -> ()
):
co askAllAndSend(relay, collectPeerInfo, collectServiceInterface)
for peer <- knownPeers par:
askAllAndSend(peer, collectPeerInfo, collectServiceInterface)
co discoverNeighbourhood(relay, collectNeighbors)
func discoverNeighbourhoodFull(relay: PeerId, knownPeers: []PeerId, collectNeighbors: []string -> ()):
for node <- knownPeers par:
on node via relay:
neighbors <- Kademlia.neighborhood(%init_peer_id%, nil, nil)
co collectNeighbors(neighbors)
for n <- neighbors par:
on n:
neighbors2 <- Kademlia.neighborhood(%init_peer_id%, nil, nil)
collectNeighbors(neighbors2)

6
package-lock.json generated
View File

@ -998,9 +998,9 @@
}
},
"@fluencelabs/aqua-cli": {
"version": "0.1.9-165",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.1.9-165.tgz",
"integrity": "sha512-DBcPRxzJiQCdnur2wVgX47CRccTSoXhDPwURh8IW8RuP0vI+F8MWRcqdxT9DDDMe396e9je3f7g2bT8gfif1SQ==",
"version": "0.1.10-188",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.1.10-188.tgz",
"integrity": "sha512-3StvE+xevgQVsGwHGpSY+OuXx86N89MxUpguvZfwufRuSLIO++aMmUGUC14GFc7LQelcP86h6pFZ5o7pNYEIVw==",
"dev": true
},
"@fluencelabs/aqua-lib": {

View File

@ -38,7 +38,7 @@
"yup": "^0.32.9"
},
"devDependencies": {
"@fluencelabs/aqua-cli": "0.1.9-165",
"@fluencelabs/aqua-cli": "0.1.10-188",
"@fluencelabs/aqua-lib": "0.1.13",
"@babel/core": "^7.11.6",
"@babel/preset-env": "^7.11.5",

View File

@ -3,7 +3,7 @@
* This file is auto-generated. Do not edit manually: changes may be erased.
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/.
* If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
* Aqua version: 0.1.9-165
* Aqua version: 0.1.10-188
*
*/
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
@ -33,53 +33,24 @@ export async function askAllAndSend(client, peer, collectPeerInfo, collectServic
(seq
(seq
(seq
(seq
(seq
(call peer ("peer" "identify") [] ident)
(call peer ("dist" "list_blueprints") [] blueprints)
)
(call peer ("dist" "list_modules") [] modules)
)
(call peer ("srv" "list") [] services)
(call peer ("peer" "identify") [] ident)
(call peer ("dist" "list_blueprints") [] blueprints)
)
(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 peer ("dist" "list_modules") [] modules)
)
(call peer ("srv" "list") [] services)
)
(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)
)
)
(xor
(call %init_peer_id% ("callbackSrv" "collectPeerInfo") [peer ident services blueprints modules])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
`,
@ -113,222 +84,6 @@ h.on('callbackSrv', 'collectServiceInterface', (args) => {collectServiceInterfac
export async function getAll(client, relay, knownPeers, collectPeerInfo, collectServiceInterface, collectNeighbors, config) {
let request;
config = config || {};
const promise = new Promise((resolve, reject) => {
var r = new RequestFlowBuilder()
.disableInjections()
.withRawScript(
`
(xor
(seq
(seq
(seq
(seq
(seq
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
)
(call %init_peer_id% ("getDataSrv" "knownPeers") [] knownPeers)
)
(par
(seq
(call -relay- ("op" "noop") [])
(xor
(seq
(seq
(seq
(seq
(seq
(seq
(seq
(call relay ("peer" "identify") [] ident)
(call relay ("dist" "list_blueprints") [] blueprints)
)
(call relay ("dist" "list_modules") [] modules)
)
(call relay ("srv" "list") [] services)
)
(call -relay- ("op" "noop") [])
)
(xor
(call %init_peer_id% ("callbackSrv" "collectPeerInfo") [relay 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 relay ("srv" "get_interface") [srv.$.id!] iface)
(call -relay- ("op" "noop") [])
)
(xor
(call %init_peer_id% ("callbackSrv" "collectServiceInterface") [relay 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 %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
)
)
(null)
)
)
(fold knownPeers peer
(par
(seq
(call -relay- ("op" "noop") [])
(xor
(seq
(seq
(seq
(seq
(seq
(seq
(seq
(call peer ("peer" "identify") [] ident0)
(call peer ("dist" "list_blueprints") [] blueprints0)
)
(call peer ("dist" "list_modules") [] modules0)
)
(call peer ("srv" "list") [] services0)
)
(call -relay- ("op" "noop") [])
)
(xor
(call %init_peer_id% ("callbackSrv" "collectPeerInfo") [peer 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 peer ("srv" "get_interface") [srv0.$.id!] iface0)
(call -relay- ("op" "noop") [])
)
(xor
(call %init_peer_id% ("callbackSrv" "collectServiceInterface") [peer 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)
)
)
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 8])
)
)
(next peer)
)
)
)
(par
(seq
(call -relay- ("op" "noop") [])
(xor
(seq
(seq
(call relay ("kad" "neighborhood") [%init_peer_id% $nil $nil] neighbors)
(par
(seq
(call -relay- ("op" "noop") [])
(xor
(call %init_peer_id% ("callbackSrv" "collectNeighbors") [neighbors])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 9])
)
)
(null)
)
)
(fold neighbors n
(par
(xor
(seq
(seq
(call n ("kad" "neighborhood") [%init_peer_id% $nil $nil] neighbors2)
(call -relay- ("op" "noop") [])
)
(xor
(call %init_peer_id% ("callbackSrv" "collectNeighbors") [neighbors2])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 10])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 11])
)
(next n)
)
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 12])
)
)
(null)
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 13])
)
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return client.relayPeerId;
});
h.on('getDataSrv', 'relay', () => {return relay;});
h.on('getDataSrv', 'knownPeers', () => {return knownPeers;});
h.on('callbackSrv', 'collectPeerInfo', (args) => {collectPeerInfo(args[0], args[1], args[2], args[3], args[4]); return {};});
h.on('callbackSrv', 'collectServiceInterface', (args) => {collectServiceInterface(args[0], args[1], args[2]); return {};});
h.on('callbackSrv', 'collectNeighbors', (args) => {collectNeighbors(args[0]); return {};});
h.onEvent('errorHandlingSrv', 'error', (args) => {
// assuming error is the single argument
const [err] = args;
reject(err);
});
})
.handleScriptError(reject)
.handleTimeout(() => {
reject('Request timed out for getAll');
})
if(config.ttl) {
r.withTTL(config.ttl)
}
request = r.build();
});
await client.initiateFlow(request);
return Promise.race([promise, Promise.resolve()]);
}
export async function getServicesFromPeers(client, peers, collectPeerInfo, collectServiceInterface, config) {
let request;
config = config || {};
@ -353,57 +108,28 @@ export async function getServicesFromPeers(client, peers, collectPeerInfo, colle
(seq
(seq
(seq
(seq
(seq
(call peer ("peer" "identify") [] ident)
(call peer ("dist" "list_blueprints") [] blueprints)
)
(call peer ("dist" "list_modules") [] modules)
)
(call peer ("srv" "list") [] services)
(call peer ("peer" "identify") [] ident)
(call peer ("dist" "list_blueprints") [] blueprints)
)
(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 peer ("dist" "list_modules") [] modules)
)
(call peer ("srv" "list") [] services)
)
(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)
)
)
(xor
(call %init_peer_id% ("callbackSrv" "collectPeerInfo") [peer ident services blueprints modules])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(next peer)
)
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
`,
@ -437,6 +163,111 @@ h.on('callbackSrv', 'collectServiceInterface', (args) => {collectServiceInterfac
export async function discoverNeighbourhoodFull(client, relay, knownPeers, collectNeighbors, config) {
let request;
config = config || {};
const promise = new Promise((resolve, reject) => {
var r = new RequestFlowBuilder()
.disableInjections()
.withRawScript(
`
(xor
(seq
(seq
(seq
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
(call %init_peer_id% ("getDataSrv" "relay") [] relay)
)
(call %init_peer_id% ("getDataSrv" "knownPeers") [] knownPeers)
)
(fold knownPeers node
(par
(seq
(seq
(call -relay- ("op" "noop") [])
(call relay ("op" "noop") [])
)
(xor
(seq
(seq
(call node ("kad" "neighborhood") [%init_peer_id% $nil $nil] neighbors)
(par
(seq
(seq
(call relay ("op" "noop") [])
(call -relay- ("op" "noop") [])
)
(xor
(call %init_peer_id% ("callbackSrv" "collectNeighbors") [neighbors])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
)
(null)
)
)
(fold neighbors n
(par
(seq
(call relay ("op" "noop") [])
(xor
(seq
(seq
(call n ("kad" "neighborhood") [%init_peer_id% $nil $nil] neighbors2)
(call -relay- ("op" "noop") [])
)
(xor
(call %init_peer_id% ("callbackSrv" "collectNeighbors") [neighbors2])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
)
(next n)
)
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
)
)
(next node)
)
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5])
)
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return client.relayPeerId;
});
h.on('getDataSrv', 'relay', () => {return relay;});
h.on('getDataSrv', 'knownPeers', () => {return knownPeers;});
h.on('callbackSrv', 'collectNeighbors', (args) => {collectNeighbors(args[0]); return {};});
h.onEvent('errorHandlingSrv', 'error', (args) => {
// assuming error is the single argument
const [err] = args;
reject(err);
});
})
.handleScriptError(reject)
.handleTimeout(() => {
reject('Request timed out for discoverNeighbourhoodFull');
})
if(config.ttl) {
r.withTTL(config.ttl)
}
request = r.build();
});
await client.initiateFlow(request);
return Promise.race([promise, Promise.resolve()]);
}
export async function discoverNeighbourhood(client, relay, collectNeighbors, config) {
let request;
config = config || {};

View File

@ -32,7 +32,7 @@ import {
import { Elm } from './Main.elm';
import * as serviceWorker from './serviceWorker';
import { interfaceInfo, peerInfo } from './types';
import { getAll, getServicesFromPeers } from './_aqua/app';
import { discoverNeighbourhoodFull, getAll, getServicesFromPeers } from './_aqua/app';
const defaultNetworkName = 'krasnodar';
@ -203,20 +203,17 @@ function genFlags(peerId, relays, relayIdx) {
// clear knownPeersSet to ask these peers again
knownPeersSet.clear();
knownPeersSet.add(...flags.knownPeers);
knownPeersSet.add(flags.relayPeerId);
await getAll(
await getServicesFromPeers(
client,
data.relayPeerId,
data.knownPeers,
[data.relayPeerId, ...data.knownPeers],
collectPeerInfo,
collectServiceInterface,
collectNeighbors,
{
ttl: 1000000,
},
{ ttl: 1000000 },
);
knownPeersSet.add(...data.knownPeers);
knownPeersSet.add(data.relayPeerId);
await discoverNeighbourhoodFull(client, data.relayPeerId, data.knownPeers, collectNeighbors, { ttl: 1000000 });
});
})();