update links (#406)

This commit is contained in:
shamsartem 2022-10-26 11:43:31 +03:00 committed by GitHub
parent dc8dd01d67
commit d218b01a8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 35 additions and 36 deletions

View File

@ -10,7 +10,7 @@ In order to use services available outside the Fluence network, such as [IPFS](h
In this example, we develop an adapter for the Ceramic [CLI API](https://developers.ceramic.network/build/cli/api/) with the goal of seamlessly integrating Ceramic services into Fluence peer-to-peer applications composed with Aqua. See Figure 1.
Our adapter service mounts the Ceramic CLI with the [MountedBinaryResult](https://doc.fluence.dev/docs/knowledge_aquamarine/marine/marine-rs-sdk#mountedbinaryresult) interface requiring the availability of [Ceramic tools](https://developers.ceramic.network/build/cli/installation/) as a sidecar. In addition, a limited Ceramic HTTP API implementation is also available using the Marine [curl adapter](https://doc.fluence.dev/docs/tutorials_tutorials/curl-as-a-service). Since the HTTP API is limited and won't let users create streams, it is offered primarily for educational purposes, although it may be useful in scenarios where a ceramic daemon deployment is not feasible.
Our adapter service mounts the Ceramic CLI with the [MountedBinaryResult](https://fluence.dev/docs/marine-book/marine-rust-sdk/developing/mounted-binaries) interface requiring the availability of [Ceramic tools](https://developers.ceramic.network/build/cli/installation/) as a sidecar. In addition, a limited Ceramic HTTP API implementation is also available using the Marine [curl adapter](https://fluence.dev/docs/build/tutorials/curl-as-a-service). Since the HTTP API is limited and won't let users create streams, it is offered primarily for educational purposes, although it may be useful in scenarios where a ceramic daemon deployment is not feasible.
**Please note that Ceramic binary access is currently only available at Fluence's `stage` network environment (`aqua config default_peers stage`) with path `/usr/bin/ceramic`.**
@ -22,7 +22,7 @@ ToDos:
- [X] Add use of Aqua demo
- [X] Change fldist to aqua cli
For another, comprehensive, end-to-end implementation of an adapter, see [Aqua IPFS Library](https://doc.fluence.dev/aqua-book/libraries/aqua-ipfs) and [Aqua IPFS demo](https://github.com/fluencelabs/examples/tree/main/aqua-examples/aqua-ipfs-integration).
For another, comprehensive, end-to-end implementation of an adapter, see [Aqua IPFS Library](https://fluence.dev/docs/aqua-book/libraries/aqua-ipfs) and [Aqua IPFS demo](https://github.com/fluencelabs/examples/tree/main/aqua-examples/aqua-ipfs-integration).
## Ceramic CLI Adapter Module

View File

@ -7,7 +7,7 @@ This example showcases 2 things:
## Learn about AquaIPFS
See [Aqua Book](https://doc.fluence.dev/aqua-book/libraries/aqua-ipfs).
See [Aqua Book](https://fluence.dev/docs/aqua-book/introduction).
## How to run & use this example

View File

@ -11,7 +11,7 @@ In this tutorial, we illustrate how Fluence and Aqua can help DApp developers mi
## Setting Up
If you haven't set up your Fluence and Aqua development environment, head over to the [setup docs](https://doc.fluence.dev/docs/tutorials_tutorials/recipes_setting_up); if you're not familiar with Fluence and Aqua, give the [developer docs](https://doc.fluence.dev) a gander.
If you haven't set up your Fluence and Aqua development environment, head over to the [setup docs](https://fluence.dev/docs/build/tutorials/setting-up-your-environment); if you're not familiar with Fluence and Aqua, give the [developer docs](https://fluence.dev/) a gander.
In addition to the Fluence setup, you ought to sign up for a few hosted (EVM) node providers with JSON-RPC access as discussed below.
@ -924,7 +924,7 @@ ipfs --api "/ip4/161.35.222.178/tcp/5001/p2p/12D3KooWApmdAtFJaeybnXtf1mBz1Tukxyr
]
```
Woo hoo!! All dressed up and nowhere to go ... just yet. Let's change that. In order to be able to deal with IPFS documents, we need to be able to interact with IPFS from Aqua. We could write a [custom IPFS adapter](./wasm-module/ipfs-adapter) and [custom IPFS processing module](./wasm-module/ipfs-cli) or use Fluence's builtin [IPFS integration with Aqua](https://doc.fluence.dev/aqua-book/libraries/aqua-ipfs) library. If we use the latter, we don't have to implement and deploy our own ipfs adapter service(s) and don't have to manage the associated function addresses. However, the Fluence IPFS library is geared toward file management, which means that we need to write and maintain a file processing service, which still leaves us with service management chores. So let's write and deploy a super-light ipfs adapter based on the ipfs cli[cat](https://docs.ipfs.io/reference/cli/#ipfs-cat) command.
Woo hoo!! All dressed up and nowhere to go ... just yet. Let's change that. In order to be able to deal with IPFS documents, we need to be able to interact with IPFS from Aqua. We could write a [custom IPFS adapter](./wasm-module/ipfs-adapter) and [custom IPFS processing module](./wasm-module/ipfs-cli) or use Fluence's builtin [IPFS integration with Aqua](https://fluence.dev/docs/aqua-book/libraries/aqua-ipfs) library. If we use the latter, we don't have to implement and deploy our own ipfs adapter service(s) and don't have to manage the associated function addresses. However, the Fluence IPFS library is geared toward file management, which means that we need to write and maintain a file processing service, which still leaves us with service management chores. So let's write and deploy a super-light ipfs adapter based on the [ipfs cat](https://docs.ipfs.tech/reference/kubo/cli/#ipfs-cat) command.
Our Ipfs adapter mirrors the [curl adapter](./wasm-modules/curl-adapter/) since it also uses a host-provided binary: `ipfs`.

View File

@ -4,7 +4,7 @@ In this example we illustrate the implementation and composition of two services
## Requirements
To run the example in its entirety, you need to install a few tools. See [Setting Up](https://doc.fluence.dev/docs/tutorials_tutorials/recipes_setting_up) for details. For more developer resources see the [Developer Docs](https://doc.fluence.dev/docs/), [Aqua Book](https://doc.fluence.dev/aqua-book/) and the [Marine Examples](./../../marine-examples).
To run the example in its entirety, you need to install a few tools. See [Setting Up](https://fluence.dev/docs/build/tutorials/setting-up-your-environment) for details. For more developer resources see the [Developer Docs](https://fluence.dev/docs/build/introduction), [Aqua Book](https://fluence.dev/docs/aqua-book/introduction) and the [Marine Examples](./../../marine-examples).
## Service Development And Deployment

View File

@ -1,9 +1,9 @@
# NEAR + Fluence + Aqua Integrations
## Overview
We provide integration examples for both a [Fluence JS](https://github.com/fluencelabs/fluence-js) peer based on the [NEAR API JS](https://docs.near.org/docs/api/javascript-library) and distributed [Wasm services](https://github.com/fluencelabs/marine) wrapping the [NEAR RPC API](https://docs.near.org/docs/api/rpc). A [NEAR CLI](https://docs.near.org/docs/tools/near-cli) integration is planned for the near future.
We provide integration examples for both a [Fluence JS](https://github.com/fluencelabs/fluence-js) peer based on the [NEAR API JS](https://docs.near.org/docs/api/javascript-library) and distributed [Wasm services](https://github.com/fluencelabs/marine) wrapping the [NEAR RPC API](https://docs.near.org/api/rpc/introduction). A [NEAR CLI](https://docs.near.org/docs/tools/near-cli) integration is planned for the near future.
In our examples we've been using the [Aqua CLI](https://doc.fluence.dev/aqua-book/aqua-cli) `aqua` and [Marine tooling](https://doc.fluence.dev/marine-book/marine-tooling-reference) (the [Marine REPL](https://doc.fluence.dev/marine-book/marine-tooling-reference/marine-repl) `mrepl` and [Marine CLI](https://doc.fluence.dev/marine-book/marine-tooling-reference/marine-cli) `marine`).
In our examples we've been using the [Aqua CLI](https://fluence.dev/docs/aqua-book/aqua-cli/) `aqua` and [Marine tooling](https://fluence.dev/docs/marine-book/marine-tooling-reference/) (the [Marine REPL](https://fluence.dev/docs/marine-book/marine-tooling-reference/marine-repl) `mrepl` and [Marine CLI](https://fluence.dev/docs/marine-book/marine-tooling-reference/marine-cli) `marine`).
For the purpose of this tutorial, we'll be using Fluence's new `fluence` CLI tool, which wraps the CLIs you have already been using, e.g., the `aqua` CLI and Marine tooling CLIs (`marine` and `mrepl`), and brings additional features such as project template generation, wrapper generation for deployed services, project dependencies install. See the [Fluence CLI docs](https://github.com/fluencelabs/fluence-cli#readme) for more information.
@ -22,13 +22,13 @@ Signing transactions and messages is a critical operation both on- and off-chain
### Implementing a Peer Node With Fluence JS and Aqua
As discussed in the [documentation](https://doc.fluence.dev/docs/fluence-js/5_run_in_node), we can use [Fluence JS](https://github.com/fluencelabs/fluence-js) in a Node JS application resulting in a viable peer node of the Fluence p2p network. If you haven't, have a look at the documentation before you continue. To follow along the code below:
As discussed in the [documentation](https://fluence.dev/docs/build/fluence-js/run-in-node), we can use [Fluence JS](https://github.com/fluencelabs/fluence-js) in a Node JS application resulting in a viable peer node of the Fluence p2p network. If you haven't, have a look at the documentation before you continue. To follow along the code below:
```bash
cd near-signing-node
```
In order to create our signing node, we wrap the [NEAR JS SDK](https://docs.near.org/docs/api/javascript-library) and, for a minimally viable experiment, expose the [sendMoney](https://near.github.io/near-api-js/classes/account.account-1.html#sendmoney) and a couple non-signing functions.
In order to create our signing node, we wrap the [NEAR JS SDK](https://docs.near.org/docs/api/javascript-library) and, for a minimally viable experiment, expose the [sendMoney](https://near.github.io/near-api-js/classes/account_multisig.Account2FA#sendmoney) and a couple non-signing functions.
In order to be able to expose `sendMoney` as an addressable service to Aqua, we need to implement the `sendMoney` interface and function in Aqua:
@ -185,15 +185,14 @@ Result:
}
```
In the output above listed the called function (`account_state`) with its arguments as well as the relay used for the call. So, you can observe the context of the function call. And there's a result of the call, of course. In our case it displays [the basic information](https://docs.near.org/tools/near-api-js/account#state) for our Near account described in [AccountView Interface](https://near.github.io/near-api-js/interfaces/providers_provider.accountview.html).
In the output above listed the called function (`account_state`) with its arguments as well as the relay used for the call. So, you can observe the context of the function call. And there's a result of the call, of course. In our case it displays [the basic information](https://docs.near.org/tools/near-api-js/account#state) for our Near account described in [AccountView Interface](https://near.github.io/near-api-js/interfaces/providers_provider.AccountView).
Similarly, we can call our `send_money` service with Aqua:
```aqua
```sh
fluence run \
-i aqua \
-f 'send_money("testnet", "<near-from-account>", "<near-to-account>", "10000", "lame_password", "<your-peer-id>", "<your-relay-id>")'
```
Replace the `near-from-account` and `near-to-account` account placeholders with your respective testnet wallets and the `your-peer-id` and `your-relay-id` with the values provided by your peer. Executing above Aqua statement produces a transaction receipt similar to the one below:
@ -386,11 +385,11 @@ In the next section, we briefly discuss how a variety of NEAR methods can be imp
Operating your own node may not always be desireable for a variety of reasons ranging from costs to reuse to scalability and failover requirements. A core feature of the Fluence peer-to-peer network paradigm, of course, is the deployment of Wasm services to essentially any peer, given some hosting agreement, which allows for high portability as well as easy reuse and scalability as a "deploy and forget", low cost solution. Even if the operation of a node is deemed necessary, as outlined in our Signing Node example above, it still may make sense to split services into a self-operated peer for signing-related activities and some hosted Wasm services otherwise. Of course, Aqua allows you to seamlessly compose any one of the (exposed) services regardless of the deployment approach.
In order to create a NEAR Wasm adapter, we wrap whatever functionality we need from the [NEAR RPC API](https://docs.near.org/docs/api/rpc) in our Wasm module(s).
In order to create a NEAR Wasm adapter, we wrap whatever functionality we need from the [NEAR RPC API](https://docs.near.org/api/rpc/introduction) in our Wasm module(s).
### Creating And Deploying NEAR Wasm Services
In the `services/near-adapter/modules` directory, you find a minimal WASM adapter `near-rpc-services` for [NEAR RPC API](https://docs.near.org/docs/api/rpc) to get you started. Since we are connecting to on-chain resources via JSON-RPC, we need our service module to have access to [cUrl](https://doc.fluence.dev/docs/tutorials_tutorials/curl-as-a-service), which we provide with the [cUrl adapter](../near-integration/services/near-adapter/modules/curl-adapter/):
In the `services/near-adapter/modules` directory, you find a minimal WASM adapter `near-rpc-services` for [NEAR RPC API](https://docs.near.org/api/rpc/introduction) to get you started. Since we are connecting to on-chain resources via JSON-RPC, we need our service module to have access to [cUrl](https://fluence.dev/docs/build/tutorials/curl-as-a-service), which we provide with the [cUrl adapter](../near-integration/services/near-adapter/modules/curl-adapter/):
```rust
// src/main.rs
@ -401,7 +400,7 @@ extern "C" {
}
```
Let's have a look at the implementation of the [`network status`](https://docs.near.org/docs/api/rpc/network#node-status) method, which provides a fairly extensive snapshot of the network at the time in inquiry. Our adapter, or wrapper, implementation needs to envelope the RPC [`status`](https://docs.near.org/docs/api/rpc/network#node-status) endpoint and requires only one parameter: the `network_id`', e.g., `testnet`:
Let's have a look at the implementation of the [`network status`](https://docs.near.org/api/rpc/network#node-status) method, which provides a fairly extensive snapshot of the network at the time in inquiry. Our adapter, or wrapper, implementation needs to envelope the RPC [`status`](https://docs.near.org/api/rpc/network#node-status) endpoint and requires only one parameter: the `network_id`', e.g., `testnet`:
```rust
// src.main.rs

View File

@ -15,4 +15,4 @@ cargo generate --git https://github.com/fluencelabs/marine-template
Which will prompt you for the project name and then generate the project, which will be your directory name. `cd` into your new directory and run `./build.sh` to compile the supplied __greeting__ function to a Wasm file ready for Marine.
Check out the [Fluence documentation](https://doc.fluence.dev/docs/) for more details on Marine and Aqua.
Check out the [Fluence documentation](https://fluence.dev/docs/build/introduction) for more details on Marine and Aqua.

View File

@ -11,7 +11,7 @@
# # K, Kb - kilobyte; Ki, KiB - kibibyte; M, Mb - megabyte; Mi, MiB - mebibyte; G, Gb - gigabyte; Gi, GiB - gibibyte;
# # Current limit is 4 GiB
# loggerEnabled: true # true, if it allows module to use the Marine SDK logger.
# loggingMask: 0 # manages the logging targets, described in here: https://doc.fluence.dev/marine-book/marine-rust-sdk/developing/logging#using-target-map
# loggingMask: 0 # manages the logging targets, described in here: https://fluence.dev/docs/marine-book/marine-rust-sdk/developing/logging
# mountedBinaries:
# curl: /usr/bin/curl # a map of mounted binary executable files
# preopenedFiles: # a list of files and directories that this module could access with WASI

View File

@ -15,4 +15,4 @@ cargo generate --git https://github.com/fluencelabs/marine-template
Which will prompt you for the project name and then generate the project, which will be your directory name. `cd` into your new directory and run `./build.sh` to compile the supplied __greeting__ function to a Wasm file ready for Marine.
Check out the [Fluence documentation](https://doc.fluence.dev/docs/) for more details on Marine and Aqua.
Check out the [Fluence documentation](https://fluence.dev/docs/build/introduction) for more details on Marine and Aqua.

View File

@ -11,7 +11,7 @@
# # K, Kb - kilobyte; Ki, KiB - kibibyte; M, Mb - megabyte; Mi, MiB - mebibyte; G, Gb - gigabyte; Gi, GiB - gibibyte;
# # Current limit is 4 GiB
# loggerEnabled: true # true, if it allows module to use the Marine SDK logger.
# loggingMask: 0 # manages the logging targets, described in here: https://doc.fluence.dev/marine-book/marine-rust-sdk/developing/logging#using-target-map
# loggingMask: 0 # manages the logging targets, described in here: https://fluence.dev/docs/marine-book/marine-rust-sdk/developing/logging
# mountedBinaries:
# curl: /usr/bin/curl # a map of mounted binary executable files
# preopenedFiles: # a list of files and directories that this module could access with WASI

View File

@ -14,7 +14,7 @@
# # K, Kb - kilobyte; Ki, KiB - kibibyte; M, Mb - megabyte; Mi, MiB - mebibyte; G, Gb - gigabyte; Gi, GiB - gibibyte;
# # Current limit is 4 GiB
# loggerEnabled: true # true, if it allows module to use the Marine SDK logger.
# loggingMask: 0 # manages the logging targets, described in here: https://doc.fluence.dev/marine-book/marine-rust-sdk/developing/logging#using-target-map
# loggingMask: 0 # manages the logging targets, described in here: https://fluence.dev/docs/marine-book/marine-rust-sdk/developing/logging
# mountedBinaries:
# curl: /usr/bin/curl # a map of mounted binary executable files
# preopenedFiles: # a list of files and directories that this module could access with WASI

View File

@ -7,7 +7,7 @@ Fluence provides an open Web3 protocol, framework and associated tooling to deve
Fluence Developer Resources:
* [Developer Documentation](https://doc.fluence.dev/docs/)
* [Developer Documentation](https://fluence.dev/docs/build/introduction)
Aqua Developer Resources:
@ -130,7 +130,7 @@ where the Aqua script can be found in the `aqua-scripts` dirctory and the compil
## Service Development And Deployment
**Prerequisites:** If you want to follow along, compile Wasm modules, create services and deploy service, you need Rust, Node and a few Fluence tools installed. Please see follow the [Setup](https://doc.fluence.dev/docs/tutorials_tutorials/recipes_setting_up) instructions.
**Prerequisites:** If you want to follow along, compile Wasm modules, create services and deploy service, you need Rust, Node and a few Fluence tools installed. Please see follow the [Setup](https://fluence.dev/docs/build/tutorials/setting-up-your-environment) instructions.
Applications are composed from one or more services available on one or more Fluence peer-to-peer nodes. Services are comprised of one or more Wasm modules providing a wide range of compute functionality and access to persistance, e.g. IPFS and SQLite. For the purpose of our objective, we need a service that can call on some API to source price quotes. In an ideal, production world, this would be calling on a large set of DEX contacts to obtain price pairs and, say, lquidity, over a particular window of time. For our purposes, we simplify the process and call on the [Coingecko API](https://www.coingecko.com/api/documentations/v3) and add a random jitter to each quote retrieved to give us some variance.

View File

@ -2,7 +2,7 @@
## Overview
Fluence services are composed from Wasm modules written in Rust and configuration files. The examples in this directory illustrate how to construct a variety of modules and services. See the [Setup Environment](https://doc.fluence.dev/docs/tutorials_tutorials/recipes_setting_up) section of the Fluence documentation to get.
Fluence services are composed from Wasm modules written in Rust and configuration files. The examples in this directory illustrate how to construct a variety of modules and services. See the [Setup Environment](https://fluence.dev/docs/build/tutorials/setting-up-your-environment) section of the Fluence documentation to get.
**Services** are logical constructs derived from Wasm modules and the associated linking and configuration data, which describe how modules are linked with each other and how they interact, if at all, with the outside world. The instantiation of a service from Wasm modules takes place on the peer-to-peer network, i.e. at the node level. More specifically, **blueprints** are json documents that provide the necessary information to build, i.e. link, a service from Wasm modules. See Figure 1 for a stylized representation of module and service creation.
@ -132,7 +132,7 @@ test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; fini
Now that we have a function service, we can deploy it to the network.
For a detailed introduction to and review of Fluence, see the [documentation](https://doc.fluence.dev/docs/).
For a detailed introduction to and review of Fluence, see the [documentation](https://fluence.dev/docs/build/introduction).
## Records Example
@ -532,7 +532,7 @@ pub fn produce(data: Input) -> Data {
}
```
The only new thing here is `#[marine]` on a struct. This adds the structure into module interface and requires all the fields to be supported by default or be another `#[marine]` structure. There is more information about it in [docs](https://doc.fluence.dev/docs/knowledge_aquamarine/marine/marine-rs-sdk#function-export).
The only new thing here is `#[marine]` on a struct. This adds the structure into module interface and requires all the fields to be supported by default or be another `#[marine]` structure. There is more information about it in [docs](https://fluence.dev/docs/marine-book/marine-rust-sdk/developing/export-functions).
Consumer:
```rust
@ -742,7 +742,7 @@ After that IDEs will provide code completion for `marine_test_env`. In order to
In each of the examples we created modules and services configurations and tested and inspected them with the Marine REPL. In this section we briefly discuss how to deploy our modules and configurations to the network as services using the *Greeting* example.
Before we begin, you need to have the `aqua` tool installed. See the [Tools documentation](https://doc.fluence.dev/docs/knowledge_tools) for more information.
Before we begin, you need to have the `aqua` tool installed. See the [Tools documentation](https://fluence.dev/docs/build/tools) for more information.
We use the `aqua remote deploy_service` command to do our bidding:
@ -774,7 +774,7 @@ Options and flags:
What service from the config file to deploy
```
Aside from our modules and configuration, we also want to supply the peer id of the node we want to host our service. You can find all available nodes on the [Fluence Dashboard](https://dash.fluence.dev/nodes). Please note that for all of our examples we will use peer `12D3KooWKnEqMfYo9zvfHmqTLpLdiHXPe4SVqUWcWHDJdFGrSmcA`. Alternatively, we can deploy to a local node -- see [Deploy A Local Node](https://doc.fluence.dev/docs/tutorials_tutorials/tutorial_run_local_node) for instructions.
Aside from our modules and configuration, we also want to supply the peer id of the node we want to host our service. You can find all available nodes on the [Fluence Dashboard](https://dash.fluence.dev/nodes). Please note that for all of our examples we will use peer `12D3KooWKnEqMfYo9zvfHmqTLpLdiHXPe4SVqUWcWHDJdFGrSmcA`. Alternatively, we can deploy to a local node -- see [Deploy A Local Node](https://fluence.dev/docs/build/tutorials/deploy-a-local-fluence-node) for instructions.
To create our greeting service on peer `12D3KooWKnEqMfYo9zvfHmqTLpLdiHXPe4SVqUWcWHDJdFGrSmcA`:
@ -806,8 +806,8 @@ Your peerId: 12D3KooWBVzSqoQqFycENVhw7W5RY1UHwPCn6U9iHG2mbwuCuLq3
"ec71a1fc-66d7-41f4-bff1-f9c07d361bd4"
```
The (peer id, service id) tuple is going to be useful once you start putting the service to work with, say, [Aqua](https://doc.fluence.dev/aqua-book/) and you should hold on the data for future use. Also, you can look up your service on the [Fluence Dashboard](https://dash.fluence.dev/blueprint/8d210ec2b83e4c661c71820b79f02d99908794e8af8034b465762f61682bc43b).
The (peer id, service id) tuple is going to be useful once you start putting the service to work with, say, [Aqua](https://fluence.dev/docs/aqua-book/introduction) and you should hold on the data for future use. Also, you can look up your service on the [Fluence Dashboard](https://dash.fluence.dev/blueprint/8d210ec2b83e4c661c71820b79f02d99908794e8af8034b465762f61682bc43b).
For more detailed information regarding Marine please refer to the [Marine Book](https://doc.fluence.dev/marine-book/).
For more detailed information regarding Marine please refer to the [Marine Book](https://fluence.dev/docs/marine-book/introduction).
For more detailed information regarding the Fluence solution see the [Fluence documentation](https://doc.fluence.dev) and if you have any questions, comments or suggestions for improvements, please open an Issue or PR.
For more detailed information regarding the Fluence solution see the [Fluence documentation](https://fluence.dev/) and if you have any questions, comments or suggestions for improvements, please open an Issue or PR.

View File

@ -137,7 +137,7 @@ service Greeting:
greeting(name: string) -> string
```
It's our starting point that we need to extend a bit: define the `hello` function that calls our deployed service and [export](https://doc.fluence.dev/aqua-book/language/header#export) it using an `export`:
It's our starting point that we need to extend a bit: define the `hello` function that calls our deployed service and [export](https://fluence.dev/docs/aqua-book/language/header/#export) it using an `export`:
```
module Greeting declares *
@ -169,7 +169,7 @@ where
`addr` - is a relay peer;
`input` - our [Aqua code](https://doc.fluence.dev/aqua-book/language) we run;
`input` - our [Aqua code](https://fluence.dev/docs/aqua-book/language/) we run;
`func` - a function call with parameters that initiates compute.

View File

@ -1,3 +1,3 @@
# 5. Decentralized Oracles With Fluence And Aqua
See the gitbook [documentation]( https://doc.fluence.dev/docs/quick-start/5.-decentralized-oracles-with-fluence-and-aqua) for the tutorial.
See the gitbook [documentation](https://fluence.dev/docs/build/quick-start/decentralized-oracles/) for the tutorial.

View File

@ -1,4 +1,4 @@
# Quick Start
For the documentation of this tutorial, please see the Fluence [developer documentation](https://doc.fluence.dev/docs/quick-start).
If you have any questions, please contact us in our[discord]( https://fluence.chat) channel, raise an issue or open a PR.
For the documentation of this tutorial, please see the Fluence [developer documentation](https://fluence.dev/docs/build/quick-start/).
If you have any questions, please contact us in our[discord](https://fluence.chat) channel, raise an issue or open a PR.