Move.

帖子

分享您的知识。

FUNLOP431.
Aug 13, 2025
专家问答

在 Sui Network 上精通动作:初学者和开发者完整指南

如果你参与过区块链开发,你可能会注意到Sui Network及其独特的编程语言——Move越来越受关注. 这不仅仅是另一种争夺开发者注意力的 “智能合约语言”. Move 为区块链编程带来了一种完全不同的思维方式——一种快速、安全且非常适合基于资产的应用程序的方式.

在这篇文章中,你将全面深入了解Move on Sui**——它是如何工作的,它有何不同之处,以及如何开始在此基础上进行构建. 我们还将探讨常见错误、最佳实践和实际成功秘诀.


##1. 什么是 Move,Sui 为什么要使用它?

Move是一种基于字节码的编程语言,最初由Meta(前身为Facebook)为Libra/Diem区块链开发. Sui 采用了 Move,但对其进行了扩展和优化以适应其以对象为中心的数据模型.

从本质上讲,Move旨在安全地管理数字资产. 像Solidity这样的传统智能合约语言将资产视为账户余额中的数字——但在Move中,资产是头等公民. 这意味着:

  • 资产不能意外复制.
  • 除非明确销毁资产,否则资产无法丢失.
  • 资产必须有明确的所有权.

这种理念使推理资产安全变得更加容易,并防止了常见的错误和黑客攻击.

为什么 Sui 选择 Move:

***安全:**资产所有权在语言层面强制执行. ***速度:**使程序快速运行,避免不必要的计算. ***灵活性:**除了简单代币之外,您还可以创建自定义资产类型. ***并行执行:**Sui 的架构允许 Move 代码并行处理事务,从而提高吞吐量.


##2. Move 在 Sui 上的运作方式

当其他区块链按顺序执行交易时,Sui 将数据组织成对象. 每个对象:

  • 拥有所有者(可能是用户、其他对象或系统).
  • 只能由其所有者或特定的 Move 功能进行修改.
  • 具有唯一的 ID.

Move on Sui 有三个主要概念:

  1. 对象
  • 存储在链上的所有东西都是对象.
  • 对象由 Move 模块存储和修改.
  • 示例:硬币、NFT、游戏角色.
  1. 模块
  • 用于存放移动代码的容器.
  • 为对象的行为定义类型、函数和规则.

3.交易

  • 用户采取的行动.
  • 调用 Move 函数,传入它们拥有的对象.

##3. 将 Move 与 Solidity 进行比较

| 专题 | 移动(Sui)| Solidity(以太坊)| | ------------------------------------------------------------------| -------------------------------------------| |主要关注点| 资产安全、所有权 | 通用智能合约逻辑 | |数据模型| 基于对象 | 基于账户 | |执行| 并行化(当没有对象冲突时)| 顺序 | |类型安全| 类型强,无法复制/删除资源 | 松散型系统 | |安全| 防止双重支出和意外资产损失 | 常见问题:可重入、整数溢出 |

如果你来自 Solidity,你会注意到 Move强制你明确资产处理. 起初这有时令人沮丧,但这也是Move程序更难利用的原因.


##4. 在 Sui 上编写你的第一步模块

让我们来看一个基本的 Move 示例:一个创建和转移自定义代币的模块.

###创建代币

module my_project::my_coin {
    use sui::coin;
    use sui::transfer;
    use sui::tx_context::{self, TxContext};

    /// Create a new coin type
    struct MyCoin has drop, store {}

    /// Initialize a new coin and send it to the transaction sender
    public entry fun mint(ctx: &mut TxContext) {
        let coin = coin::mint<MyCoin>(1000, ctx);
        transfer::transfer(coin, tx_context::sender(ctx));
    }
}

解释:

  • struct MyCoin定义新的硬币类型.
  • mint函数创建 1,000 个单位MyCoin并将其传输给发件人.
  • TxContext允许访问交易详情(例如谁发送的).

##5. Move 的资源类型 — 秘密调味料

此举引入了资源类型,即不可复制、不可复制的数据结构. 用日常的话来说:如果你有一张10日元的钞票,你不能只是 “复制” 它——要么持有,要么赠送. 资源的运作方式相同.

在移动中:

struct MyCoin has key, store {
    value: u64
}
  • key**— 可以存储为顶级对象.
  • store**— 可以存储在另一个对象中.

如果你尝试复制资源,编译器将拒绝编译你的代码. 这样可以防止意外克隆资产的错误.


##6. Sui 专属移动扩展程序

Sui 对 vanilla Move 进行了几处更改,以使其针对基于对象的执行进行优化:

***动态对象字段:**创建对象后,您可以向其添加字段. ***共享对象:**多个用户可以与同一个对象进行交互. ***可变引用:**允许以受控方式更改对象数据. ***事件发射:**移动模块可以为链下监听器发出事件.

例如,创建共享游戏排行榜:

struct Leaderboard has key {
    scores: vector<u64>
}

这可以由多个玩家更新,而不会造成区块链范围的瓶颈.


##7. 开发工作流程

以下是使用 Move on Sui 进行开发的基本工作流程:

  1. 安装 Sui CLI
  curl -fsSL https://sui.io/install.sh | bash
  1. 创建新的 Move 套餐
  sui move new my_project

3.sources在文件夹中写下你的模块.

  1. 创建您的包裹
  sui move build
  1. 发布到 Sui
  sui client publish --gas-budget 100000000
  1. 使用以下方法调用函数
  sui client call --package <PACKAGE_ID> --module my_module --function my_function

##8. 测试您的移动代码

Sui Move 支持直接使用该语言进行单元测试.

示例:

#[test]
fun test_mint() {
    let ctx = test::new_tx_context(@0x1);
    my_project::my_coin::mint(&mut ctx);
    // Add assertions here
}

运行测试:

sui move test

##9. 初学者常犯的错误

&mut TxContext*忘记传递 txContext — 许多函数需要创建或传输对象. *误解对象所有权— 如果你不拥有它,就无法对其进行变异. *不处理资产销毁问题— 您必须明确地 “销毁” 不再需要的资源. *无版本控制发布— 更新模块意味着发布新版本.


##10. Move on Sui 最佳实践

*使用明确的命名规范— 使代码可读. *限制共享对象的使用— 它们比拥有的对象慢. *针对状态更改发出事件— 帮助进行链下索引. *编写详尽的测试— 编译器捕获了很多,但逻辑错误仍然会发生. *记录您的模块— 将来你会感谢你的.


##11. 现实世界用例

*游戏资产— 每把剑、皮肤或宠物都可以是独一无二的物品. *NFT 市场— 内置所有权检查的安全转移和拍卖. *DeFi 协议— 使用安全资产处理进行贷款、质押和互换. *供应链跟踪— 将货物表示为在系统中移动的物体.


##12. Move on Sui 的未来

Sui's Move 语言仍在不断发展. 目前的工作包括:

  • 更好开发者工具. *常见模式的标准库. *与其他区块链的互操作性.

随着采用率的提高,我们可以期待更丰富的文档、更大的开源项目以及与 Web3 基础设施的更深入集成.


##最后的想法

如果你真的想构建安全、高性能的区块链应用程序,那么 Move on Sui 值得你关注. 其严格但合乎逻辑的设计可帮助您避免所有类别的错误,同时实现传统基于账户的链上无法实现的创新用例.

无论你是在创建 DeFi 协议、游戏还是复杂的 NFT 生态系统,Move 都能为你提供构建更安全、更快的区块链未来的基石.

  • Move CLI
  • Move
  • Smart Contract
0
1
分享
评论
.

答案

1
Jeff .
Aug 15 2025, 09:25

很棒的文章.

0
评论
.

你知道答案吗?

请登录并分享。

Move is an executable bytecode language used to implement custom transactions and smart contracts.

152帖子259答案
Sui.X.Peera.

赚取你的 1000 Sui 份额

获取声誉积分,并因帮助 Sui 社区成长而获得奖励。

奖励活动八月