11个不稳定版本 (4个重大更改)
0.5.0 | 2024年6月28日 |
---|---|
0.4.3 | 2024年2月22日 |
0.4.1 | 2024年1月9日 |
0.4.0 | 2023年12月12日 |
0.1.3 | 2023年3月15日 |
#23 in #fluence
80 每月下载量
用于 aquavm-air-cli
600KB
16K SLoC
AquaVM
AquaVM执行编译的Aqua,即Aqua中间表示(AIR)脚本,并在Fluence对等计算协议的实施中发挥关键作用。具体而言,AquaVM允许在脚本中表达网络编排,并构建分布式、对等托管的服务。此外,AquaVM在促进Fluence网络中的函数可寻址性方面发挥着重要作用,见图1。
图1:风格化的AquaVM和AIR模型
由于AquaVM编译成Wasm,它可以在客户端(如浏览器和Node.js应用程序)和服务器环境中运行。
AquaVM:解释器执行模型
AquaVM的执行模型促进了Fluence协议的数据推送模型,该模型实现为一个粒子,即由数据、AIR和一些元数据组成的智能包。在这种情况下,AquaVM可以被视为一个纯状态转换函数,它促进粒子更新,包括通过取前一个和当前状态以产生新状态以及在剩余AIR工作流中更新的对等方列表和调用请求的状态管理。除了执行本地服务调用外,AquaVM还处理来自远程对等方的请求,例如作为并行执行块的一部分,以调用本地服务并处理未来响应,见图2。
图2:AquaVM解释器执行模型
总结来说,AquaVM执行模型处理简单和高级组合模式中的拓扑跳跃,例如在一个或多个对等点上的(异步)并行服务执行。
海蓝中间表示法(AIR):P2P系统的IR
AIR是一种基于S-expression的低级语言,未来将包含二进制形式。它目前由十四条指令组成,并将增加更多指令。AIR的语义受到π-演算、λ-演算和范畴论的影响。其语法受到Wasm文本格式(WAT)和Lisp的影响。AIR脚本控制Fluence对等网络、其对等点以及其他(P2P)网络上的资源,例如IPFS和Filecoin,例如,通过Marine适配器服务,如Fluence IPFS库。
AIR值描述以及AIR指令列表及其用法示例可以在这里找到。AIR及其接口的主要特性在这里进行讨论。
AIR指令的完整列表及其用法示例可以在这里找到。AquaVM接口的基本合约以及更详细的交互方案可以在这里找到。
存储库结构
- air是AquaVM的核心
- air-interpreter是一个支持不同编译目标的crate(Marine和wasm-bindgen)
- avm
- crates
- air-lib包含AquaVM核心的所有主要crate
- beautifier是AIR-beautifier的实现
- data-store定义了Fluence节点使用的
DataStore
trait - interpreter-wasm是一个crate,用于更好地将编译后的Wasm代码集成到Fluence节点中
- testing-framework是一个改进测试编写体验的框架实现
- tools包含与AquaVM相关的工具
支持
如果您发现了一个错误,请提交问题。您也可以在Discord或Telegram上联系我们。我们将尽力尽快解决问题。
贡献
任何感兴趣的人都可以为该项目做出贡献。请确保您阅读并遵守一些基本规则。
许可协议
所有软件代码均为 Fluence DAO 版权所有,遵循AGPLv3许可协议。
依赖项
~4–14MB
~160K SLoC