Skip to main content

有状态的去中心化无服务器计算

· 10 min read
Michael Yang

互联网计算机区块链如何提供无服务器计算功能以及两个重要的额外好处:去中心化和有状态

在这篇文章中,我们描述了互联网计算机区块链如何提供无服务器计算功能以及两个重要的额外好处:去中心化和有状态。

无服务器已经席卷了云计算世界,在过去几年中出现了巨大的增长,并对未来做出了非常积极的预测,根据最近的预测,到 2028 年,该市场预计将以超过 20% 的复合年增长率增长。

从本质上讲,无服务器架构通过 IT 自动化软件充分发挥基于云的技术的潜力,使企业能够推动增长,而不是在 IT 基础设施管理上花费时间和资源。

虽然这听起来很有希望,但无服务器云平台仍然是无状态和集中的,因此,应用程序需要解决存储状态的这一缺点,并避免受到供应商锁定的影响。

互联网计算机提供了另一层安全、控制和信任 —— 所有这些都是通过去中心化实现的,没有任何一方可以控制硬件或软件,此外,互联网计算机按照设计以有状态的方式运行。

在这篇文章中,我们描述了互联网计算机区块链如何提供无服务器计算功能以及两个重要的额外好处:去中心化和有状态。

什么是无服务器?

无服务器是一种新颖的云计算范例,可以实现快速灵活的开发周期,而无需考虑底层基础设施(配置和扩展正确的虚拟机、安装和维护软件和框架),从而降低总体运营成本。

无服务器有多种形式,在我们的例子中最相关的是功能即服务(FaaS),其中(大型代码库被分割成)小功能,运行时间非常短(毫秒到分钟),函数按每次使用收费(即根据运行时间)加上每次调用的固定费用,最后要提到的重要功能是出色的扩展能力,可以在短时间内启动同一功能的多达数千个实例。

互联网计算机作为无服务器平台

简要浏览一下互联网计算机的架构,您会很容易注意到它提供了无服务器功能,甚至还有额外的好处。

如今,FaaS 函数被打包为容器或简单地作为代码(Python、Javascript、Java、Rust 等),并提供可由外部用户或其他函数直接调用的单个端点。

互联网计算机上的容器智能合约还可以用多种语言进行编程,包括 Rust、Motoko、JavaScript 或 Python,并且可以公开多个端点,这些端点可以为每个容器提供不同的功能。

我们总结了主要的无服务器功能及其对应的互联网计算机,以及区块链相对于基于云的无服务器的优势。

可以看出,互联网计算机满足无服务器环境的所有条件,开发人员可能不知道,但他们已经在执行无服务器代码,正如我们的研究表明的那样,其效率几乎与传统云供应商提供的相同。

在某些维度(例如内存)上,互联网计算机甚至超过了传统云供应商提供的功能,然而,我们要强调的面向开发人员的最重要的功能是:有状态和去中心化,传统的无服务器云不提供这两个功能。

我们邀请精通技术的读者深入研究使互联网计算机成为具有竞争力的无服务器平台的技术方面,这里需要注意的是,互联网计算机有两种执行智能合约的类型 —— 更新模式和查询模式,前者代表有状态调用,而后者是无状态的,就像通用的无服务器计算一样。

在函数执行后保持状态是无服务器 / FaaS 世界中长期以来备受追捧的功能,它非常难以实施,因为它通常与当前云中提供的无缝扇出类型的可扩展性相冲突。

幸运的是,互联网计算机在设计时从一开始就考虑到了状态性,并为开发人员提供了此功能,而无需任何类型的手动干预,例如将数据保存到外部存储层或数据库,因此,所有变量或数据在互联网计算机上调用智能合约后都会自动持久化。

去中心化是另一个经常被忽视的重要特征,现代无服务器产品目前由几个大型集中式云提供,这导致供应商锁定,在这种情况下,开发人员代码和数据与其提供商一样安全,并且容易受到地理中断或简单的供应商政策变化的影响。

互联网计算机是完全去中心化的,节点机器在不同的地理位置运行,并在强大的共识保证下运行,甚至可以容忍拜占庭(恶意)故障。

互联网计算机与传统无服务器平台

为了评估互联网计算机区块链在无服务器云方面的表现,我们在互联网计算机和前 3 个无服务器平台之一上运行了 CPU 密集型基准计算素数,对于较小的输入,互联网计算机比传统的无服务器更快,而对于较大的输入,速度只有传统的一半(参见下图的结果)。

这是非常令人鼓舞的,这表明,尽管还有很长的路要走,但与传统的集中式云相比,互联网计算机在性能方面正在获得牵引力,如需了解更多详细信息,我们鼓励您查看我们最近在著名的 USENIX ATC 会议上发表的同行评审文章:

https://www.usenix.org/system/files/atc23-arutyunyan.pdf

提高性能

额外的内置功能(例如去中心化和状态性)导致互联网计算机在处理大型工作负载时的性能较低(参见图 2),虽然这些功能非常强大且重要,但它们也会削弱原始性能。

DFINITY 工程师和研究人员将继续寻找和探索增强和改善互联网计算机性能的方法,一些改进领域可能是增加并行性或用日志结构合并树方法替换当前存储层以缩短检查点时间。

释放复合查询的全部功能来支持更复杂的应用程序也会对性能产生积极的影响,复合查询方面的工作已经开始,以实现水平 dapp 扩展并简化客户端代码,允许跨子网查询调用和复制执行的进一步工程正在进行中。


原文链接:https://medium.com/dfinity/the-internet-computer-a-blockchain-that-offers-stateful-decentralized-serverless-computing-cdbbfdca4b7e