Допис
Діліться своїми знаннями.
Чому варто спробувати Sui Move?
Aptos і Sui штурмували Crypto Twitter за допомогою тестів TPS та згинів «L1 наступного покоління», але справжнім чіт-кодом є Move. Народився в лабораторіях Libra, Move був спеціально створений для того, щоб очистити класичні пістолети зі смарт-контрактом (повторний вхід, перелив, жетони привидів, що завгодно). Потім Sui реміксував Move з об'єктно-орієнтованим виконанням, перетворюючи кожну мережеву річ у... ну, річ, яку ви можете буквально відстежувати, переносити чи знищувати - без невидимих побічних ефектів.
«Файлова система» Солани проти «Лего відра» Суї 🔍
Solana розглядає кожен фрагмент стану як файл в ОС. Програми (смарт-контракти) можуть читати будь-який файл, але записувати в нього може тільки власник-програма файлу. Одна транзакція може містити кілька інструкцій, і кожен дзвінок може заглянути на своїх сусідів. Це працює, але жонглювання рахунками та КПК може здатися подачею податків мовою збірки.
Sui Move перевертає стіл: уявіть собі одну гігантську програму, де кожен контрактний модуль живе пліч-о-пліч у всесвіті одного типу. Модулі спілкуються один з одним безпосередньо; ніяких передач ABI, немає гімнастики JSON. Кожне постійне значення є об'єктом з власником (або без власника, або замороженим назавжди). Це ніби відображення Solidity (адреса ⇒ uint) виростило ноги та тег ID.
Зустрічайте загін об'єктів 👫🚌🏛️
- Власні об'єкти — Ваші приватні кросівки. Тільки ви можете зашнурувати їх або торгувати ними. Ідеально підходить для монет, NFT, ігрового спорядження.
- Спільні об'єкти — Міський скутер. Покататися може будь-хто, але смарт-контракт встановлює правила.
- Незмінні об'єкти — Музейні артефакти. Зробіть селфі; ви не можете налаштувати Мону Лізу.
Реалізація шпаргалка:
struct Sneaker has key { id: UID, color: vector<u8> } // owned
struct Scooter has key, store { id: UID, mileage: u64 } // shared
struct Artifact has key { id: UID } // immutable (never mutated after mint)
Вбудовані охоронці: прапори здібностей руху 🛡️
Переміщення приймає можливості буквально:
Результат? Монету без копії або краплі не можна роздрукувати з повітря або випадково видалити. Компілятор здійснює його. Ось чому розробники жартують Ресурси Move — це гаряча картопля — система типів змушує вас здавати їх або спалити; ви не можете пропустити одну за диваном.
І перш ніж будь-який байтовий код потрапить у валідатор, Перевірник переміщення виконує статичний аудит: «Ні, ви намагалися клонувати ресурс, який не можна скопіювати. Виправте це або залишайтеся поза моїм ланцюгом». Аудит з нульовою вартістю FTW.
№5. Завантаження пакету Sui Move 🛠️
sui move new hello_world
cd hello_world
tree .
hello_world
├─ Move.toml # project manifest
└─ sources/
└─ hello_world.move
Move.toml — Ім'я, версія, залежності (Sui stdlib попередньо підключено) та іменовані адреси. • sources/ — Один файл.move на модуль. Зберігайте назви файлів snake_case.
Швидкий переїзд. Подивіться:
[package]
name = "hello_world"
[dependencies]
Sui = { git = "https://github.com/MystenLabs/sui.git",
subdir = "crates/sui-framework/packages/sui-framework",
rev = "framework/testnet" }
[addresses]
hello_world = "0x0" # auto-replaced on publish
Створення та перевірка:
sui move build # compiles
sui move test # runs Move unit tests
Sui Move - це не просто «ще одна мова ланцюга». Це мислення: активи є першокласними громадянами, безпека за замовчуванням, а творчий досвід розробників сяє простими робочими процесами CLI. Менше часу на перевірку математики переповнення, більше часу на створення дурманних мережевих ігор, соціальних програм та будь-якої дикої мети, яка з'явиться далі.
Тож візьміть свій улюблений IDE, відкрийте холодну заварку (або єрбу) та відправте щось на основі Move.
- Sui
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.
Зароби свою частку з 1000 Sui
Заробляй бали репутації та отримуй винагороди за допомогу в розвитку спільноти Sui.

- ... SUIBigSneh+1396
- ... SUISuiLover+1333
- ... SUI0xduckmove+1207
- ... SUIThorfin+1202
- ... SUIOwen+970
- ... SUIharry phan+847
- ... SUItheking+742
- Чому BCS вимагає точного порядку полів для десеріалізації, коли структури Move мають названі поля?53
- Помилки перевірки кількох джерел» у публікаціях модуля Sui Move - автоматичне вирішення помилок43
- Невдала операція Sui: об'єкти, зарезервовані для іншої транзакції25
- Як обмеження здібностей взаємодіють з динамічними полями в гетерогенних колекціях?05