func declarations are turned into callable async functions
service declarations are turned into functions which register callback handler in a typed manner
To learn more about Aqua see aqua book
The building block of the application are:
Aqua code for peer-to-peer communication
Compiler cli package for aqua to (java)typescript compilation
Initialization of the
Application specific code (java)typescript in the framework of your choice
In the next section we see it in action
The main entry point
Fluence facade. It provides easy way to start and stop the Fluence Peer. The facade API is enough for the most of the uses cases.
@fluencelabs/fluence package also exports the
Connectivity with one or many Fluence Node which allows sending particles to and receiving from other Peers
The Peer Id identifying the node in the network
Aqua VM which allows the execution of air scripts inside particles
A set of builtin functions required by Fluence protocol
Support for the typescript code which is generated by Aqua compiler
Even though the js-based implementation closely resembles node there are some considerable differences to the latter.
Due to the limitations of browser-based environment
FluencePeer cannot be discovered by it's Peer Id on it's own. To overcome this
FluencePeer must use an existing node which will act as a
relay. When a peer is connected through a relay it is considered to be
FluencePeer routes all it's particle through it's relay thus taking advantage of the peer discovery implemented on the node. A particle sent to the connected client must be routed through it's relay.
The js-based peer does not implement the full set of builtin functions due the limitations described previously. E.g there is no built-ins implementation for kad or srv services. However op service is fully implemented. For the full descriptions of implemented built-ins refer to Api reference
In contrast with the node implementation
FluencePeer can initiate new particles execution. Aqua compiler generates executable functions from
func definitions in aqua code.