1224 个版本 (55 个破坏性更新)

0.64.1 2024年7月24日
0.63.0 2024年4月17日
0.62.0 2024年2月22日
0.55.0 2023年12月12日
0.2.1-stepper-version.02020年12月31日

#15 in #fluence

Download history 17/week @ 2024-05-05 151/week @ 2024-05-12 178/week @ 2024-05-19 148/week @ 2024-05-26 208/week @ 2024-06-02 30/week @ 2024-06-09 38/week @ 2024-06-16 155/week @ 2024-06-23 195/week @ 2024-06-30 17/week @ 2024-07-07 71/week @ 2024-07-14 249/week @ 2024-07-21 587/week @ 2024-07-28 86/week @ 2024-08-04 88/week @ 2024-08-11 19/week @ 2024-08-18

每月下载量 823

AGPL-3.0-only

2.5MB

AquaVM

crates.io version npm version Coverage Status

AquaVM 执行编译的 Aqua,即 Aqua 中间表示 (AIR) 脚本,并在 Fluence 对等计算协议的实施中发挥核心作用。具体来说,AquaVM 允许在脚本中表达网络编排,并组合分布式、对等托管服务。此外,AquaVM 在促进 Fluence 网络中的 函数可寻址性 方面发挥着重要作用,见图 1。

AquaVM & AIR model

图 1: Stylized AquaVM And AIR Model

由于 AquaVM 编译为 Wasm,它可以在客户端(如浏览器和 Node.js 应用)以及服务器环境中运行。

AquaVM: 解释器执行模型

AquaVM 的执行模型简化了 Fluence 协议的数据推送模型,该模型实现为 粒子,即由数据、AIR 和一些元数据组成的智能数据包。在这种情况下,AquaVM 可以被视为一个纯状态转换函数,它促进粒子的更新,包括通过使用先前和当前状态来产生新状态,并在剩余的 AIR 工作流程中更新 peer 列表和调用请求。除了本地服务调用执行外,AquaVM 还处理来自远程 peer 的请求,例如作为并行执行块的一部分,以调用本地服务并处理未来响应,见图 2。

interpreter execution model

图 2: AquaVM Interpreter Execution Model

总之,AquaVM 执行模型处理了简单和高级组合模式(如(异步)并行服务执行在一个或多个 peer 上)的拓扑跃迁。

Aquamarine Intermediate Representation (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是一个用于支持不同编译目标(Marine和wasm-bindgen)的crate
  • avm
    • client是AquaVM的浏览器和Node.js目标启动器
    • server是AquaVM的服务器端目标启动器
  • crates
    • air-lib包含AquaVM核心的所有主要crate
    • beautifier是AIR-beautifier的实现
    • data-store定义了Fluence节点使用的DataStore trait
    • interpreter-wasm是一个用于更好地将编译的Wasm代码集成到Fluence节点的crate
    • testing-framework是一个改进测试编写体验的框架的实现
  • tools包含与AquaVM相关的工具

支持

如果您发现错误,请提交一个问题。您也可以在DiscordTelegram上联系我们。我们将尽力尽快解决该问题。

贡献

任何感兴趣的人都可以为项目做出贡献。请确保您已阅读并遵循一些基本的规则

许可

所有软件代码均为Fluence DAO版权所有(c),根据AGPLv3许可。

无运行时依赖