运作原理
协议
Fluence 协议构建了计算资源的网络,并定义了无云栈以执行计算任务。
Fluence 网络概述
云无关函数,Aqua
Fluence 网络完全基于 Aqua 协议运行,提供无中心协调的安全分布式执行。Aqua 也是一种领域特定的脚本语言,编译为 π 演算操作,允许表达无死锁的分布式算法。Aqua 协议无需部署:Aqua 脚本被打包成数据包,按脚本编写的程序在网络上传播时执行。此外,Aqua 确保脚本执行的加密安全:所有请求及其逐步执行均由参与的节点签名,使得执行的脚本可审计和验证。
用 Aqua 编写的代码被称为云无关函数,因为它跨云、跨服务器、跨地域运行。云无关函数驱动客户应用程序和 Fluence 协议本身。服务发现、路由、负载均衡、子网启动和操作、扩展和容错算法都在 Aqua 上运行,并表现为云无关函数。
计算函数,Marine
在 Aqua 管理服务器和云之间的执行拓扑和流程的同时,Fluence 使用 Marine 在节点上运行计算任务,Marine 是一个 WebAssembly 运行时,允许多模块执行,结合接口类型和 WASI 进行效应器访问。
Marine 驱动计算函数,这些函数在单一机器内执行,类似于无服务器云函数。Marine 支持 Rust 和 C++ 作为源语言,随着 WebAssembly 标准的发展,将支持更多语言。
子网
网络中的所有计算函数都通过复制部署以确保容错:如果由于硬件故障或网络中断某个节点变得不可用。复制的部署称为子网。子网操作完全由开发人员通过云无关函数定制,因此开发人员可以启用故障转移、负载均衡、共识或任何其他自定义算法。
子网在 Fluence 上创建了高度可用的数据存储。可以用于热缓存或数据索引,而大量数据的存储则外包给外部存储网络,无论是集中式(如 S3)还是去中心化(如 Filecoin/Arweave)。
计算证明
Fluence 协议强制网络中所有执行生成加密证明。提供者为其计算生成证明,客户只需支付附有证明的已验证和正确的工作。
Aqua 安全性
当节点在 Fluence 中操作时,他们不断地服务于传入的云无关函数调用,这些调用需要进一步转发函数或在该节点上运行计算函数。对于每个传入的云无关函数,节点验证之前涉及节点的执行轨迹,以确保此流程的正确执行。由错误节点执行的云无关函数或被扰乱的拓扑将被丢弃。
如果云无关函数要求节点运行计算函数,节点完成工作,扩展执行轨迹,并按请求进一步转发请求。通过这种方式,协议确保了正确的操作,并为所有执行生成审计记录。
处理证明
协议在链上强制执行对 Aqua 执行的概率验证。由于所有计算都封装在 Aqua 中,这意味着平台上执行的所有操作都会在链上概率性地得到验证。提供者必须提交所需的执行才能获得奖励,否则将被削减。
执行证明
Fluence 上的特定代码执行的加密证明。每个函数执行都伴随着由 Fluence 的 Marine WebAssembly 运行时生成的这种证明。这些证明由参与后续执行的节点验证,并包含在处理证明中。
市场
链上市场将计算提供者与支付使用计算资源的客户匹配。市场完全无许可,因此任何提供者都可以参与并发布其可用容量。
市场托管在 Fluence 自己的链上,由 IPC 驱动,由 Fluence 计算提供者验证,并锚定到 Filecoin L1。自己的链允许廉价且快速的交易,以在任何规模上租用计算资源:从小负载到大规模。
计算提供者在 Fluence 市场上
计算提供者在 Fluence 市场上
计算提供者资源
计算提供者资源
容量证明
Fluence 通过强制执行一种称为容量证明的加密证明,确保提供者宣传的资源存在并可用。提供者将其硬件资源应用于不断生成容量证明,以确认这些资源已准备好为客户服务。协议按分配的计算能力奖励这些资源 Fluence 代币。
每当客户需要所选提供者的计算能力时,这些资源从生成证明切换到服务客户的应用程序。
提交容量证明的计算单元
提交容量证明的计算单元
资源定价
客户可以根据广告的价格和其他参数选择提供者,或者发布工作和所需的最高价格以便任何提供者拾取。
在幕后,对于每个应用程序部署,都会在链上创建一个客户与一组提供者之间的交易。交易记录财务细节(价格、预付款和提供者的所需抵押品)、与所需服务相关的技术要求(访问某些数据、二进制文件或 Web API),以及网络中代码安装的链接。
选择提供者的匹配标准
选择提供者的匹配标准
计费模式
最初,计费模式为预付费,基于资源租赁时间,以纪元为单位计算。最小资源租赁为一个计算单元,持续 2 个纪元,其中一个纪元定义为 1 天,一个计算单元为 1 个核心、4GB 内存、5GB 虚拟磁盘空间。客户需要为最小期预付款,以确保提供者获得工作报酬。
基于请求的计费模式和弹性计算单元将在项目的下一阶段引入。
网络
Fluence 网络可以被视为一组全球互联的节点,每个节点运行 AquaVM 和 Marine,能够接收命令以本地部署和执行代码,并根据接收到的云无关函数与其他节点协作。这些节点大多不断参与经济活动:他们监控并进入交易,形成新子网或调整子网参与,按照交易要求安装应用程序,协调执行并处理传入请求。他们还生成执行证明,并根据证明算法提交这些证明以获得奖励。