Welcome to the developer announcement channel! Updates & releases from the core team, discussions in the comments.
Fluence Resources:
Fluence documentation https://doc.fluence.dev/docs/
Aqua book https://doc.fluence.dev/aqua-book/
Discord Support https://fluence.chat/
Youtube https://www.youtube.com/channel/UC3b5eFyKRFlEMwSJ1BTjpbw
Fluence Resources:
Fluence documentation https://doc.fluence.dev/docs/
Aqua book https://doc.fluence.dev/aqua-book/
Discord Support https://fluence.chat/
Youtube https://www.youtube.com/channel/UC3b5eFyKRFlEMwSJ1BTjpbw
fluence.dev
Overview | Fluence Docs
Fluence Console is the convenient way to rent and manage resources from the decentralized Fluence compute marketplace. It is a web-based application that allows you to control the complete lifecycle of your resources and services, including your payments…
Update from 3 Sept 21
Updated the
-
- module interface type can be accessed by
- structs exported by a module can be accessed by
- functions under
Chosen naming and passing modules interfaces in arguments should make tests more readable.
Here is an example of a test written in old and new ways:
old:
new:
Also the update the solves problem with the same structures from different modules: they are now linked and have the same type.
If you need more examples, please look at tests in call_parameters and greeting, they are already using new interface.
Updated the
marine-rs-sdk-test to the 0.2.0 version with the following changes:-
#[marine_test] defines marine_test_env namespace with module interfaces- module interface type can be accessed by
marine_test_env::<module_name>::ModuleInterface- structs exported by a module can be accessed by
marine_test_env::<module_name>::<StructName>- functions under
#[marine_test] must specify in the arguments modules they useChosen naming and passing modules interfaces in arguments should make tests more readable.
Here is an example of a test written in old and new ways:
old:
#[marine_test(config_path = "../Config.toml", modules_dir = "../artifacts")]
fn empty_string() {
let actual = greeting.greeting(String::new());
assert_eq!(actual, "Hi, ");
}
new:
#[marine_test(config_path = "../Config.toml", modules_dir = "../artifacts")]
fn empty_string(greeting: marine_test_env::greeting::ModuleInterface {
let actual = greeting.greeting(String::new());
assert_eq!(actual, "Hi, ");
}Also the update the solves problem with the same structures from different modules: they are now linked and have the same type.
If you need more examples, please look at tests in call_parameters and greeting, they are already using new interface.
GitHub
marine/main.rs at master · fluencelabs/marine
Marine runs multi-module WebAssembly applications with interface-types and shared-nothing linking scheme - marine/main.rs at master · fluencelabs/marine
Update from 8 Sept 21
We have released the Aqua compiler 0.3.
Now Aqua compiler runs natively in the javascript environment and distributed as @fluencelabs/aqua NPM package.
The next milestone is to call Aqua funcs from the Aqua itself: we're building Aqua REPL.
See the changelog.
We have released the Aqua compiler 0.3.
Now Aqua compiler runs natively in the javascript environment and distributed as @fluencelabs/aqua NPM package.
The next milestone is to call Aqua funcs from the Aqua itself: we're building Aqua REPL.
See the changelog.
Release of a a new version of Fluence JS (v0.13.0) with the completely redesigned API.
Fluence JS now runs inside browser and nodejs environment. To learn more about updated Fluence JS visit https://doc.fluence.dev/docs/fluence-js
Added support for type-safe service registration. See here for additional info
See changelog
Fluence JS now runs inside browser and nodejs environment. To learn more about updated Fluence JS visit https://doc.fluence.dev/docs/fluence-js
Added support for type-safe service registration. See here for additional info
See changelog
doc.fluence.dev
Fluence JS
Added a new feature to the marine-rs-sdk-test: services integration testing.
The marine_test macro now allows creating several services and passing data from one to another. It means that testing multi-service applications is now easier and the development may become faster.
See the docs and the example for more information.
The marine_test macro now allows creating several services and passing data from one to another. It means that testing multi-service applications is now easier and the development may become faster.
See the docs and the example for more information.
🔔In 10 min: developer community call
Livestream & rec https://youtu.be/uFPHM3JVccs
- intro to AquaVM,
- Q&A,
- project presentations from the community members
📞Via Zoom: https://us06web.zoom.us/meeting/register/tZYtdeytqjwtHNPupTLlURpqIqpKzCeCImJM
🗓Add to your calendar: https://calendar.google.com/calendar/u/0/r?cid=3uo257pe19e8g2vg2910ljcqi0@group.calendar.google.com
Livestream & rec https://youtu.be/uFPHM3JVccs
- intro to AquaVM,
- Q&A,
- project presentations from the community members
📞Via Zoom: https://us06web.zoom.us/meeting/register/tZYtdeytqjwtHNPupTLlURpqIqpKzCeCImJM
🗓Add to your calendar: https://calendar.google.com/calendar/u/0/r?cid=3uo257pe19e8g2vg2910ljcqi0@group.calendar.google.com
AquaVM: empowering distributed systems
Video with timecodes explaining AquaVM https://youtu.be/uFPHM3JVccs
Video with timecodes explaining AquaVM https://youtu.be/uFPHM3JVccs
YouTube
Developer Community Call #3 - AquaVM: Empowering distributed systems
AquaVM: Empowering distributed systems
00:00 Intro to the community call, agenda
02:03 AquaVM presentation intro
02:48 Aqua language& Aqua Intermediate Representation, AIR
03:46 Fluent-pad example of aqua function
06:35 Fluence language stack
08:19 Fluence…
00:00 Intro to the community call, agenda
02:03 AquaVM presentation intro
02:48 Aqua language& Aqua Intermediate Representation, AIR
03:46 Fluent-pad example of aqua function
06:35 Fluence language stack
08:19 Fluence…
marine-rs-sdk-test 0.4.0 was released:added an option to apply milti-service
marine_test macro to a mod to have more flexibility,added an interface for generating
marine_test_env from cargo build scripts, which unblocks IDE support for testFor mode details please see example and docs.
📌The next developer community call is on Thursday, October 28 at 18.00 CET/9 am PT:
🔗https://us06web.zoom.us/meeting/register/tZYtdeytqjwtHNPupTLlURpqIqpKzCeCImJM
✅ intro to Marine, a general-purpose runtime. Fluence nodes use Marine to host the AquaVM and execute hosted Wasm services.
✅ Q&A
✅ Projects building with Fluence
🗓Add to calendar: https://calendar.google.com/calendar/u/0/r?cid=3uo257pe19e8g2vg2910ljcqi0@group.calendar.google.com
🔗https://us06web.zoom.us/meeting/register/tZYtdeytqjwtHNPupTLlURpqIqpKzCeCImJM
✅ intro to Marine, a general-purpose runtime. Fluence nodes use Marine to host the AquaVM and execute hosted Wasm services.
✅ Q&A
✅ Projects building with Fluence
🗓Add to calendar: https://calendar.google.com/calendar/u/0/r?cid=3uo257pe19e8g2vg2910ljcqi0@group.calendar.google.com
Released the major Aqua version 0.4.0 that targets Fluence-JS 0.14.2, so you need to update both if you want to try them out. The new JS/TS SDK is heavily rewritten to support async service functions declaration. It also embeds a deeply refactored AquaVM. So, there's a lot of changes under the hood.
No code changes in Aqua and JS/TS usage needed to upgrade or downgrade (until you switch to async services on the client side). If anything is not working, please file an issue.
No code changes in Aqua and JS/TS usage needed to upgrade or downgrade (until you switch to async services on the client side). If anything is not working, please file an issue.
The new Aqua 0.4.1 just arrived. Among refactorings & bugfixes a new language feature comes: closures.
Now you can create Aqua functions (arrows) within Aqua functions, call them immediately or pass further as an argument. Closures capture service resolutions and values available in the definition scope. See documentation for details.
Closures is a part of the effort to make Aqua code more modular and flexible, therefore composable and reusable. This is quite important for big projects and complex algorithms. More features addressing Aqua logic modularization are to come.
Another minor feature that comes with 0.4.1 is the
Now you can create Aqua functions (arrows) within Aqua functions, call them immediately or pass further as an argument. Closures capture service resolutions and values available in the definition scope. See documentation for details.
Closures is a part of the effort to make Aqua code more modular and flexible, therefore composable and reusable. This is quite important for big projects and complex algorithms. More features addressing Aqua logic modularization are to come.
Another minor feature that comes with 0.4.1 is the
--scheduled CLI flag that makes the compiler produce AIR in the Fluence's Script Storage format. If you have any other idea about how to make Aqua developer's life easier, please file an issue.Our next community call is scheduled for tomorrow, Thursday, Nov 11 at 18.00 CET (11 am CDT).
We are trying to make these calls helpful, educational, and entertaining for everyone who is getting into Fluence. Sometimes they take longer than we expected so feel free to join or drop off any time.
The preliminary agenda is:
- Updates from Fluence Labs (15 min)
- Apps demos by community members (15 min)
- Q&A, open discussions (15 min)
- Lecture about Marine (45 min)
During the lecture, we'll dive into Marine, our general-purpose Wasm runtime intended to run multi-modules Wasm applications with help of interface-types and shared-nothing linking scheme. We'll talk about the runtime architecture, API, and how it works internally.
Check out previous calls here:
- Recordings on Youtube
- Notes and future topics in Notion
- Add to Calendar
We are trying to make these calls helpful, educational, and entertaining for everyone who is getting into Fluence. Sometimes they take longer than we expected so feel free to join or drop off any time.
The preliminary agenda is:
- Updates from Fluence Labs (15 min)
- Apps demos by community members (15 min)
- Q&A, open discussions (15 min)
- Lecture about Marine (45 min)
During the lecture, we'll dive into Marine, our general-purpose Wasm runtime intended to run multi-modules Wasm applications with help of interface-types and shared-nothing linking scheme. We'll talk about the runtime architecture, API, and how it works internally.
Check out previous calls here:
- Recordings on Youtube
- Notes and future topics in Notion
- Add to Calendar
The new minor release of fluence-js has arrived: 0.14.3
Error handling has been improved. Now promises return from aqua call functions will fail early with user-friendly messages if the particle was not successfully sent onto the network.
Also some minor bugfixes delivered.
Please, refer to the changelog for more info.
Error handling has been improved. Now promises return from aqua call functions will fail early with user-friendly messages if the particle was not successfully sent onto the network.
Also some minor bugfixes delivered.
Please, refer to the changelog for more info.
AsyncVM is finally shipped on Krasnodar
AquaVM 0.15.0 enables service calls parallelization on a single peer, managed by Aqua scripts.
Previously parallelization in Aqua scripts worked only in the case of different machines: within the same peer, be it Rust node of Typescript,
This is not a protocol level change, so previous versions of Fluence peers keep working as expected.
The new AquaVM is now delivered both to the Rust peer and TypeScript peer. In the case of TypeScript, it also enables asynchronous services and callbacks, as AquaVM does not block anymore.
AquaVM 0.15.0 enables service calls parallelization on a single peer, managed by Aqua scripts.
Previously parallelization in Aqua scripts worked only in the case of different machines: within the same peer, be it Rust node of Typescript,
`par` / `co` code was actually executed sequentially. Now peer-local parallelism is managed by Aqua, just as expected.This is not a protocol level change, so previous versions of Fluence peers keep working as expected.
The new AquaVM is now delivered both to the Rust peer and TypeScript peer. In the case of TypeScript, it also enables asynchronous services and callbacks, as AquaVM does not block anymore.
GitHub
Release AIR interpreter 0.15.0 · fluencelabs/aquavm
0.15.0 @ NPM registry
0.15.0 @ crates.io
0.15.0 @ crates.io
Announcing Aqua 0.5.0. This release fixes the issue with using streams within
This is a breaking change: Aqua 0.5 targets the latest AquaVM bundled within FluenceJS 0.15.0+ and Fluence Node v0.0.23+.
With Aqua 0.5, we expect no more critical bugs in the compiler. So if you find any, please assume that it is unknown and file an issue.
for loops. Now streams are restricted to the scope of the iteration or of a function, which is much more intuitive. See the documentation updates here.This is a breaking change: Aqua 0.5 targets the latest AquaVM bundled within FluenceJS 0.15.0+ and Fluence Node v0.0.23+.
fldist does not support the new AIR scripts at the moment, so please use aqua --run to run Aqua from CLI.With Aqua 0.5, we expect no more critical bugs in the compiler. So if you find any, please assume that it is unknown and file an issue.
Added
It enables the timeout pattern between parallel execution branches: wait for some code to be executed, or do a failover if it does not respond in time. See Timeout pattern in the Aqua Book for the usage example.
Peer.timeout(delay_ms: u32, message: string): string function to the Fluence Peer's builtins, available in @fluencelabs/aqua-lib v0.2.1.It enables the timeout pattern between parallel execution branches: wait for some code to be executed, or do a failover if it does not respond in time. See Timeout pattern in the Aqua Book for the usage example.
GitHub
Release aqua-lib v0.2.1 · fluencelabs/aqua-lib
Changes since v0.2.0
#16 Peer.timeout: make message non-optional
#15 Add Peer.timeout
NPM package
v0.2.1 @ NPM registry
#16 Peer.timeout: make message non-optional
#15 Add Peer.timeout
NPM package
v0.2.1 @ NPM registry
🔔Developer community call, today, in 15 min, 17.00 CET/10 am CT
Jump in/out anytime
Agenda:
- Updates from the core team
- Demo by community members
- Q&A, open discussions
- Lecture: JS SDK, Fluence for JS developers
👉Join via link https://us06web.zoom.us/meeting/register/tZYtdeytqjwtHNPupTLlURpqIqpKzCeCImJM
Add event in your calendar
Jump in/out anytime
Agenda:
- Updates from the core team
- Demo by community members
- Q&A, open discussions
- Lecture: JS SDK, Fluence for JS developers
👉Join via link https://us06web.zoom.us/meeting/register/tZYtdeytqjwtHNPupTLlURpqIqpKzCeCImJM
Add event in your calendar
The new minor release of fluence-js has arrived: 0.15.1
It fixes the bug in service registration functions when the service is implemented as a class.
Now the correct class context is preserved when storing such implementations. Also includes minor bug fixes.
Please, refer to the changelog for more info.
It fixes the bug in service registration functions when the service is implemented as a class.
Now the correct class context is preserved when storing such implementations. Also includes minor bug fixes.
Please, refer to the changelog for more info.
