Перейти к содержанию

Установка

Быстрый старт

Самый быстрый и удобный способ установки блокчейна - воспользоваться подготовленным скриптом, который запустит докер-контейнер и произведет его конфигурацию для начала работы. Докер-контейнер включает в себя пакеты nodeos, cleos, keosd, а также, cdt для компиляции смарт-контрактов.

Для запуска вам потребуется установленный и запущенный Docker. Воспользуйтесь инструкцией по установке с официального сайта для вашей операционной системы: https://www.docker.com/products/docker-desktop/

После установки Docker, клонируем моно-репозиторий системных контрактов и установщика блокчейна:

git clone https://github.com/coopenomics/coopenomics

Переходим в репозиторий установщика:

cd coopenomics
cd boot

Запускаем контейнер с блокчейном и заходим в него:

./enter.sh

Компилируем все смарт-контракты:

./compile-all.sh

Выходим из контейнера ctrl+c.

Устанавливаем пакеты:

pnpm install

Запускаем установку:

pnpm run cli boot

Блокчейн будет запущен в режиме производства блоков, а все смарт-контракты установлены и подготовлены для работы в тестовом режиме. Если произвести остановку процесса через ctrl+c, то при повторной загрузке вся информация блокчейна будет удалена и он будет перезапущен начисто.

Для возобновления работы блокчейна после остановки без перезапуска:

pnpm run cli start

Блокчейн продолжить производство блоков с момента остановки.

Что под капотом

Под капотом команды pnpm run cli boot происходит запуск докер-контейнера и выполнение последовательности транзакций, инициирующих блокчейн.

Для того, чтобы иметь возможность гибкой конфигурации, полезно исследовать процесс запуска, а также, поинтересоваться, как конкретно происходит запуск контейнера:

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

pnpm run cli start #

Поднимается контейнер:

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
После входа в контейнер вы можете напрямую вызывать nodeos для конфигурации через команду запуска

/usr/local/bin/nodeos

Порт обычно 8888 используется для взаимодействия с запущенной нодой по HTTP-RPC, 9876 используется для синхронизации внешних нод, 8080 - это WS-порт для извлечения исторических данных. Перед запуском контейнера замените /путь/к/репозиторию на ваш, который был склонирован в самом начале этого раздела.

Далее, везде по документации, мы будем подразумевать, что запуск осуществляется любым удобным способом - через загрузчик boot и его скрипт pnpm run cli boot, или через прямую конфигурацию контейнера - делайте как вам удобно согласно требованиям вашего окружения.