Move.

Пост

Поделитесь своими знаниями.

FUNLOP431.
Aug 13, 2025
Экспертные Вопросы и Ответы

Освоение сети Move on Sui: полное руководство для новичков и строителей

Если вы занимались разработкой блокчейна, то наверняка заметили растущий ажиотаж вокругSui Networkи ее уникального языка программирования —Move. Это не просто еще один «язык смарт-контрактов», конкурирующий за внимание разработчиков. Move предлагает совершенно иной подход к программированию блокчейна — быстрый, безопасный и идеальный для приложений, основанных на активах.

В этом посте вы получите исчерпывающую информацию о Move on Sui**— о том, как он работает, в чем его отличие и как начать развивать его. Мы также рассмотрим распространенные ошибки, лучшие практики и реальные советы по достижению успеха.


##1. Что такое Move и почему Суй им пользуется?

Move — этоязык программирования на основе байт-кода, изначально разработанный компанией Meta (ранее Facebook) для блокчейна Libra/Diem. Компания Sui приняла Move, но расширила и оптимизировала его в соответствии со своейобъектно-ориентированной моделью данных.

По своей сути, Move разработан длябезопасного управления цифровыми активами. Традиционные языки смарт-контрактов, такие как Solidity, рассматривают активы как цифры в остатках на счетах, но в Move активы — этопервоклассные гражданины. Это означает:

  • Активынельзя случайно дублировать.
  • Активынельзя потерятьбез их явного уничтожения.
  • Активыдолжны иметь четкое право собственности.

Эта философия позволяет легче рассуждать о безопасности активов и предотвращает распространенные ошибки и взломы.

Почему Суй выбрала Move:

*Безопасность: Право собственности на активы регулируется на языковом уровне. *Скорость: Программы Move работают быстро и позволяют избежать ненужных вычислений. *Гибкость: Вы можете создавать собственные типы активов, помимо простых токенов. *Параллельное выполнение: Архитектура Sui позволяет коду Move обрабатывать транзакции параллельно, повышая пропускную способность.


##2. Как работает Move на Sui

В то время как другие блокчейны выполняют транзакции последовательно, Sui организует данные вобъекты. Каждый объект:

  • Имеетвладельца(это может быть пользователь, другой объект или система).
  • Может быть изменен только владельцем или с помощью определенных функций Move.
  • Имеет уникальный идентификатор.

Move on Sui имеет три основных концепции:

1.Объекты

  • Все, что хранится в блокчейне, является объектом.
  • Объекты хранятся и изменяются модулями Move.
  • Пример: монета, NFT, игровой персонаж.

2.Модули

  • Контейнеры для кода Move.
  • Определите типы, функции и правила поведения объектов.

3.Транзакции

  • Действия пользователей.
  • Вызывайте функции Move, передавая принадлежащие им объекты.

##3. Сравнение перехода на Solidity

| Функция | Перемещение (Sui) | Надежность (Ethereum) | ------------------------------------------------------------------| | | -------------------------------------------| |Основное направление| Безопасность активов и владение ими | Общая логика смарт-контрактов | |Модель данны��| На основе объекта | На основе учетной записи | |Исполнение| Параллельное (при отсутствии конфликтов объектов) | Последовательное | |Безопасность типов| Строгая типизировка, ресурсы нельзя копировать/удалять | Более свободная система типов | |Безопасность| Предотвращает двойные расходы и непреднамеренную потерю активов | Распространенные проблемы: повторный ввод данных, переполнение целых чисел |

Если вы работаете в Solidity, вы заметите, что Moveзаставляет васоткрыто говорить об обращении с активами. Поначалу это иногда расстраивает, но именно поэтому программы Move использовать сложнее.


##4. Написание модуля First Move на 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функция создает 1000 единиц MyCoinи передает их отправителю.
  • TxContextпредоставляет доступ к деталям транзакции (например, к тому, кто ее отправил).

##5. Типы ресурсов Move — секретный соус

Move вводиттипы ресурсов, которые являютсянекопируемыми и не дублируемыми структурами данных. В повседневной жизни: если у вас есть банкнота номиналом в 10 долларов, ее нельзя просто «скопировать» — вы можете оставить ее у себя в руках или отдать. Ресурсы работают точно так же.

В движении:

struct MyCoin has key, store {
    value: u64
}

*** key— Может храниться как объект верхнего уровня. *** store— Может храниться внутри другого объекта.

Если вы попытаетесьскопироватьресурс, компилятор откажется компилировать ваш код. Это предотвращает ошибки, связанные с случайным клонированием ресурсов.


##6. Расширения переездов, специфичные для костюма

Sui внесла несколько изменений в vanilla Move, чтобы оптимизировать его дляобъектного исполнения:

*Динамические поля объектов: Поля к объектам можно добавлять после их создания. *Общие объекты: Несколько пользователей могут взаимодействовать с одним и тем же объектом. *Изменяемые ссылки: Разрешайте контролируемое изменение данных объекта. *Эмиссия событий: Модули Move могут генерировать события для слушателей, находящихся вне сети.

Например, создание общей таблицы лидеров в играх:

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

Это может быть обновлено несколькими игроками, не создавая узких мест в блокчейне.


##7. Рабочий процесс разработки

Вот основной рабочий процесс разработки с помощью Move on Sui:

1.Установите пользовательский интерфейс

  curl -fsSL https://sui.io/install.sh | bash

2.Создайте новый пакет Move

  sui move new my_project
  1. sourcesЗапишите свои модулив папку.

4.Создайте свой пакет

  sui move build

5.Опубликуйте в Sui

  sui client publish --gas-budget 100000000

6.Функции вызововс использованием:

  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 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.

Кампания вознагражденийАвгуст
Посты с вознаграждением