作者 (按字母排序):Tyler Hall, Vince Juliano, Ivan Morozov, Sam Williams, Tom Wilson.
文档状态**:第五版草稿**
翻译人:Steve, Webb, Jason Wu.
校对人:outprog
ao
是什么?ao
是运行在 Arweave 上的 Actor Oriented(基于角色的)计算机,组成该计算机的网络节点遵循核心数据协议。本文简要介绍了协议规范、功能和技术细节,让构建者进行实现或集成该服务。
ao
是一个单一的、统一的计算环境(单系统映像 Single System Image),托管在分布式网络中的异构节点集上。ao
被设计为一个可以驻留任意数量并行进程的环境,进程之间通过开放的消息传递层进行协调。这种消息传递标准将机器独立运行的进程连接到一起,形成一个“网络”,就像网站在独立的服务器上运行,但是通过超链接连接成具备统一体验的整体系统一样。
与现有的去中心化计算系统不同,ao
支持灵活的计算操作,这些计算不受制于协议固有容量限制和形式,同时保持网络本身的可验证性(从而实现最小化信任)。此外,ao
的分布式和模块化架构允许现有的智能合约平台轻松地“接入”到网络中,开启一个可以与任何其他进程发送和接收消息的单一进程。
ao
不会对所有用户计算环境强加一套规则,ao
使用模块化的形式构建:允许用户选择最适合他们的虚拟机、排序模型、消息传递安全性保证和付款选项。这个模块化环境通过统一的消息(所有消息采用相同的格式)在 Arweave 的去中心化数据层上进行结算处理。这个模块化环境是一个可满足极其广泛的工作负载需求的统一计算环境,每个进程都可以轻松传递消息和协作。
ao
的核心目标是在没有规模限制的情况下,实现去信任和相互协作的计算服务。这为过去不可能实现的应用程序提供了新的可能性:将智能合约应用的优势(只需对代码信任的服务)与传统计算环境(如亚马逊 EC2 等)的优势结合起来。
aos
(ao
的去中心化操作系统)允许开发人员在去中心化网络中启动类似于智能合约的命令行进程。这个过程类似于在云服务上启动服务器,但去中心化和去信任计算是其关键优势。这些进程运行时不受限于特定的物理位置,通过网络实现了无缝的用户交互。由此产生了一个单一的(单系统映像 Single System Image)、统一的、全球性的计算平台,超越了物理和扩展性限制,由所有参与者共同使用。简而言之,ao
形成了一个庞大的、可扩展的计算机,在这个计算机上用户可以与任何进程进行交互,形成一个高度协作的生态系统。
对于用户而言,ao
代表着一个共享的计算机,他们可以在其上执行多个进程。这些进程不受任何特定服务器的限制,也不受任何个人或团体的支配。一旦激活,这些进程会以加密安全的方式提供服务,确保客观和持久的运行。这种设计赋予用户长期稳定使用应用程序的权利,从而为用户与系统交互提供了一个可信赖的环境。
与现有的去中心化和分布式计算系统相比,ao
协议提供了以下功能:
ao
中,应用程序由任意数量的通信进程构建。受到原始 actor 模型(Carl Hewitt,1973年)和 Erlang 的启发,ao
不允许进程之间共享内存,但允许它们通过本机消息传递标准进行通信。然后,这些进程中的每一个都可以使用可用计算资源的全速运行,而不会相互干扰。通过专注于消息传递,ao
实现了更类似于传统 Web2/分布式系统环境的扩展机制,而不是传统的智能合约。ao
网络中的节点在达成关于程序状态转换的共识时无需执行任何计算。每个进程的的所有日志都被存储,最终进程的全息状态(HolographicState)被留存在了 Arweave 上。然后将计算成本委托给用户,用户可以自行计算其状态,或者请求由他们选择的节点执行计算。ao
进程可以无缝加载和执行任何大小的数据直接到其内存,并写回网络。这种设置消除了典型的资源约束,实现了完全并行执行,大大扩展了应用程序开发的可能性,超越了传统智能合约平台的限制。因此,它为需要大量数据处理和计算资源的复杂应用开启了大门,例如机器学习任务和大计算量的自主代理。ao
通过允许合约通过计划任务来消除这一限制,这些交互可以在设定的间隔时间自动唤醒并执行计算。任何用户,或者进程本身,都可以支付费用给一个节点来“订阅”一个进程,从而以适当的频率来触发计算。ao
的核心架构是一个任何人都可以构建的开放数据协议。从排序器、消息传递中继器,甚至是系统级的虚拟机都可以随意替换和扩展。这种灵活性将允许 Arweave 生态系统中的现有智能合约系统(Warp、everPay、Mem 等)插入 ao,并能够与统一网络进行消息的发送和接收。这也将允许所有这些智能合约系统共享一些相同的基础设施和工具,从而使 Arweave 上的计算体验更加连贯。ao
架构简介