node example

This commit is contained in:
Pavel Murygin
2022-02-15 23:37:04 +03:00
parent 679d2e7c7c
commit b4f1f1c052
7 changed files with 15061 additions and 8527 deletions

View File

@ -0,0 +1,12 @@
import { runServer } from '../main';
import { demoCalculation } from '../_aqua/demo-calculation';
describe('smoke test', () => {
it('should work', async () => {
await runServer();
const res = await demoCalculation();
expect(res).toBe(7);
});
});

View File

@ -1,64 +1,3 @@
import { Fluence, KeyPair } from "@fluencelabs/fluence";
import { krasnodar } from "@fluencelabs/fluence-network-environment";
import { registerCalc, CalcDef } from "./_aqua/calc";
import { runServer, waitForKeypressAndStop } from './main';
class Calc implements CalcDef {
private _state: number = 0;
add(n: number) {
this._state += n;
}
subtract(n: number) {
this._state -= n;
}
multiply(n: number) {
this._state *= n;
}
divide(n: number) {
this._state /= n;
}
reset() {
this._state = 0;
}
getResult() {
return this._state;
}
}
const keypress = async () => {
process.stdin.setRawMode(true);
return new Promise<void>((resolve) =>
process.stdin.once("data", () => {
process.stdin.setRawMode(false);
resolve();
})
);
};
const relay = krasnodar[0];
// generated with `npx aqua create_keypair`
const skBytes = "tOpsT08fvYMnRypj3VtSoqWMN5W/AptKsP39yanlkg4=";
async function main() {
await Fluence.start({
connectTo: relay,
KeyPair: await KeyPair.fromEd25519SK(Buffer.from(skBytes, "base64")),
});
registerCalc(new Calc());
console.log("application started");
console.log("peer id is: ", Fluence.getStatus().peerId);
console.log("relay is: ", Fluence.getStatus().relayPeerId);
console.log("press any key to continue");
await keypress();
await Fluence.stop();
}
main();
runServer().then(waitForKeypressAndStop);

View File

@ -0,0 +1,58 @@
import { Fluence, KeyPair } from '@fluencelabs/fluence';
import { krasnodar } from '@fluencelabs/fluence-network-environment';
import { registerCalc, CalcDef } from './_aqua/calc';
class Calc implements CalcDef {
private _state: number = 0;
add(n: number) {
this._state += n;
}
subtract(n: number) {
this._state -= n;
}
multiply(n: number) {
this._state *= n;
}
divide(n: number) {
this._state /= n;
}
reset() {
this._state = 0;
}
getResult() {
return this._state;
}
}
const relay = krasnodar[0];
// generated with `npx aqua create_keypair`
const skBytes = 'tOpsT08fvYMnRypj3VtSoqWMN5W/AptKsP39yanlkg4=';
export async function runServer() {
await Fluence.start({
connectTo: relay,
KeyPair: await KeyPair.fromEd25519SK(Buffer.from(skBytes, 'base64')),
});
registerCalc(new Calc());
console.log('application started');
console.log('peer id is: ', Fluence.getStatus().peerId);
console.log('relay is: ', Fluence.getStatus().relayPeerId);
console.log('press any key to quit...');
}
export async function waitForKeypressAndStop() {
process.stdin.setRawMode(true);
process.stdin.resume();
process.stdin.on('data', async () => {
await Fluence.stop();
process.exit(0);
});
}