Klever. Развертывание ноды.
По сути данный гайд является адаптацией официальной документации Klever. Я называю это адаптацией потому что оригинал полон неточностей и является неполным по своей структуре на данный момент.
Даный пости содержит всю необходимую для запуска ноды информацию.
Системные требования и установка Docker
В системных требованиях обозначена следующая минимальная конфигурация:
Для начала работы с Klever blockchain, необходимо иметь установленный Docker и загрузить последний Klever Toolchain образ.
Я не буду останавливаться на процессе установки Docker. Подробные инструкции можно найти по адресу https://docs.docker.com/engine/install
Klever Toolchain
Загружаем последний образ Toolchain
Кошелек
Выполняется однократно. Файл walletKey.pem является одним из ключевых для идентификации ноды. Подлежит обязательному резервному копированию!
Создаем каталог в котором будет находиться кошелек:
Выполняем команду create-wallet:
docker run -it --rm --user "$(id -u):$(id -g)" \
-v $(pwd)/wallet:/opt/klever-blockchain \
--entrypoint=/usr/local/bin/operator kleverapp/klever-go-testnet:latest "create-wallet"
Эта команда создает кошелек и возвращает адрес связанный с ним
Для проверки адреса и сертификата кошелька набираем:
docker run -it --rm --user "$(id -u):$(id -g)" \ -v $(pwd)/wallet:/opt/klever-blockchain \ --entrypoint=/usr/local/bin/operator \ kleverapp/klever-go-testnet:latest "getAddress"
#Запускаем ноду
Klever нода работает внутри контейнера docker.
Каталог в котором будут храниться все данные:
mkdir -p $(pwd)/node/config $(pwd)/node/db $(pwd)/node/logs
Сожержит актуальный конфиг сети. Данный файл необходим в случае запуска ноды с нуля, после network reset или при сбоях синхронизации.
Загружаем актуальный конфиг файл и распаковываем в каталог config
curl -k https://backup.testnet.klever.finance/config.testnet.100007.tar.gz\ | tar -xz -C ./node
Выполняется однократно. Подлежит обязательному резервному копированию!
Выполняем команду внутри Docker контейнера для создания ключа валидатора. Данные перенаправляются в каталог созданный ранее..
docker run -it --rm -v $(pwd)/node/config:/opt/klever-blockchain \
--user "$(id -u):$(id -g)" \
--entrypoint='' kleverapp/klever-go-testnet:latest keygeneratorСодержит актуальный на данный момент цепочку транзакий (?). Необходим для быстрой синхронизации ноды с чейном. необходим после Network Reset или миграции/восстановления ноды! В случае наличия бэкапа загружаем его. В противном случае используем общий архив.
Подлежит обязательному резервному копированию!
curl -k https://backup.testnet.klever.finance/kleverchain.latest.tar.gz \ | tar -xz -C ./node
Команда для запуска узла выполняется с несколькими флагами: в них входит маппинг для криптографических ключей, каталогов данных и журналов, а также сетевые порты, приложение, которое будет запускаться при выполнении образа докера, и файл подписи валидаторов узла.
docker run -it --rm \
--user "$(id -u):$(id -g)" \
--name klever-node \
-v $(pwd)/node/config:/opt/klever-blockchain/config/node \
-v $(pwd)/node/db:/opt/klever-blockchain/db \
-v $(pwd)/node/logs:/opt/klever-blockchain/logs \
--network=host \
--entrypoint=/usr/local/bin/validator \
kleverapp/klever-go-testnet:latest \
'--log-save' '--rest-api-interface=0.0.0.0:8080'Импортируем конфиг и сгенерированный .pem файл (BLS Key).
-v $(pwd)/node/config:/opt/klever-blockchain/config/node
Указываем каталог DB.
-v $(pwd)/node/db:/opt/klever-blockchain/db
Сохраняем лог файл и назначаем каталог логов.
-v $(pwd)/klv/logs:/opt/klever-blockchain/logs
Если вы хотите контролировать узел с помощью файлов журнала, необходимо передать флаг --use-log-view. В противном случае стандартным видом является визуальный интерфейс, как показано ниже.
Когда вы настроите и запустите свой узел, вы увидите информацию о своем узле, блокчейне, а также данные с вашего компьютера, как показано на примере ниже:
При запуске в фоновом режиме добавьте параметр --use-log-view и замените --rm на -d
docker run -it -d \
--user "$(id -u):$(id -g)" \
--name klever-node \
-v $(pwd)/node/config:/opt/klever-blockchain/config/node \
-v $(pwd)/node/db:/opt/klever-blockchain/db \
-v $(pwd)/node/logs:/opt/klever-blockchain/logs \
--network=host \
--entrypoint=/usr/local/bin/validator \
kleverapp/klever-go-testnet:latest \
'--log-save' '--use-log-view' '--rest-api-interface=0.0.0.0:8080'Если вы запускаете узел в фоновом режиме, вы можете либо проверить журналы в папке ./node/logs, либо использовать команду docker:
docker logs -f --tail 5 klever-node
docker stop klever-node
Либо находясь в окне визуального интерфейса нажимаем Ctrl + C
Итоги
Имеем сконфигурированную и готовую к запуску ноду Klever.
В дальнейшем рассмотрим операции обслуживания ноды и получения статуса валидатора.
Далее: Обслуживание ноды Klever