April 24, 2023

Развертываем смарт-контракт в сети StarkNet

StarkWare — это ZK-Rollup решение для масштабирования блокчейна.

В инвесторах: Coinbase Ventures, Paradigm, Sequoia, Polychain, Alameda Resaerch, Intel и даже сам Виталий Бутерин.
Один из продуктов, StarkNet — это Layer2 решение на Ethereum. Я думаю, сильного представления тут не нужно, тем более более подробно о нем я расписывал в ЭТОМ ПОСТЕ.

Не так давно команда кошелька Braavos опубликовала статью, где ссылаясь на прошлогоднюю информацию от StarkNet выделили пункты за которые могут раздать нам дром. В свою очередь нас заинтересовал один пункт, а именно: 12% — Гранты на исследования и работу по разработке, тестированию, развертыванию и поддержке протокола StarkNet, поэтому мы решили развернут смарт-контракт.

Аренда сервера

Арендуем сервер, например на Contabo или на любой другой платформе.
Минимальные характеристики для развертывания контракта: 1 CPU, 1 GB RAM и 15 GB SSD.

При оплате сервера необходимо ввести пароль, с помощью которого вы будете подключаться к серверу. После покупки, вам на почту придет письмо с данными вашего сервера.

Подключение к серверу

Для того, чтобы подключиться к серверу на Windows потребуется программа PuTTY:

  • В “Host Name” вводим IP вашего сервера и нажимаем “Open”;
  • В открывшемся окне прописываем команду: root;
  • Жмем “Enter” и вставляем пароль от сервера, затем “Enter”.

На MacOS просто запускаем программу Terminal:

  • Заходим на сервер командой: ssh root@IP_ADDRESS, IP_ADDRESS меняем на IP сервера;
  • Дальше вводим “yes”, жмем “Enter” и вставляем пароль от сервера (введеный пароль будет скрыт иконкой с ключом). Жмем “Enter”.

Приступаем к развертыванию смарт-контракта

В данной статье мы будем брать все коды из официальных ресурсов. Действия происходят в майнете и вам придется вписывать свой приватный ключ от кошелька в код! Кто не готов — не начинайте. Примерные затраты на транзакции около $1-2.

Устанавливаем protostar:

curl -L https://raw.githubusercontent.com/software-mansion/protostar/master/install.sh | bash
source /root/.bashrc
protostar init

После крайней команды появится строка Project directory Name, в ней мы придумываем и пишем любое название.

Пример: StarkD.

Далее входим в эту директорию:

cd <название которое только что написали>
Пример: cd StarkD.

Далее создаем в нашей папке файл командой:

protostar build

Создаем файл со своим ключем

echo “<вставляем private key от кошелька>” > .env
Пример: echo “1780577367856757586576879655423757134249303378563877454818592” > .env

Далее вписываем в команду уже адрес своего кошелька:

protostar declare ./build/main.json --account-address <адрес вашего кошелька> --max-fee auto --private-key-path ./.env --network mainnet
Пример: protostar declare ./build/main.json — account-address 0x0404CF507CFd1291baD33e86FB71b88f82c7002229963310955FD4625ECb8C68 — max-fee auto — private-key-path ./.env — network mainnet

После чего, если все верно сделали, появятся транзакции:

Копируем Transaction Hash и вставляем в StarkScan, ожидаем пока транзакция перейдет в статус Accepted on L2.

Далее развертываем смарт-контракт.
Для этого вписываем в команду Class Hash (который мы взяли из своей транзакции, он будет одинаковый в этой версии) и снова указываем адрес нашего кошелька.

protostar deploy <class hash> --account-address <адрес вашего кошелька> --max-fee auto --private-key-path ./.env --network mainnet
Пример: protostar deploy 0x523be5e7088bf4226d4fdb28c6a19d4d3b93118f7263849a6d8912bf503d672 — account-address 0x0404CF507CFd1291baD33e86FB71b88f82c7002229963310955FD4625ECb8C68 — max-fee auto — private-key-path ./.env — network mainnet


Снова появляются транзакции, копируем Contract address и вставляем в StarkScan.
Контракт появляется не сразу, так как это StarkNet, ждем около 5 мин и более. Далее можем закинуть немного ETH на наш контракт, просто отправив ETH по адресу контракта со своего кошелька.

Теперь после того, как наш контракт верифицируют в самой транзакции по деплою:

Переходим в пункт Read/Write Contract, подключаем кошелек — нажимаем Write и взаимодействуем с контрактом, подписывая транзакции.

Готово!
Мы развернули смарт контракт и взаимодействовали с ним.

Кстати, это дополнительно 3–5 дешевых транзакций для активности в сети StarkNet для потенциального ретродропа.

Хантер, не забудь подписаться на мой ТЕЛЕГРАМ КАНАЛ
Так же переходи к нам в ЧАТ

Всем спасибо и профита!