搜索
首页web3.0从存储过去到计算未来:AO 超并行计算机

从存储过去到计算未来:AO 超并行计算机

作者: YBB Capital Researcher Zeke

前言

Web3如今分化出的两种主流区块链架构设计已经让人难免有些审美疲劳,不管是泛滥成灾的模块化公链还是总强调性能却体现不出性能优势的新型L1,其生态可以说都是对以太坊生态的复刻或者细微改进,同质化极高的体验早已让用户失去新鲜感。而Arweave最新提出的AO协议却令人眼前一亮,在存储公链上实现超高性能运算甚至达成准Web2的体验。这与我们目前所熟知的扩容方式和架构设计似乎有着巨大的差别,那么AO究竟是什么?支持其性能的逻辑又从何而来?

如何理解AO

AO的命名来自于并发计算模型Actor Model中一种编程范式Actor Oriented的缩写,其整体设计思路源于对Smart Weave的延伸,同时也遵循了Actor Model以消息传递为核心的理念。简单来说,我们可以将AO理解为一台通 过消息传递和数据处理的“超级计算机”。从实现方案上看,AO其实并非我们常见的模块化执行层,而是一个规范消息传递与数据处理的通信协议。该协议的核心目标旨在通过信息传递实现网络内不同“角色”的协作。由此实现一个性能可无限加强、具有中心化云级别的速度、可伸缩的计算能力及扩展性的协作网络。该协议在通信任环境下拥有不同中心化云级别的速度、可缩减的计算能力及扩展性。最终,实现了一个巨型硬盘能够在去中心化云环境下拥有中心化云级别的速度、可伸缩的计算能力及扩展性。

从存储过去到计算未来:AO 超并行计算机

AO的架构

AO的理念看起来与Gavin Wood在去年Polkadot Decoded大会上提出的“Core Time”分割与再组合有些异曲同工之处,两者都是通过对计算资源的调度与协调,以实现所谓的“高性能世界计算机”。但两者在本质上存在一些区别,异构调度(Exotic Scheduling)是对中继链空间资源的解构与重组,对于波卡的架构并没有太大改变,计算的性能自然突破了插槽模型下一平行链的限制,上限却依旧受限于波卡的最高间隔核心数。而AO理论上可以通过节点数据处理方式和消息的表达,同时通过三个网络单元(子网)完成信息的排序、调度与计算,其规范方式与不同单元的职能,取决于官方资源分析可以概述为以下几点:

  • 进程(Process): 进程可被视为AO中执行指令的集合,进程在初始化时可定义它所需的计算环境,包括虚拟机、调度程序、内存需求和必要的扩展。这些进程保持一种“全息”状态(每个进程数据都可独立存储状态至Arweave的消息日志中,下文“可验证问题”部分中会对全息状态做出具体解释),全息状态意味着进程能够独立工作,且执行是动态的,可以由适当的计算单元来执行。除了从用户钱包接收消息之外,进程还可通过信使单元转发来自其它进程的消息;

从存储过去到计算未来:AO 超并行计算机

  • 消息:用户(或者其它进程)每次与进程的交互都由一条消息来表示,消息必须符合Arweave 原生的 ANS-104 数据项,从而保持本机结构一致,以便于Arweave对信息的保存。从更易理解的角度来说消息就有点类似传统区块链中的交易ID(TX ID),但两者并不完全相同;

从存储过去到计算未来:AO 超并行计算机

  • 信使单元 (MU): MU通过一种称为'cranking'的过程中继消息,负责系统中通信的传递,以确保无缝交互。一旦消息被发出,MU 就会将其路由到网络内的适当目的地(SU),协调交互并递归地处理任何生成的发件箱消息。此过程将持续进行,直到处理完所有消息。除了消息中继之外,MU 还提供各种功能,包括管理进程订阅和处理定时 cron 交互;

  • 调度程序单元 (SU):当收到消息时,SU会启动一系列关键操作来维护进程的连续性和完整性。在接收到消息后,SU会分配一个唯一的增量nonce,以确保相对于同一进程中其他消息的顺序。这个分配过程通过加密签名进行形式化,保证真实性和序列完整性。为了进一步提高进程的可靠性,SU将签名分配和消息上传到Arweave数据层中。这样可以确保消息的可用性和不变性,并防止数据篡改或丢失;

  • 计算单元 (CU):CU通过在一个点对点的计算市场内相互竞争,以完成用户与SU解决计算进程状态的服务。一旦状态计算完成,CU便会返回一个带有特定消息结果的签名证明给调用者。此外,CU还能生成并发布其他节点可以加载的签名状态证明,当然这也需要支付一定比例的费用。

从存储过去到计算未来:AO 超并行计算机

操作系统AOS

AOS可被视为AO协议中的操作系统或者说终端工具,可用于下载、运行和管理线程。它提供了一个环境,使开发者能够在其中开发、部署和运行应用程序。在AOS上,开发者可以利用AO协议进行应用程序的开发和部署,并与AO网络进行交互。

运行逻辑

Actor Model推崇着一种叫“一切皆是演员”的哲学观点。该模型内的所有组件和实体都可以被视为“演员”,每个演员都有自己的状态、行为和邮箱,它们通过异步通信进行消息传递与协作,从而使得整个系统能够以一种分布式和并发的方式来组织和运行。AO网络的运行逻辑也是如此,组件乃至用户都可被抽象为“演员”,并通过消息传递层相互通信,使得进程相互链接,一个可并行计算且非共享状态的分布式工作系统就在交织中被建立起来了。

从存储过去到计算未来:AO 超并行计算机

以下是关于信息传递流程图步骤的简述:

  1. 消息的发起

  • 用户或进程创建消息向其它进程发送请求。

  • MU(信使单元)接收到该消息,并使用POST请求将其发送到其他服务。

  • 消息的处理和转发

    • MU处理POST请求并将消息转发到SU(调度单元)。

    • SU与Arweave存储或数据层进行交互,将消息存储起来。

  • 根据消息ID检索结果

    • CU(计算)接收到GET请求,根据消息ID检索结果,并评估消息在进程上的情况。它能够根据单个消息标识符返回结果。

  • 检索信息

    • SU接收到GET请求,根据给定的时间范围和进程ID检索消息信息。

  • 推送发件箱消息

    • 最后一步是推送所有发件箱消息。

    • 此步骤涉及检查结果对象中的消息和生成。

    • 根据此检查的结果,可以对每个相关消息或生成重复执行步骤2、3和4。

    AO改变了什么?「1」

    与常见网络的区别:

    1. 并行处理能力:与以太坊等网络不同,后者的基础层和每个 Rollup 实际上都作为单一进程运行,AO 支持任意数量的进程并行运行,同时确保计算的可验证性保持完整。此外,这些网络在全球同步状态下运行,而 AO 进程保持自己的独立状态。这种独立性使得 AO 进程能够处理更高数量的交互和计算的可扩展性,使其特别适合对高性能和可靠性有需求的应用程序;

    2. 可验证的可复现性:虽然一些去中心化网络,如 Akash 和点对点系统 Urbit,确实提供了大规模的计算能力,但与 AO 不同,它们不提供交互的可验证复现性,或者依赖于非永久性存储解决方案来保存它们的交互日志。

    AO的节点网络与传统计算环境的不同之处:

    • 兼容性:AO 支持各种形式的线程,无论是基于 WASM 还是 EVM 的,都可以通过一定的技术手段架接到 AO 上。

    • 内容共创类项目: AO 还支持内容共创类的项目,可以在 AO 上发布 atomic NFT,上传数据结合 UDL 在 AO 上构建 NFT。

    • 数据组合性:AR 和 AO 上的 NFT 可以实现数据组合性,允许一篇文章或内容在多个平台上共享和显示,同时保持数据源的一致性和原始属性。当内容发生更新时,AO 网络能够将这些更新状态广播给所有相关平台,确保内容的同步和最新状态的传播。

    • 价值回馈和所有权:内容创作者可以将他们的作品作为 NFT 出售,并通过 AO 网络传递所有权信息,实现内容的价值回馈。

    对项目的支撑:

    1. 基于Arweave构建:AO利用Arweave的特性,消除了与中心化提供商相关的脆弱性,如单点故障、数据泄露和审查制度。AO上的计算是透明的,可通过去中心化的信任最小化特性和存储在Arweave上的可复现消息日志来验证;

    2. 去中心化基础:AO的去中心化基础有助于克服物理基础设施施加的可扩展性限制。任何人都可以从他们的终端轻松创建一个AO进程,无需专门的知识、工具或基础设施,确保了即使是个人和小规模实体也能拥有全球影响力和参与度。

    AO的可验证问题

    在我们理解了AO的框架与逻辑之后,通常会有一个普遍问题。AO似乎没有传统去中心化协议或者链的全局特征,仅通过上传一些数据到Arweave便可实现可验证性与去中心化??其实这正是AO设计的奥妙之处。AO本身就是链下实现,也不解决可验证性问题,也不更改共识。AR团队的思路是将AO与Arweave的职能剥离,再模块化衔接,AO只进行通信与计算,Arweave只提供存储与验证。两者的关系更像是映射,AO只需确保交互日志存储在 Arweave上,其状态就可以投影到Arweave,从而创建全息图,这种全息状态投影保证了在计算状态时输出的一致性、可靠性、确定性。此外通过Arweave上的消息日志也可反向触发AO进程执行特定的操作(可以根据预设条件和时间表,自行唤醒,并执行相应的动态操作)。

    从存储过去到计算未来:AO 超并行计算机

    依据Hill与Outprog的分享,如果把验证逻辑说的再简单一点,那么可以将AO想象为一个基于超并行索引器的铭文计算框架。我们都知道比特币铭文索引器验证铭文,需要从铭文中提取JSON信息,并将余额信息记录在链下数据库中,通过一套索引规则完成验证。虽然索引器是链下验证,但用户可以通过更换多个索引器或者自己运行索引来验证铭文,从而无需担心索引器作恶。我们在上文中提到了消息的排序以及进程的全息状态等数据都上传至Arweave,那么只需要基于SCP范式(存储共识范式,此处可以简单理解为SCP是索引规则在链上的索引器,另外值得注意的是SCP出现的时间远比索引器早),任何人都可以通过Arweave上的全息数据恢复AO或者AO上的任何一个线程。用户也不需要跑全节点去验证可信状态,同更换索引一样,用户只需通过SU向单个或多个CU节点提出查询请求即可。而Arweave 的存储能力高且费用低廉,所以在这套逻辑下,AO开发者可以实现远超比特币铭文功能的超级计算层。

    AO与ICP

    我们再用一些关键词总结一下AO的特性:巨型原生硬盘、无上限并行、无上限计算、模块化的整体架构以及全息状态的进程。这一切听起来都特别美好,但熟知区块链各种公链项目的朋友可能会发现AO与一个“天亡级”项目特别相似,也就是曾经风靡一时的“互联网计算机”ICP。

    ICP曾被誉为区块链世界的最后一个天王级项目,深受顶级机构热捧,在21年的疯狂大牛中也达到过2000亿美金的FDV。但随着浪潮退去,ICP的代币价值也呈直线下降。直至23年熊市ICP代币价值相较于历史最高位,已经跌了将近260倍之多。但如果不考虑Token价格的表现,即便在当前这个时间节点重新审视一遍ICP,其技术特点依旧有很多独到之处。AO如今令人惊叹的许多优势特性,ICP当年同样具备,那么AO会如同ICP一样失败吗?我们先来了解一下两者为什么会如此相似,ICP与AO都是基于Actor Model设计,侧重于局部运行的区块链,所以两者特性才会存在很多共同之处。ICP子网区块链由一些独立拥有和控制的高性能硬件设备(节点机)形成,这些硬件设备运行互联网计算机协议(ICP)。互联网计算机协议由许多软件组件实现,这些组件作为一个捆绑包是一个副本,因为它们在子网区块链中的所有节点上复制状态和计算。

    ICP的复制架构从上至下可分为四层:

    点对点(P2P) 网络层:用于收集和通告来自用户、其子网区块链中的其他节点以及其他子网区块链的消息。对等层收到的消息将被复制到子网中的所有节点,以确保安全性、可靠性和弹性;

    共识层:选择并排序从用户和不同子网收到的消息,以创建区块链区块,这些区块可以通过形成不断发展的区块链的拜占庭容错共识进行公证和最终确定。这些最终确定的块被传递到消息路由层;

    消息路由层:用于在子网之间路由用户和系统生成的消息,管理 Dapp 的输入和输出队列,并安排消息执行;

    执行环境层:通过处理从消息路由层接收到的消息来计算执行智能合约所涉及的确定性计算。

    从存储过去到计算未来:AO 超并行计算机

    子网区块链

    所谓的子网是交互副本的集合,这些副本运行共识机制的单独实例,以便创建自己的区块链,在该区块链上可以运行一组「容器」。每个子网都可以与其他子网通信,并由根子网控制,根子网使用链密钥加密技术将其权限委托给各个子网。ICP使用子网来允许其无限扩展。传统区块链(以及各个子网)的问题在于它们受到单个节点机器的计算能力的限制,因为每个节点都必须运行区块链上发生的所有事情才能参与共识算法。并行运行多个独立子网使得ICP突破了这一单机障碍。

    为什么失败

    如上文所述,ICP架构想实现的目的,简单来说就是去中心化的云服务器。在几年前这个构想也如同AO一样令人震撼,但为什么会失败呢?简单来说就是高不成低不就,在Web3与自己的构想之间并没有找到一个很好的平衡点,最终导致项目并不Web3也不如中心化云好用的尴尬局面,总结来说问题有三点。第一,ICP的程序系统Canister,也就是上文中的「容器」其实有点类似于AO中的AOS和进程,但两者并不一样。ICP的程序是被Canister封装实现的,外界并不可见,需要通过特定接口去访问数据。在异步通信下对于DeFi协议的合约调用很不友好,所以在DeFi Summer中,ICP并没有捕获到相应的金融价值。

    从存储过去到计算未来:AO 超并行计算机

    第二点是硬件要求极高,导致项目并不去中心化,下图是当时ICP给出的节点最低硬件配置图,即便放在现在也是非常夸张,远超Solana的配置,甚至存储要求比存储公链还高。

    从存储过去到计算未来:AO 超并行计算机

    第三点是生态匮乏,ICP即便放到现在也是性能极高的公链。如果说没有DeFi应用,那么其它应用呢?抱歉,ICP从诞生至今也没跑出一个杀手级应用,其生态既没有捕获到Web2的用户,也没有捕获到Web3的用户。毕竟在去中心化程度如此不足的情况下,为什么不直接使用内容丰富且成熟的中心化应用呢?但最后不可否认的是ICP的技术依旧很顶尖,其反向Gas、高兼容性、无限扩展的优势还是吸引下一个十亿用户所必备的,而在当前的AI浪潮下,ICP如果能善用自身的架构优势也许还存在翻身的可能。

    那么回到上文中的问题,AO会像ICP一样失败吗?我个人认为AO并不会重蹈覆辙,首先导致ICP失败的后两点,对于AO来说都不是问题,Arweave已经有很好的生态基础了,全息状态投影也解决了中心化问题,兼容性上AO也更为灵活。更多的挑战也许要集中于经济模型上的设计,对于DeFi的支撑,以及一个世纪难题:在非金融与存储领域,Web3该以什么形式展现?

    Web3不应止于叙事

    Web3的世界中出现频率最高的词语必然是“叙事”,我们甚至已经习惯用叙事的角度去衡量大部分代币的价值。这自然是源于Web3大部分项目愿景很伟大,用起来却很尴尬的窘境。相较之下Arweave已经有很多完全落地的应用,并且对标的都是Web2级别的体验。譬如Mirror、ArDrive,你如果使用过这些项目应该很难感受到与传统应用的差别。但Arweave作为存储公链的价值捕获依然存在很大的局限性,计算也许是必由之路。尤其在如今的外部世界中,AI已是大势所趋,Web3在现阶段的结合中还存在很多天然的壁垒,这点我们在过去的文章也谈到过。现在Arweave的AO用非以太坊模块化方案的架构,给了Web3 x AI一个很好的新基建。从亚历山大的图书馆到超并行计算机,Arweave在走一条属于自己的范式。

    参考文章

    1. AO 快速入门:超级并行计算机简介:https://medium.com/@permadao/ao-快速入门-超级并行计算机简介-088ebe90e12f

    2. X Space 活动实录|AO 是不是以太坊杀手,它将怎样推动区块链的新叙事?:https://medium.com/@permadao/x-space-活动实录-ao-是不是以太坊杀手-它将怎样推动区块链的新叙事-bea5a22d462c

    3. ICP白皮书:https://internetcomputer.org/docs/current/concepts/subnet-types

    4. AO CookBook:https://cookbook_ao.arweave.dev/concepts/tour.html

    5. AO — — 你无法想象的超并行计算机:https://medium.com/@permadao/ao-你无法想象的超并行计算机-1949f5ef038f

    6. 多角度分析 ICP 没落的原因:特立独行的技术与冷清单薄的生态:https://www.chaincatcher.com/article/2098499

    以上是从存储过去到计算未来:AO 超并行计算机的详细内容。更多信息请关注PHP中文网其他相关文章!

    声明
    本文转载于:ChainCatcher。如有侵权,请联系admin@php.cn删除
    区块链只能用go语言吗区块链只能用go语言吗Dec 27, 2022 pm 05:25 PM

    不是。区块链是一种编程思想,原则上使用任何一种编程语言都可以实现,比如Solidity、C++、C#、Java、javascript、Go都可以实现区块链的开发;区块链技术涉及的面很广,而编程语言只是一种手段,把设计理念用代码呈现出来,做成产品服务用户。

    什么是OCO订单?什么是OCO订单?Apr 25, 2023 am 11:26 AM

    二选一订单(OneCancelstheOther,简称OCO)可让您同时下达两个订单。它结合了限价单和限价止损单,但只能执行其中一个。换句话说,只要其中的限价单被部分或全部成交、止盈止损单被触发,另一个订单将自动取消。请注意,取消其中一个订单也会同时取消另一个订单。在币安交易平台进行交易时,您可以将二选一订单作为交易自动化的基本形式。这个功能可让您选择同时下达两个限价单,从而有助于止盈和最大程度减少潜在损失。如何使用二选一订单?登录您的币安帐户之后,请前往基本交易界面,找到下图所示的交易区域。点

    为什么用go语言写区块链为什么用go语言写区块链Mar 04, 2021 pm 03:42 PM

    原因:1、Go语言具有部署简单、性能优秀、并行执行性能好、良好语言设计、内置大量库、团队牛逼等优势。2、以太坊和超级账本都选择使用Go作为开发语言;这两大超级区块链的影响力很大,不仅在生态中占据了大的坑位,事实上还隐性的制定了区块链的标准。

    go语言能开发区块链吗go语言能开发区块链吗Jan 03, 2023 pm 01:41 PM

    可以开发。区块链是一种编程思想,原则上使用任何一种编程语言都可以实现,比如go语言、Solidity、C++、C#、Java、javascript都可以实现区块链的开发。Go语言是为了解决分布式计算,而区块链是典型的分布式数据存储系统,因此go语言能开发区块链。且Go易学易用,能很好的满足区块链行开发需要的“执行效率高、高并发、跨平台,网络开发要求高”等特点。

    深入学习区块链的Go语言开发框架深入学习区块链的Go语言开发框架Jun 04, 2023 pm 08:01 PM

    区块链技术的出现,使得数字货币的应用成为可能,也在许多领域得到了广泛应用。随着区块链技术领域的扩大,开发人员对于更好的应用程序编写方式的需求也高涨起来。于是,一个叫做Go语言(简称Golang)的编程语言悄悄兴起,成为了区块链开发人员的最爱。Go语言是谷歌公司开发的一种系统级编程语言,自诞生以来,一直着重强调程序设计的简捷和高效。Go语言的优点包括:静态类型

    打造高效的区块链技术开发环境(使用Go语言)打造高效的区块链技术开发环境(使用Go语言)Jun 05, 2023 am 08:21 AM

    随着区块链技术的发展和应用越来越广泛,有越来越多的人开始参与到区块链技术的开发中来。而要想打造高效的区块链技术开发环境,选择合适的开发语言和工具是非常重要的。Go语言正是一个很好的选择,因为它的性能很高,同时还有很多优秀的开源工具和库,能够大大提高开发效率。下面就来介绍一下如何打造高效的区块链技术开发环境,使用Go语言进行开发。一、选择Go语言在选择开发语言

    Java 中的区块链和加密货币技术Java 中的区块链和加密货币技术Jun 09, 2023 am 09:56 AM

    Java是一种广泛使用的编程语言,它被许多公司和组织用作开发各种应用程序的工具。最近几年来,区块链和加密货币技术在全球范围内引起了大量的关注。Java的灵活性和多功能性使得它成为开发区块链和加密货币应用程序的优秀选择。区块链技术是一种安全的、去中心化的数据库,它可以存储和共享交易记录,而无需任何中央机构的干涉。Java提供了许多区块链开发框架,例如H

    如何利用Go语言实现全球唯一的区块链身份标识如何利用Go语言实现全球唯一的区块链身份标识Jun 04, 2023 pm 03:51 PM

    区块链是一种去中心化的分布式账本技术,随着其应用领域的不断扩展,如何保障区块链参与者的身份安全问题也逐渐成为热门话题。本文将介绍如何利用Go语言实现全球唯一的区块链身份标识。一、为什么需要区块链身份标识在现有的互联网世界中,身份验证是一个非常重要的问题。通过用户名和密码等方式,用户可以登录到我门的网站上,从而使用我们的服务。但是,在互联网上,身份验证存在着

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    2 周前By尊渡假赌尊渡假赌尊渡假赌
    仓库:如何复兴队友
    4 周前By尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island冒险:如何获得巨型种子
    4 周前By尊渡假赌尊渡假赌尊渡假赌

    热工具

    安全考试浏览器

    安全考试浏览器

    Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

    SublimeText3 英文版

    SublimeText3 英文版

    推荐:为Win版本,支持代码提示!

    EditPlus 中文破解版

    EditPlus 中文破解版

    体积小,语法高亮,不支持代码提示功能

    SublimeText3 Linux新版

    SublimeText3 Linux新版

    SublimeText3 Linux最新版