zk-resistor-ceremony (windows)
@proofofresistanceПроцесс на операционной системе Windows почти полностью совпадает с процессом на Linux. Всю основную работу возьмет на себя программа Docker. Она создаст внутри вашего компьютера правильную виртуальную среду.
Шаг первый: подготовка.
Нам потребуется исключительно программа PowerShell. Это современный и мощный инструмент который установлен в системе по умолчанию.
Для запуска нажмите меню Пуск. Введите слово PowerShell в строку поиска. В появившемся списке обязательно нажмите на программу правой кнопкой мыши и выберите пункт Запуск от имени администратора. Откроется синее окно терминала с повышенными правами. Это критически важно для следующего шага.
Шаг второй: установка подсистемы Linux.
В открытом окне PowerShell с правами администратора введите следующую команду:
wsl --install
Нажмите клавишу ввода. Система сама скачает необходимые компоненты подсистемы Linux и платформу виртуальной машины. Обязательно дождитесь сообщения об успешном завершении операции.
Важное уточнение. Если вместо установки на экране появился длинный текст со справкой значит базовые компоненты у вас уже есть. В таком случае введите команду для явной установки дистрибутива:
wsl --install -d Ubuntu
После завершения установки вам необходимо полностью перезагрузить компьютер.
Резервный способ установки:
Иногда автоматическая установка дает сбой. Тогда нужно включить компоненты старым ручным способом. Откройте меню Пуск и введите фразу Включение или отключение компонентов Windows. Откройте найденное окно. Найдите в списке пункт Подсистема Windows для Linux и поставьте галочку. Затем найдите пункт Платформа виртуальной машины и тоже поставьте галочку. Нажмите кнопку ОК и перезагрузите компьютер.
Шаг третий: установка остальных программ.
Вам необходимо скачать с официальных сайтов и установить две программы. Первая это система контроля версий Git. Вторая программа называется Docker Desktop. При установке Docker обязательно проследите чтобы была включена галочка напротив пункта интеграции WSL 2.
Шаг четвертый: скачивание проекта.
Снова откройте терминал PowerShell. Права администратора больше не нужны. Скачайте официальный код церемонии следующей командой. Замените слово ВАШ_НИК на ваш логин от платформы GitHub.
git clone https://github.com/ВАШ_НИК/zk-resistor-ceremony.git
Перейдите в скачанную папку:
cd zk-resistor-ceremony
Свяжите вашу копию с главным хранилищем создателей проекта:
git remote add upstream https://github.com/TONresistor/zk-resistor-ceremony.git
Шаг пятый: сборка.
Теперь нужно собрать рабочий контейнер. Обратите внимание на пробел и точку в самом конце команды. Они обязательны.
docker build -t zkr-ceremony .
Дождитесь окончания загрузки и сборки.
Шаг шестой: вход в изолированную среду.
Запускаем контейнер. Скопируйте команду целиком и выполните в терминале:
docker run -it --rm -e HOME=/tmp -v "${PWD}:/work" -w /work zkr-ceremony bash
Вид вашей командной строки сразу изменится. Вы внутри защищенной среды.
Шаг седьмой: проверка.
Перед вашим вкладом проверьте математику предыдущего участника:
./scripts/verify-previous.sh
Шаг восьмой: генерация хаоса.
Запускаем главный скрипт:
./scripts/contribute.sh ВАШ_НИК
В течение тридцати секунд хаотично стучите по клавиатуре. Вводите буквы и цифры без всяких закономерностей. Затем начнутся математические расчеты. Ваш ноутбук может начать сильно шуметь. Просто дождитесь окончания.
Шаг девятый: отправка результата.
Скрипт выдаст готовые команды. Скопируйте их. Выйдите из контейнера командой:
exit
Теперь вставьте скопированные команды в обычный терминал PowerShell по очереди. Скрипт предложит команду с флагом цифровой подписи. Обязательно уберите этот флаг. Выполните точный порядок действий:
git checkout -b ВАШ_НИК
git add phase1/ contributors/ transcript/contributions.json
git commit -m 'ВАШ_НИК'
git push origin HEAD
После этого зайдите на сайт GitHub и нажмите зеленую кнопку создания запроса.
Что делать при ошибке отправки?
Если вас опередили система выдаст ошибку конфликта. Вам нужно обновить данные и повторить процесс. Выполните следующие команды:
git fetch upstream
git checkout -B ВАШ_НИК upstream/main
Затем снова запустите скрипт генерации случайности и повторите процесс отправки файлов.