稳健,是 Gate 持续增长的核心动力。
真正的成长,不是顺风顺水,而是在市场低迷时依然坚定前行。我们或许能预判牛熊市的大致节奏,但绝无法精准预测它们何时到来。特别是在熊市周期,才真正考验一家交易所的实力。
Gate 今天发布了2025年第二季度的报告。作为内部人,看到这些数据我也挺惊喜的——用户规模突破3000万,现货交易量逆势环比增长14%,成为前十交易所中唯一实现双位数增长的平台,并且登顶全球第二大交易所;合约交易量屡创新高,全球化战略稳步推进。
更重要的是,稳健并不等于守成,而是在面临严峻市场的同时,还能持续创造新的增长空间。
欢迎阅读完整报告:https://www.gate.com/zh/announcements/article/46117
Rust智能合约升级最佳实践:从NEAR合约案例学习
Rust智能合约升级指南
智能合约作为程序的一种,难免会存在缺陷。即使经过大量测试和审计,仍可能有漏洞。一旦被攻击者利用,可能造成用户资产损失,后果严重。因此,合约的可升级性非常必要,主要用于修复漏洞和添加新特性。本文将介绍Rust合约的升级方式。
NEAR合约升级方法
以StatusMessage项目为例,介绍NEAR合约的常用升级方法。
1. 合约数据结构未修改
如果只修改合约逻辑,不涉及数据结构变更,可直接使用near deploy部署新代码:
bash near deploy
--accountId status_message.example.testnet
--wasmFile target/wasm32-unknown-unknown/release/status_message.wasm
原有合约数据可正常读取。
2. 合约数据结构修改
如果修改了合约数据结构,直接重新部署会导致状态反序列化失败。这时需要使用migrate方法进行升级:
rust #[private] #[init(ignore_state)] pub fn migrate() -> Self { let old_state: OldStatusMessage = env::state_read().expect("failed"); Self { new_field: LookupMap::new(b"n".to_vec()), old_field: old_state.old_field, } }
部署时调用migrate方法:
bash
near deploy
--wasmFile target/wasm32-unknown-unknown/release/status_message.wasm
--initFunction "migrate"
--initArgs "{}"
--accountId status_message.example.testnet
这样可以将旧状态迁移到新合约。
合约升级安全建议
合理升级可以让合约保持安全性和可扩展性,是智能合约开发中的重要环节。