20个版本 (11个破坏性版本)
0.17.2 | 2024年2月22日 |
---|---|
0.16.0 | 2024年1月9日 |
0.15.0 | 2023年12月12日 |
0.14.0 | 2023年10月26日 |
0.2.0 | 2021年10月4日 |
#1052 in 神奇豆
58 个月下载
在 5 个crate中使用 (4个直接使用)
735KB
19K 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的语义受到π-calculus、λ-calculus和category theory的启发。其语法受到Wasm Text Format(WAT)和Lisp的启发。AIR脚本控制Fluence对等网络、其对等体,甚至其他(p2p)网络上的资源,例如IPFS和Filecoin,例如通过Marine适配器服务来访问Fluence IPFS库。
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 Labs, Inc.版权所有(c),受Apache-2.0许可协议保护。
依赖项
~13–27MB
~425K SLoC