From 64f917b7b3a67ce1ba008dbd26c8b46f05dc10e3 Mon Sep 17 00:00:00 2001 From: boneyard93501 <4523011+boneyard93501@users.noreply.github.com> Date: Mon, 1 May 2023 14:23:33 -0500 Subject: [PATCH] add aqua --- .../ceramic-streams/src/aqua/main.aqua | 42 +++++++ .../src/aqua/main.aqua_workers | 119 ++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 aqua-examples/ceramic-streams/src/aqua/main.aqua create mode 100644 aqua-examples/ceramic-streams/src/aqua/main.aqua_workers diff --git a/aqua-examples/ceramic-streams/src/aqua/main.aqua b/aqua-examples/ceramic-streams/src/aqua/main.aqua new file mode 100644 index 0000000..aa67359 --- /dev/null +++ b/aqua-examples/ceramic-streams/src/aqua/main.aqua @@ -0,0 +1,42 @@ +aqua Main + +import "@fluencelabs/aqua-lib/builtin.aqua" +import "@fluencelabs/registry/subnetwork.aqua" +import Registry, Record from "@fluencelabs/registry/registry-service.aqua" +import "@fluencelabs/spell/spell_service.aqua" + +import "workers.aqua" +import "services.aqua" + +export did_create, did_create_w + + +service Console("run-console"): + print(any: ⊤) + -- print(any: ?[]string) + +func getWorkers() -> []Record, []Error: + workersInfo <- getWorkersInfo() + dealId = workersInfo.deals.defaultWorker.dealId + workersOp, err <- resolveSubnetwork(dealId) + if err.length > 0: + Console.print(["err not empty: ", workersOp!.length, err]) + <- workersOp!, err + + + +func did_create() -> string: + workers, err <- getWorkers() + -- if err.length > 0: + -- do something + w = workers[0] + on w.metadata.peer_id via w.metadata.relay_id: + res = Glaze.did_create() + <- res.stdout + +func did_create_w() -> string: + info <- getWorkersInfo() + spell = info.hosts.defaultWorker.installationSpells[0] + on spell.workerId via spell.hostId: + res <- Glaze.did_create() + <- res.stdout \ No newline at end of file diff --git a/aqua-examples/ceramic-streams/src/aqua/main.aqua_workers b/aqua-examples/ceramic-streams/src/aqua/main.aqua_workers new file mode 100644 index 0000000..85cefde --- /dev/null +++ b/aqua-examples/ceramic-streams/src/aqua/main.aqua_workers @@ -0,0 +1,119 @@ +aqua Main + +import "@fluencelabs/aqua-lib/builtin.aqua" +import "@fluencelabs/registry/subnetwork.aqua" +import Registry, Record from "@fluencelabs/registry/registry-service.aqua" +import "@fluencelabs/spell/spell_service.aqua" + +import "workers.aqua" +import "services.aqua" + +export did_create + + +service Console("run-console"): + print(any: ⊤) + -- print(any: ?[]string) + +func getWorkers() -> []Record, []Error: + workersInfo <- getWorkersInfo() + dealId = workersInfo.deals.defaultWorker.dealId + workersOp, err <- resolveSubnetwork(dealId) + if err.length > 0: + Console.print(["err not empty: ", workersOp!.length, err]) + <- workersOp!, err + + + +func did_create() -> string: + workers, err <- getWorkers() + -- if err.length > 0: + -- do something + w = workers[0] + on w.metadata.peer_id via w.metadata.relay_id: + res = Glaze.did_create() + <- res.stdout + + + +func did_create_w() -> string: + info <- getWorkersInfo() + spell = info.hosts.defaultWorker.installationSpells[0] + on spell.workerId via spell.hostId: + res <- Glaze.did_create() + <- res.stdout + + + +-- IMPORTANT: Add exports for all functions that you want to run +--export helloWorld, helloWorldRemote, getInfo, getInfos, getInfosInParallel + +-- DOCUMENTATION: +-- https://fluence.dev + + +-- export status + +-- service Console("run-console"): + -- print(any: ⊤) + +-- -- example of running a service deployed using 'fluence deal deploy' +-- -- with worker 'defaultWorker' which has service 'MyService' with method 'greeting' + +-- func status(): + -- workersInfo <- getWorkersInfo() + -- dealId = workersInfo.deals.defaultWorker.dealId + -- print = (answer: string, peer: string): + -- Console.print([answer, peer]) + + -- answers: *string + -- on HOST_PEER_ID: + -- workers <- resolveSubnetwork(dealId) + -- for w <- workers! par: + -- on w.metadata.peer_id via w.metadata.relay_id: + -- answer <- MyService.greeting("fluence") + -- answers <<- answer + -- print(answer, w.metadata.peer_id) + + -- Console.print("getting answers...") + -- join answers[workers!.length - 1] + -- par Peer.timeout(PARTICLE_TTL / 2, "TIMED OUT") + -- Console.print("done") + +-- local +func helloWorld(name: string) -> string: + <- Op.concat_strings("Hello, ", name) + +-- remote +func helloWorldRemote(name: string) -> string: + on HOST_PEER_ID: + hello_msg <- helloWorld(name) + from_msg <- Op.concat_strings(hello_msg, "! From ") + from_peer_msg <- Op.concat_strings(from_msg, HOST_PEER_ID) + <- from_peer_msg + +-- request response +func getInfo() -> Info, PeerId: + on HOST_PEER_ID: + info <- Peer.identify() + <- info, HOST_PEER_ID + +-- iterate through several peers +func getInfos(peers: []PeerId) -> []Info: + infos: *Info + for p <- peers: + on p: + infos <- Peer.identify() + <- infos + +-- parallel computation +func getInfosInParallel(peers: []PeerId) -> []Info: + infos: *Info + for p <- peers par: + on p: + infos <- Peer.identify() + + join infos[Op.array_length(peers) - 1] -- "-1" because it's 0-based + par Peer.timeout(PARTICLE_TTL / 2, "") + + <- infos