在这篇博文中,我们阐明了互联网计算机(IC)的存储模型,并提供了一些与更多存储路线图相关的见解。
我们首先概述区块链通常可以提供哪些类型的存储,然后详细介绍互联网计算机架构所实现的独特权衡,最后概述实现更多存储的路线图上的下一个里程碑。
在区块链存储的背景下,粗略地说,可以区分两种类型的存储:完全复制存储和分布式存储,互联网计算机依赖于完全复制存储,在完全复制存储中,作为协议的一部分,确保所有参与节点都存储数据的完整副本 - 通常也称为复制状态 - 因此,这种存储类型支持直接读取 / 写入 / 更新 / 删除数据,作为参与节点通过某些共识协议以复制方式达成一致的任何操作的一部分。
从智能合约开发人员的角度来看,这种类型的存储感觉很像传统计算机程序中永久可用的 RAM。
另一方面,在分布式存储中,共识协议仅仅充当协调器,决定哪个节点子集存储先前约定的数据的哪一部分,这通常意味着并非所有参与节点都必须存储所有数据,从而可以降低复制因子。
然而,至关重要的是,这也意味着在复制执行期间直接读取数据变得不可行,这就是为什么这种类型的存储主要用于存储静态 blob 的原因。
因此,虽然完全复制数据的模型在在其上构建应用程序方面显然比分布式存储模型更强大,但它也面临着可扩展性的挑战。
互联网计算机的架构具有三个概念,这些概念独特地解决了这些可扩展性挑战,并提供了巨大的完全复制的存储容量:确定性去中心化,高性能存储层实现以及通过添加子网进行扩展的能力。
我们现在将简要讨论它们如何促进高度可扩展的完全复制存储:
确定性去中心化:网络神经系统(NNS)DAO 会做出明智的决策,决定哪些节点加入网络,哪些节点将成为子网的一部分,因此,与允许任何节点加入网络或子网的设置相比,每个子网的总节点数要少得多,这样就可以实现多样性和去中心化的目标。
高性能存储层实现:最近,作为 Stellarator 里程碑项目的一部分,IC 的整个存储层进行了重新设计,除其他事项外,新的存储架构是朝着实现每个子网更完整复制的存储容量迈出的重要一步,在 Stellarator 里程碑项目启动时,每个子网的最大存储容量已提升至 1 TiB,但至关重要的是,新的架构也为后续项目提供支持,从而实现每个子网更完整复制的存储容量。
通过添加子网进行扩展:NNS 可以在需要时启动新的子网,因此可以根据需求添加新的存储容量。
由于互联网计算机的这些架构特性,迄今为止的重点一直是优化完全复制的存储容量,在本文的其余部分,我们将对互联网计算机完全复制存储容量的后续步骤进行更具体的概述。
截至撰写本文时,单个子网可以存储 1 TiB(约 1.1 TB)的完全复制存储,互联网计算机目前有 34 个托管 dapp 的子网,这意味着总复制存储容量目前为 34 TiB。
从 1 TiB 子网存储到 2 TiB
IC 的新存储层的设计和实现方式使其无需执行那些耗时随复制状态大小线性增长的操作,其操作仅依赖于与先前状态相比发生变化的数据量,因此,从这个角度来看,互联网计算机已经为增加子网的最大复制状态大小做好了充分的准备。
为了顺利将容量提升至 2 TiB,还有一些已知因素有待调查,不过,在实施过程中可能会发现其他未知因素:
新加入子网的节点或落后于子网其他节点的节点使用称为“状态同步”的协议来完全赶上子网的最新状态,此外,子网恢复可能涉及某些节点必须同步整个状态,需要进行基准测试,以了解状态同步在 2 TiB 状态下的性能,以及这种性能是否在所有情况下都可接受,以及 / 或者是否需要进行优化。
有时,参与子网的节点需要对复制的状态进行哈希处理,虽然这是逐步进行的(即,只需要对与先前状态的差异进行哈希处理),但大多数情况下,也存在需要对整个状态进行哈希处理的极端情况,我们需要进行测试,以确定这些情况是否可以接受。
乐观地说,通过广泛的测试和一些潜在的优化,通往 2 TiB 的道路是可以畅通的。
超过 2 TiB 的子网存储
一个自然而然的问题是,是否有可能进一步发展,遗憾的是,超越 2 TiB 比达到 2 TiB 稍微复杂一些,这主要是因为在某些最坏的使用场景下,扩大规模可能会导致节点的物理磁盘被填满。
特别是,新的存储层在磁盘上存储文件的方式,以及协议在保留旧状态方面相当保守的事实,都意味着磁盘使用方面会有相当大的开销。
因此,要超越 2 TiB,例如增加到 4 TiB 甚至更大的存储空间,需要对协议进行一些修改,首先,需要考虑更改存储层参数以降低存储开销,这当然也会影响执行性能,其次,需要修改协议,使其在删除旧状态时更加积极主动。
显然,这两项措施都需要在设计和实现上格外谨慎,并进行大量的测试,实现这一目标还需要重新审视 2 TiB 步骤中提到的所有要点,并可能进行进一步的改进。
因此,我们距离这一步还有些远,但我们仍然非常有信心最终能够实现这一目标。
互联网计算机分布式存储空间
最后,需要注意的是,尽管互联网计算机迄今为止专注于提供海量复制存储,但并没有什么根本性因素能够阻止扩展协议以额外添加对分布式存储空间(例如 Blob 存储)的支持,这个话题将在稍后的另一篇文章中讨论。
结论
过去几年,互联网计算机(Internet Computer)不断突破区块链复制存储容量的极限,这对于 Web3 中许多几年前还被认为不可能实现的用例至关重要,其中一个例子就是人工智能,大型语言模型完全在链上运行。
互联网计算机拥有一些独特的架构特性,使其在复制存储方面能够超越现有支持的范围,如上所述,目前已有一些具体的后续措施计划,旨在进一步提升互联网计算机的存储容量。
另外,在互联网计算机上的分布式存储方面,提供能够存储静态 blob 的第二类存储的努力将很快开始。
来源:DFINITY
翻译:Catherine
- 往 期 推 荐 -
你关心的 IC 内容
🛠 技术进展 | 🔍 项目信息 | 🌏 全球活动
长按关注 IC 微信视频号
观看最新视频
*添加小助手微信 comiocn 进交流社群
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。