Merge branch 'master' into aqua-types

This commit is contained in:
Pavel Murygin 2021-06-22 18:47:46 +03:00
commit efb216f487
9 changed files with 201 additions and 338 deletions

View File

@ -8,5 +8,5 @@
encode zstd gzip encode zstd gzip
file_server file_server
root * /dist root * /dist
# try_files {path} /index.html try_files {path} /index.html
} }

View File

@ -1,20 +1,10 @@
FROM caddy FROM caddy:2.4.0
WORKDIR / WORKDIR /
COPY ./dist /dist COPY ./dist /dist
COPY Caddyfile /Caddyfile COPY Caddyfile /Caddyfile
#RUN printf '\n\
#dash.fluence.dev {\n\
# try_files /bundle/{path} /bundle/index.html?{query}&p={path}\n\
#}\n\
#'\
#>> /tmp/hello
#RUN echo 'try_files /bundle/{path} /bundle/index.html?{query}&p={path}' > Caddyfile
VOLUME /data VOLUME /data
#CMD ["caddy", "file-server", "--root", "/bundle", "--browse"]
CMD ["caddy", "run", "--config", "/Caddyfile"] CMD ["caddy", "run", "--config", "/Caddyfile"]
# DO NOT FORGET TO USE VOLUME OR CERTBOT WILL BAN: -v caddy_data:/data # DO NOT FORGET TO USE VOLUME OR CERTBOT WILL BAN: -v caddy_data:/data

4
env/env.json vendored Normal file
View File

@ -0,0 +1,4 @@
{
"nodes": [],
"logLevel": "error"
}

View File

@ -24,6 +24,7 @@
gtag('js', new Date()); gtag('js', new Date());
gtag('config', 'G-6ZTQKE1D4L'); gtag('config', 'G-6ZTQKE1D4L');
</script> </script>
<script id="env" type="application/json" src="env/env.json"></script>
<div id="root"></div> <div id="root"></div>
</body> </body>
</html> </html>

12
package-lock.json generated
View File

@ -998,15 +998,15 @@
} }
}, },
"@fluencelabs/aqua-cli": { "@fluencelabs/aqua-cli": {
"version": "0.1.6-149", "version": "0.1.7-153",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.1.6-149.tgz", "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.1.7-153.tgz",
"integrity": "sha512-CTKZKYLTapmuTh6J2e9rhwqs2SpifhfAqabYTwdWPuOER+W9w+7RY/rRvy9kaENT8i1fQsmY/5zTrbyUHfOPIQ==", "integrity": "sha512-/4z8QbA9RJZMaRIjy+Q1ZAiT8HIHONUGOG87YWaRb9O1uBHY1o/Onorx/kIlSXAF8+0N0EI/CVkhWWIrYMy9HQ==",
"dev": true "dev": true
}, },
"@fluencelabs/aqua-lib": { "@fluencelabs/aqua-lib": {
"version": "0.1.6", "version": "0.1.5",
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.6.tgz", "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.5.tgz",
"integrity": "sha512-SMl6eFvI/6DIMu5RsLk5Uy3HIvy/CIkvbIhSYAba/UMVMc/Yszm6L6FvNXp5R/wogRXtFdZ3WCF7NVPgyiYmRA==", "integrity": "sha512-0f5Lo9NT4ZvN+S/oGYiNxLUtpZsTfDy2qL0D4SFPVoj2+YPPK2PKSzZnja2clfM1KHHP6kT6Jd20sHVBIxBMtw==",
"dev": true "dev": true
}, },
"@fluencelabs/avm": { "@fluencelabs/avm": {

View File

@ -39,8 +39,8 @@
"devDependencies": { "devDependencies": {
"@babel/core": "^7.11.6", "@babel/core": "^7.11.6",
"@babel/preset-env": "^7.11.5", "@babel/preset-env": "^7.11.5",
"@fluencelabs/aqua-cli": "^0.1.6-149", "@fluencelabs/aqua-cli": "^0.1.7-153",
"@fluencelabs/aqua-lib": "^0.1.6", "@fluencelabs/aqua-lib": "^0.1.5",
"@types/yup": "^0.29.11", "@types/yup": "^0.29.11",
"babel-loader": "^8.1.0", "babel-loader": "^8.1.0",
"chokidar-cli": "^2.1.0", "chokidar-cli": "^2.1.0",

View File

@ -3,84 +3,13 @@
* This file is auto-generated. Do not edit manually: changes may be erased. * This file is auto-generated. Do not edit manually: changes may be erased.
* Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * 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 * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues
* Aqua version: 0.1.6-149 * Aqua version: 0.1.7-153
* *
*/ */
import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable';
export async function collectServiceInterfaces(client, peer, services) {
let request;
const promise = new Promise((resolve, reject) => {
request = new RequestFlowBuilder()
.disableInjections()
.withRawScript(
`
(xor
(seq
(seq
(seq
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
(call %init_peer_id% ("getDataSrv" "peer") [] peer)
)
(call %init_peer_id% ("getDataSrv" "services") [] services)
)
(fold services srv
(par
(seq
(seq
(seq
(call -relay- ("op" "identity") [])
(xor
(call peer ("srv" "get_interface") [srv.$.id!] iface)
(seq
(seq
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
)
(call -relay- ("op" "identity") [])
)
)
)
(call -relay- ("op" "identity") [])
)
(call %init_peer_id% ("event" "collectServiceInterface") [peer srv.$.id! iface])
)
(next srv)
)
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
`,
)
.configHandler((h) => {
h.on('getDataSrv', '-relay-', () => {
return client.relayPeerId;
});
h.on('getDataSrv', 'peer', () => {return peer;});
h.on('getDataSrv', 'services', () => {return services;});
h.onEvent('errorHandlingSrv', 'error', (args) => {
// assuming error is the single argument
const [err] = args;
reject(err);
});
})
.handleScriptError(reject)
.handleTimeout(() => {
reject('Request timed out for collectServiceInterfaces');
})
.build();
});
await client.initiateFlow(request);
return Promise.race([promise, Promise.resolve()]);
}
export async function askAllAndSend(client, peer) { export async function askAllAndSend(client, peer) {
let request; let request;
const promise = new Promise((resolve, reject) => { const promise = new Promise((resolve, reject) => {
@ -97,7 +26,7 @@ export async function askAllAndSend(client, peer) {
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
(call %init_peer_id% ("getDataSrv" "peer") [] peer) (call %init_peer_id% ("getDataSrv" "peer") [] peer)
) )
(call -relay- ("op" "identity") []) (call -relay- ("op" "noop") [])
) )
(xor (xor
(seq (seq
@ -111,43 +40,17 @@ export async function askAllAndSend(client, peer) {
(call peer ("srv" "list") [] services) (call peer ("srv" "list") [] services)
) )
(seq (seq
(seq (call -relay- ("op" "noop") [])
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
) )
(call -relay- ("op" "identity") [])
) )
) )
(call -relay- ("op" "noop") [])
) )
(call -relay- ("op" "identity") []) (call %init_peer_id% ("event" "all_info") [peer ident services blueprints modules])
) )
(fold services srv
(par
(seq
(seq
(seq
(call -relay- ("op" "identity") [])
(xor
(call peer ("srv" "get_interface") [srv.$.id!] iface)
(seq
(seq
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
) )
(call -relay- ("op" "identity") [])
)
)
)
(call -relay- ("op" "identity") [])
)
(call %init_peer_id% ("event" "collectServiceInterface") [peer srv.$.id! iface])
)
(next srv)
)
)
)
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
`, `,
) )
@ -192,7 +95,7 @@ export async function findAndAskNeighboursSchema(client, relayPeerId, clientId)
) )
(call %init_peer_id% ("getDataSrv" "clientId") [] clientId) (call %init_peer_id% ("getDataSrv" "clientId") [] clientId)
) )
(call -relay- ("op" "identity") []) (call -relay- ("op" "noop") [])
) )
(xor (xor
(seq (seq
@ -203,7 +106,7 @@ export async function findAndAskNeighboursSchema(client, relayPeerId, clientId)
(seq (seq
(call n ("kad" "neighborhood") [clientId false] neighbors2) (call n ("kad" "neighborhood") [clientId false] neighbors2)
(fold neighbors2 n2 (fold neighbors2 n2
(par (seq
(seq (seq
(xor (xor
(seq (seq
@ -218,61 +121,32 @@ export async function findAndAskNeighboursSchema(client, relayPeerId, clientId)
) )
(seq (seq
(seq (seq
(call -relay- ("op" "identity") []) (call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
) )
(call -relay- ("op" "identity") []) (call -relay- ("op" "noop") [])
)
)
(fold services srv
(par
(seq
(xor
(call n2 ("srv" "get_interface") [srv.$.id!] iface)
(seq
(seq
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
(call -relay- ("op" "identity") [])
)
)
(call n ("event" "collectServiceInterface") [n2 srv.$.id! iface])
)
(next srv)
) )
) )
(call n ("event" "all_info") [n2 ident services blueprints modules])
) )
(next n2) (next n2)
) )
) )
) )
(seq (seq
(seq (call -relay- ("op" "noop") [])
(call -relay- ("op" "identity") []) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
(call -relay- ("op" "identity") [])
) )
) )
(next n) (next n)
) )
) )
) )
(seq (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
(seq )
(call -relay- ("op" "identity") []) )
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4]) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
) )
(call -relay- ("op" "identity") [])
)
)
)
(seq
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5])
)
)
`, `,
) )
@ -309,8 +183,6 @@ export async function getAll(client, relayPeerId, knownPeers) {
.withRawScript( .withRawScript(
` `
(xor (xor
(seq
(seq
(seq (seq
(seq (seq
(seq (seq
@ -319,11 +191,12 @@ export async function getAll(client, relayPeerId, knownPeers) {
) )
(call %init_peer_id% ("getDataSrv" "knownPeers") [] knownPeers) (call %init_peer_id% ("getDataSrv" "knownPeers") [] knownPeers)
) )
(par
(par (par
(seq (seq
(seq (seq
(seq (seq
(call -relay- ("op" "identity") []) (call -relay- ("op" "noop") [])
(xor (xor
(seq (seq
(seq (seq
@ -336,47 +209,21 @@ export async function getAll(client, relayPeerId, knownPeers) {
(call relayPeerId ("srv" "list") [] services) (call relayPeerId ("srv" "list") [] services)
) )
(seq (seq
(seq (call -relay- ("op" "noop") [])
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
) )
(call -relay- ("op" "identity") [])
) )
) )
(call -relay- ("op" "noop") [])
) )
(call -relay- ("op" "identity") []) (call %init_peer_id% ("event" "all_info") [relayPeerId ident services blueprints modules])
)
(fold services srv
(par
(seq
(seq
(seq
(call -relay- ("op" "identity") [])
(xor
(call relayPeerId ("srv" "get_interface") [srv.$.id!] iface)
(seq
(seq
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
)
(call -relay- ("op" "identity") [])
)
)
)
(call -relay- ("op" "identity") [])
)
(call %init_peer_id% ("event" "collectServiceInterface") [relayPeerId srv.$.id! iface])
)
(next srv)
)
)
) )
(fold knownPeers peer (fold knownPeers peer
(par (par
(seq (seq
(seq (seq
(seq (seq
(call -relay- ("op" "identity") []) (call -relay- ("op" "noop") [])
(xor (xor
(seq (seq
(seq (seq
@ -389,48 +236,21 @@ export async function getAll(client, relayPeerId, knownPeers) {
(call peer ("srv" "list") [] services0) (call peer ("srv" "list") [] services0)
) )
(seq (seq
(seq (call -relay- ("op" "noop") [])
(call -relay- ("op" "identity") []) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
)
(call -relay- ("op" "identity") [])
) )
) )
) )
(call -relay- ("op" "identity") []) (call -relay- ("op" "noop") [])
)
(fold services0 srv0
(par
(seq
(seq
(seq
(call -relay- ("op" "identity") [])
(xor
(call peer ("srv" "get_interface") [srv0.$.id!] iface0)
(seq
(seq
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
)
(call -relay- ("op" "identity") [])
)
)
)
(call -relay- ("op" "identity") [])
)
(call %init_peer_id% ("event" "collectServiceInterface") [peer srv0.$.id! iface0])
)
(next srv0)
)
) )
(call %init_peer_id% ("event" "all_info") [peer ident0 services0 blueprints0 modules0])
) )
(next peer) (next peer)
) )
) )
) )
) (seq
(call -relay- ("op" "identity") []) (call -relay- ("op" "noop") [])
)
(xor (xor
(seq (seq
(call relayPeerId ("kad" "neighborhood") [%init_peer_id% false] neighbors) (call relayPeerId ("kad" "neighborhood") [%init_peer_id% false] neighbors)
@ -440,7 +260,7 @@ export async function getAll(client, relayPeerId, knownPeers) {
(seq (seq
(call n ("kad" "neighborhood") [%init_peer_id% false] neighbors2) (call n ("kad" "neighborhood") [%init_peer_id% false] neighbors2)
(fold neighbors2 n2 (fold neighbors2 n2
(par (seq
(seq (seq
(xor (xor
(seq (seq
@ -455,60 +275,33 @@ export async function getAll(client, relayPeerId, knownPeers) {
) )
(seq (seq
(seq (seq
(call -relay- ("op" "identity") []) (call -relay- ("op" "noop") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5]) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
) )
(call -relay- ("op" "identity") []) (call -relay- ("op" "noop") [])
)
)
(fold services1 srv1
(par
(seq
(xor
(call n2 ("srv" "get_interface") [srv1.$.id!] iface1)
(seq
(seq
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 6])
)
(call -relay- ("op" "identity") [])
)
)
(call n ("event" "collectServiceInterface") [n2 srv1.$.id! iface1])
)
(next srv1)
) )
) )
(call n ("event" "all_info") [n2 ident1 services1 blueprints1 modules1])
) )
(next n2) (next n2)
) )
) )
) )
(seq (seq
(seq (call -relay- ("op" "noop") [])
(call -relay- ("op" "identity") []) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 7])
)
(call -relay- ("op" "identity") [])
) )
) )
(next n) (next n)
) )
) )
) )
(seq (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5])
(seq
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 8])
)
(call -relay- ("op" "identity") [])
) )
) )
) )
(seq
(call -relay- ("op" "identity") [])
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 9])
) )
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 6])
) )
`, `,

View File

@ -19,6 +19,7 @@ import 'css-spinners/dist/all.min.css';
import './main.css'; import './main.css';
// eslint-disable-next-line import/no-extraneous-dependencies // eslint-disable-next-line import/no-extraneous-dependencies
import log from 'loglevel'; import log from 'loglevel';
import Multiaddr from 'multiaddr';
import { dev, krasnodar } from '@fluencelabs/fluence-network-environment'; import { dev, krasnodar } from '@fluencelabs/fluence-network-environment';
import { import {
createClient, createClient,
@ -33,12 +34,83 @@ import * as serviceWorker from './serviceWorker';
import { interfaceInfo, peerInfo } from './types'; import { interfaceInfo, peerInfo } from './types';
import { getAll } from './_aqua/app'; import { getAll } from './_aqua/app';
const relayIdx = 3; const defaultNetworkName = 'krasnodar';
const relays = krasnodar; const defaultEnv = {
// const relays = dev; relays: krasnodar,
relayIdx: 3,
logLevel: 'error',
};
function genFlags(peerId) { async function loadScript(script) {
return new Promise((resolve, reject) => {
var xhr = new XMLHttpRequest();
xhr.open('GET', script.src);
xhr.onreadystatechange = function () {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
resolve(xhr.responseText);
}
};
xhr.onerror = reject;
xhr.onabort = reject;
xhr.send();
});
}
function isMultiaddr(multiaddr) {
try {
Multiaddr(multiaddr);
return true;
} catch (error) {
return false;
}
}
async function initEnvironment() {
try {
const script = document.getElementById('env');
if (!script) {
console.log("Couldn't load environment, falling back to default (${defaultNetworkName})");
return defaultEnv;
}
const scriptContent = await loadScript(script);
const envWrapper = JSON.parse(scriptContent);
const res = { ...defaultEnv };
const data = envWrapper ? envWrapper.nodes : [];
if (data.length === 0) {
console.log(`Environment is empty, falling back to default (${defaultNetworkName})`);
} else {
data.forEach((element) => {
if (!element.multiaddr) {
console.error('multiaddr field is missing for ', element);
}
if (!element.peerId) {
console.error('peerId field is missing for ', element);
}
if (!isMultiaddr(element.multiaddr)) {
console.error(`Value ${element.multiaddr} is not a correct multiaddr`);
}
});
res.relays = data;
res.relayIdx = 0;
}
if (envWrapper.logLevel !== undefined) {
res.logLevel = envWrapper.logLevel;
}
return res;
} catch (error) {
console.error("Couldn't parse environment, error: ", error);
}
return defaultEnv;
}
function genFlags(peerId, relays, relayIdx) {
return { return {
peerId, peerId,
relayId: relays[relayIdx].peerId, relayId: relays[relayIdx].peerId,
@ -47,10 +119,10 @@ function genFlags(peerId) {
} }
(async () => { (async () => {
setLogLevel('ERROR'); const { relays, relayIdx, logLevel } = await initEnvironment();
setLogLevel(logLevel);
const pid = await generatePeerId(); const pid = await generatePeerId();
const flags = genFlags(pid.toB58String()); const flags = genFlags(pid.toB58String(), relays, relayIdx);
console.log(`connect with client: ${pid.toB58String()}`); console.log(`connect with client: ${pid.toB58String()}`);
// If the relay is ever changed, an event shall be sent to elm // If the relay is ever changed, an event shall be sent to elm

View File

@ -40,6 +40,9 @@ var common = {
{ {
from: 'favicon.ico', from: 'favicon.ico',
}, },
{
from: './env/*.*',
},
], ],
}), }),
], ],