应用升级的另一种路径
大多数软件将数据存储在独立的数据库中,这意味着每次代码更新都伴随着数据丢失或损坏的风险。@dfinity 的互联网计算机(Internet Computer)为使用其专用编程语言 Motoko 构建的应用程序提供了一条不同的路径。
Motoko 无需在每次更新时将数据进出独立存储库进行传输,而是能够自动保留程序状态,实现跨升级的数据持久化,且无需编写额外的代码来处理持久化逻辑。其核心创新在于:运行时系统通过简单地保留而非擦除主内存,从而避免了状态向稳定内存的转移。该运行时系统现在以一种非常高效的方式确保升级时的数据一致性,且这种效率独立于内存大小。
这种方法在形式上被称为“正交持久性”(Orthogonal Persistence)。Canister(智能合约容器)利用正交持久性,使得模块实例看起来像是永久存在,从而使数据库或文件 I/O 变得过时。为了持久化存储变量,开发人员只需将变量写入内存即可。在升级正式生效之前,系统会检查新代码是否能够正确读取现有的已存储数据。如果兼容性检查失败,升级将被回滚,且不会丢失任何数据。
Motoko 增强的正交持久性旨在通过提供一种简单、安全且快速的升级机制,让程序员从处理稳定内存中解放出来。
Rust 开发者面临的更严峻挑战
与其他语言的对比十分鲜明。互联网计算机支持的其他语言使用的是现成的实现方案,这些方案在设计之初并未考虑正交持久性,因此程序员必须显式地使用稳定内存或特殊的稳定数据结构来在升级之间保存数据。与 Motoko 不同,这种方法不仅繁琐,而且不安全且效率低下。
对于互联网计算机上的 Rust 开发者而言,DFINITY 确实维护了一个适用于升级的安全数据结构库。这是一组专为互联网计算机设计的可扩展数据结构,能够在升级间保持持久化,并以稳定内存作为后备存储,允许其增长至千兆字节(GB)级别。然而,管理这一过程的责任仍落在开发者身上,而非语言运行时本身。
随着应用程序的规模扩大,这种能力差距显得尤为重要。“Stellarator”是互联网计算机近期的一个里程碑,被描述为链上数据持久性的突破性进展,它大幅提高了可扩展性和数据存储处理能力,解锁了以往受限于系统约束的复杂数据密集型应用的新机遇,并为区块链技术带来了新的实用价值。
ICP

交易所
交易所排行榜
24小时成交排行榜
人气排行榜
交易所比特币余额
交易所资产透明度证明
去中心化交易所
资金费率
资金费率热力图
爆仓数据
清算最大痛点
多空比
大户多空比
币安/欧易/火币大户多空比
Bitfinex杠杆多空比
ETF追踪
索拉纳ETF
瑞波币ETF
香港ETF
比特币持币公司
加密资产反转
以太坊储备
HyperLiquid钱包分析
Hyperliquid鲸鱼监控
大额转账
链上异动
比特币回报率
稳定币市值
期权分析
新闻
文章
财经日历
专题
钱包
合约计算器
账号安全
资讯收藏
自选币种
我的关注