February 13, 2023

С нуля до хакера Starknet на Windows

Для начала устанавливаем VirtualBox от Oracle.
https://www.virtualbox.org/wiki/Downloads
Для винды тыкаем на Windows hosts.

Я при установке дефолтные опции не менял. Выскочит также пару окон с предупреждением о том, что буду скачаны такие-то компоненты – соглашаемся.

Скачиваем образ операционной системы Ubuntu. Брал первое, LTS версия.
https://ubuntu.com/download/desktop

Далее запускаем VirtualBox и нажимаем создать. Пишем любое название для вашей виртуалки на латинице. Появится окно с выбором пути, куда будет установлена система и путь для файла образа диска. В пути для образа ISO диска соответственно выбираем скачанный образ Ubuntu, файл с расширением iso. Программа после этого сама определит версию, тип, редакцию операционной системы. Нажимаем далее.

Пишем имя пользователя на латинице, придумываем пароль, пароль запомните конечно же. Хост, ключи продукта, доменное имя не трогаем. Ставим галку на дополнениях гостевой OC. Путь до них по идее должен быть выставлен автоматически. Но если нет, то идем по пути установки нашего VirtualBox. Находим папку Oracle и далее как у меня на экране.

После потребуется выбрать сколько оперативной памяти и потоков процессора выделить под нашу гостевую систему. Нам не надо каких-то больших мощностей и т.п., поэтому я поставил 3 ядра из 12 мне доступных, и выделил 4GB оперативной памяти. Эти опции соответствуют рекомендуемым требованиям Ubuntu. На следующих этапах нужно будет выбрать сколько выделить свободного места под виртуальный диск, соответственно ставим опцию "создать новый виртуальный диск". Память я выделил также по рекомендуемым требованиям – 25GB. Соответственно 25 Гб из вашей системы зарезервируется под эту виртуалку.

Начнется процесс установки. У меня он занял некоторое время, 10 минут где-то. Заметил, что при установке так же туда установился некоторый софт, местный офис и т.д., скорее всего из-за того, что использовалась автоматическая установка, где все это включено по умолчанию. Но нам не суть важно, просто есть такой момент. При установке в конце мне предложили установить софт из магазина Software, я сразу вбил в поиске Visual Studio и установил пакет. Если нет, то потом сами заходим в Ubuntu Software и ищем.

Если вам справа мозолит глаз окно, правой кнопкой мыши на значок сообщения - переместить вниз, тыц левой кнопкой мыши и окно скроется.

Когда система успешно стартанула, открываем окно VirtualBox, а не самой виртуалки, там где мы изначально нажимали создать систему. В списке слева появится наша машина, тыкаем на нее и нажимаем шестерёнку, настроить. Далее в общее и включаем двунаправленный буфер обмена, чтобы можно было копировать нужный нам текст из винды и из линукса в обе стороны.
На всякий случай перезагрузим линукс.

Описываю свой опыт, проблемы с которыми я столкнулся и как я их решил.

После запуска системы, пробуем открыть терминал, находится он в списке всех приложений, либо используем сочетание клавиш Ctrl + T. У меня он не загружался. Мне помогла смена языка в настройках Ubuntu. Ищем в списке приложений Settings, там Language & Region. Стоял English United States, я поменял на English United Kingdom. Потом перезагрузка Ubuntu.

Терминал может просить пароль ваш, при вводе пароля он не отображается, это такая особенность.

Снова пытаемся открыть терминал, если он успешно открылся, то следующая проблема, с которой я столкнулся это то, что у пользователя нет прав суперпользователя, соответственно команды не будут работать. Т.е. при вводе команд он мне выдавал "user is not in the sudoers file this insident will be reported". Пофиксил я это после установки дополнений гостевой OC, либо вводами команд которые я сейчас уже не помню, но вроде как именно после дополнений все заработало. По идее, так как вы сразу их поставили, установив тогда галочку при выборе опций, все должно изначально заработать. Если вдруг вам тоже выдает такую ошибку в терминале после любых команд, просто после старта терминала прежде всего пропишите su, потом пароль, и вы тогда точно зайдите туда в роли администратора.

В целом у вас все готово. Далее можно спокойно работать по видео https://www.youtube.com/watch?v=v7QohZ4jdmE, но я распишу все дополнительно и здесь. Устанавливаем protostar.

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

Если попросит в терминале установить curl после ввода данной строчки и покажет для этого специальные команды, просто копируем одну из них и вставляем в строку, нажимаем Enter, пойдет установка curl. Где-то может попросить ввести Y или n, чтобы продолжить, прописываем Y. После установки curl дополнений команда по установке protostar должна заработать.

Как только protostar загрузился, закрываем терминал, открываем его снова и пишем:

protostar -v

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

Создаём папку где будем работать. Слева есть Files. Я создал новую папку в Documents, называем как хотите. Далее правой кнопкой мыши тыкаем по созданной папке. Выбираем Open in Terminal.

После открытия терминала прописываем команду:

protostar init

Попросит дать имя новой директории, пишем к примеру starktest. После успешной инициализации, закрываем терминал. В нашей папке появится ещё одна starktest.

Идём в Visual Studio Core. Слева вверху значок двух файлов, тыкаем на него, далее open folder и выбираем папку starktest, которую нам создал protostar. Откроется проект. Слева будет src, test и т.д. Нужно установить дополнения Cairo. Процесс установки на скриншоте ниже. Тыкаем install.

Далее открываем в студии терминал. Для этого как на скриншоте ниже тыкаете в область слева снизу, а после на terminal.

Прописываем команду:

protostar build

Слева увидите новую папку build. Значит все успешно. Тыкаем слева в пустой области правой кнопкой мыши - new file, и создаём новый файл с названием ".env", именно с точкой вначале. На скриншоте выше слева есть этот файл.
Сюда вставляем приватный ключ вашего кошелька. Нажимаем крестик и Save, т.е. сохраняем этот файл.

В терминале прописываем сначала функцию declare.

Важно! Замените значение после address соответственно на адрес своего кошелька. В терминале адрес кошелька не получится заменить так просто, поэтому для удобства сначала копируем команду в блокнот, там заменяем адрес и уже оттуда вставляем в терминал в студии. Не убирайте никаких пробелов, просто аккуратно копируем от начала и до конца.

protostar declare ./build/main.json --account-address 0x0496bC4895FA74c60Ae738B413894Bda8F6F3A14A33F64C4293aea90EB210E0F --max-fee auto --private-key-path ./.env --network mainnet

Если успешно, то выдаст ссылки на транзакцию, идём по ссылке на starkscan и дожидаемся смены Pending на Accepted in L2. Как только это произошло, запускаем deploy. Тоже заменяем свой адрес, именно после address.

protostar deploy 0x02a5de1b145e18dfeb31c7cd7ff403714ededf5f3fdf75f8b0ac96f2017541bc --account-address 0x0496bC4895FA74c60Ae738B413894Bda8F6F3A14A33F64C4293aea90EB210E0F --max-fee auto --private-key-path ./.env --network mainnet

Если все хорошо, выдаст адрес контракта и ссылку на транзу. Ищем в скане наш контракт по этому адресу, обычно не сразу появляется, а через минут 5.

На этом все, теперь мы разработчики на старкнете и можем претендовать на должность сеньора:) Надеюсь у вас все получилось, и самым пытливым воздастся по сочному дропу, аминь!