(Обновлено 18 мая 2022)
Sui запустила Devnet. Пока что участвовать в нем можно только кошельком, но в будущем можно будет создать ноду и стать валидатором. Когда это будет, пока неизвестно.
В своем блоге SUI написала, что участие в девнете на той стадии, когда будет доступна нода, является ОБЯЗАТЕЛЬНЫМ для попадания в будущий тестнет!
Еще раз повторю, что сейчас участвовать можно только выполняя задания из кошелька и этот devnet пока не является обязательным.
Сейчас сеть работает с 4 валидаторами под управлением Mysten Labs. Кошелек будет работать через них.
Ссылки:
Дискорд: https://discord.gg/4wH36retfA
Блокэксплорер: https://explorer.devnet.sui.io/
Анонс Devnet: https://medium.com/mysten-labs/sui-devnet-public-release-a2be304ff36b
Обновление
Выполнять обновление только если уже устанавливали предыдущие версии SUI.
- Удаляем папку с кошельком .sui (папка с точкой!): rm -rf .sui
- Устанавливаем cmake: sudo apt install cmake
- Теперь устанавливаем новую SUI:
cargo install --locked --git https://github.com/MystenLabs/sui.git --branch “devnet” sui
Установка с нуля
Устанавливаем нужные пакеты:
sudo apt update && sudo apt upgrade -ysudo apt install make clang pkg-config libssl-dev cmake
Устанавливаем Rust:
curl https://sh.rustup.rs -sSf | sh
Проверяем версию Cargo:
cargo -V
Должна быть версия 1.60.0 или выше
Устанавливаем SUI:
cargo install --locked --git https://github.com/MystenLabs/sui.git --branch "devnet" sui
Это будет длительный процесс. У меня на конфигурации 4/8 заняло примерно 30 минут.
После окончания установки введите команду which wallet. Если установка прошла успешно, терминал выдаст путь наподобие этого:
Сами файлы кошелька wallet.conf и wallet.key находятся в папке /.sui/sui_config
Узнать адрес своего кошелька можно командой
wallet active-address
После этого запросите тестовые монеты в дискорде в канале #devnet-faucet. Присланные монеты будут использоваться для оплаты комиссий за транзакции.
Можете создать себе еще один адрес с помощью команды wallet new-address (он нам дальше пригодится).
Посмотреть все имеющиеся в кошельке адреса можно командой
wallet addresses
Создаем NFT
Создадим NFT c помощью команды:
wallet create-example-nft
Терминал выдаст подобный ответ:
Successfully created an ExampleNFT:
ID: ED883F6812AF447B9B0CE220DA5EA9E0F58012FE
Version: 1
Owner: Account Address ( 9E9A9D406961E478AA80F4A6B2B167673F3DF8BA )
Type: 0x2::DevNetNFT::DevNetNFT
Вы можете увидеть созданный NFT в блокэксплорере, введя туда полученный ID или просто свой адрес.
Но у нас NFT без картинки и без описания. Давайте теперь создадим еще один NFT, но уже с картинкой и с описанием:
wallet create-example-nft --url=https://user-images.githubusercontent.com/76067158/166136286-c60fe70e-b982-4813-932a-0414d0f55cfb.png --description="The greatest chef in the world" --name="Greatest Chef"
Вместо url, description и name поставьте свою ссылку на картинку, описание и название.
Получится примерно такое:
Публикуем модуль
На странице https://docs.sui.io/build/move#writing-a-package приведен пример разработки модуля.
Предположим что мы делаем некую фентезийную игру и хотим сделать для нее меч (Sword) в виде NFT. У меча будут такие характеристики, как волшебство (magic) и сила (strength). Эту NFT можно будет минтить на какой-либо адрес.
Клонируем репозитарий:
git clone https://github.com/MystenLabs/sui.git
Выполняем команду публикации:
wallet publish --path sui/sui_programmability/tutorial --gas-budget 30000
Вы увидите результат выполнения в терминале наподобие этого:
Сохраните package object ID и Forge object ID.
Делаем вызов функции
Выше мы опубликовали пакет, в котором имеются разные функции, в том числе и функция минта NFT. Сейчас мы ее используем.
Создайте второй адрес командой wallet new-address, если еще не сделали.
Выполните команду:
wallet call -function sword_create -module M1 -package 0x<PACKAGE_ID> -args \"0x<FORGE_ID>\" 42 7 \"0x<PLAYER_ADDRESS>\" -gas-budget 30000
<PACKAGE_ID>, <FORGE_ID>, <PLAYER_ADDRESS> замените соответственно на package object ID, Forge object ID и адрес. НЕ УДАЛЯЙТЕ 0x! Все должно быть написано слитно, как на примере ниже:
После выполнения команды вы увидите в терминале подобное:
На этом пока всё.
Подготовил Sr20de — русскоязычный канал о нодах