Установка¶
Быстрый старт¶
Самый быстрый и удобный способ установки блокчейна - воспользоваться подготовленным скриптом, который запустит докер-контейнер и произведет его конфигурацию для начала работы. Докер-контейнер включает в себя пакеты nodeos, cleos, keosd, а также, cdt для компиляции смарт-контрактов.
Для запуска вам потребуется установленный и запущенный Docker. Воспользуйтесь инструкцией по установке с официального сайта для вашей операционной системы: https://www.docker.com/products/docker-desktop/
После установки Docker, клонируем моно-репозиторий системных контрактов и установщика блокчейна:
Переходим в репозиторий установщика:
Запускаем контейнер с блокчейном и заходим в него:
Компилируем все смарт-контракты:
Выходим из контейнера ctrl+c.
Устанавливаем пакеты:
Запускаем установку:
Блокчейн будет запущен в режиме производства блоков, а все смарт-контракты установлены и подготовлены для работы в тестовом режиме. Если произвести остановку процесса через ctrl+c, то при повторной загрузке вся информация блокчейна будет удалена и он будет перезапущен начисто.
Для возобновления работы блокчейна после остановки без перезапуска:
Блокчейн продолжить производство блоков с момента остановки.
Что под капотом¶
Под капотом команды pnpm run cli boot происходит запуск докер-контейнера и выполнение последовательности транзакций, инициирующих блокчейн.
Для того, чтобы иметь возможность гибкой конфигурации, полезно исследовать процесс запуска, а также, поинтересоваться, как конкретно происходит запуск контейнера:
При выполнении команды запуска:
Поднимается контейнер:
docker run --name node -d -p 8888:8888 -p 9876:9876 -p 8080:8080 \
-v /путь/к/репозиторию:/project \
dicoop/blockchain:v5.1.0-dev \
/bin/bash -c 'nodeos -d /project/blocks --config-dir /project/boot/src/configs --genesis-json /project/boot/src/configs/genesis.json'
Контейнер удаляется сразу после остановки, но все данные сохраняются и использутюся при следующем запуске. Для того, чтобы войти в контейнер (именно это исполняется скриптом ./enter.sh, запустите тот же контейнер, но в режиме сохранения сессии bash:
docker run --rm -it --name cdt \
--volume /путь/к/репозиторию:/project \
-w /project \
dicoop/blockchain:v5.1.0-dev /bin/bash
Порт обычно 8888 используется для взаимодействия с запущенной нодой по HTTP-RPC, 9876 используется для синхронизации внешних нод, 8080 - это WS-порт для извлечения исторических данных. Перед запуском контейнера замените /путь/к/репозиторию на ваш, который был склонирован в самом начале этого раздела.
Далее, везде по документации, мы будем подразумевать, что запуск осуществляется любым удобным способом - через загрузчик boot и его скрипт pnpm run cli boot, или через прямую конфигурацию контейнера - делайте как вам удобно согласно требованиям вашего окружения.