Установка и запуск платформы

На данный момент мы поддерживаем операционные системы на базе Unix (например, популярные дистрибутивы Linux или MacOS). Однако платформа Waves Enterprise может быть запущена и под Windows в экспериментальном режиме. Вы также можете использовать такие решения, как виртуальные машины с Unix подобной системой и среду Docker для установки и запуска платформы Waves Enterprise на операционной системе Windows.

Для установки платформы вам потребуется наличие установленных Docker Engine и Docker Compose в среде развертки.

В зависимости от целей установки вам могут потребоваться следующие файлы:

  1. docker-compose.yml – настроечный файл, используемый Docker Compose для запуска приложений в контейнерах.

  2. generators-Х.Х.Х.jar - вспомогательная утилита, используемая в платформе Waves Enterprise для создания ключевых пар, API keys, подписания генезис блоков и других операций.

docker-compose.yml и generators-Х.Х.Х.jar вы можете скачать пройдя по ссылке.

  1. Конфигурационные файлы для утилиты generators-Х.Х.Х.jar:

    • accounts.conf - конфигурационный файл для генерации аккаунтов;

    • api-key-hash.conf - конфигурационный файл для генерации значений полей api-key-hash и privacy-api-key-hash при выборе авторизации по хешу ключевой строки api-key.

  2. node.conf - основной конфигурационный файл ноды, определяющий ее принципы работы и набор опций. Ниже приведены примеры конфигурационных файлов ноды:

    • mainnet.conf - для подключения к сети Mainnet;

    • partnernet.conf - для подключения к сети Partnernet.

Примеры конфигурационных файлов для утилиты generators-Х.Х.Х.jar и node.conf вы можете скачать на официальной странице платформы Waves Enterprise на GitHub.

Подробная информация о конфигурационных файлах приведена в разделе Подготовка конфигурационных файлов.

  1. node.license - лицензия на использование ноды, не является обязательной до высоты 30 000 блоков.

О способе получения node.license можно узнать в разделе Получение лицензии.

Цель установки

docker-compose.yml

generators-X.X.X.jar

node.conf

node.license

Проверка возможностей платформы

Требуется

Не требуется

Не требуется

Не требуется

Подключение ноды к сети Mainnet

Требуется

Требуется

Требуется

Требуется

Подключение ноды к сети Partnernet

Требуется

Требуется

Требуется

Требуется

Развёртывание платформы в режиме проверки возможностей (Sandbox)

Команда Waves Enterprise предлагает полностью автоматический режим развертывания для целей ознакомления с возможностями платформы. В этом режиме будет установлена блокчейн-сеть из трёх нод, а также дополнительные компоненты - сервис авторизации, сервис подготовки данных и корпоративный клиент. Все ключевые пары, используемые для подписания транзакций и блоков будут сгенерированы случайным образом.

В ознакомительном режиме вы можете взаимодействовать с блокчейном через клиентское приложение, либо REST/gRPC-интерфейсы ноды: отправлять транзакции, получать данные из блокчейна, устанавливать и вызывать смарт-контракты, а также передавать конфиденциальные данные между нодами.

  1. Для установки платформы в режиме Sandbox откройте терминал и перейдите в директорию, содержащую файл docker-compose.yml, и выполните следующую команду:

docker run --rm -ti -v $(pwd):/config-manager/output wavesenterprise/config-manager:v1.2.0

В качестве последних трёх цифр укажите актуальную версию платформы.

  1. Дождитесь результатов выполнения предыдущей команды и выполните следующую команду:

docker-compose up -d

Внимание

На ОС Linux для выполнения команд могут понадобиться права администратора (права root).

После запуска контейнеров клиентское приложение будет доступно по адресу http://localhost, REST API ноды - http://localhost/node-0. Теперь вы можете настроить платформу для отправки транзакций.

Для остановки запущенных нод и сервисов выполните следующую команду:

docker-compose down

Подключение одной ноды к сети Mainnet

По приведенной ниже инструкции можно подключить ноду к любой существующей сети.

Для подключения ноды к сети Mainnet вам потребуются следующие файлы: docker-compose.yml, node.license, node.conf и ключевое хранилище в виде файла keystores.dat.

Подсказка

Файл keystores.dat создается при генерации адреса нового участника.

  1. Скачайте файл docker-compose.yml.

  2. Скачайте файл mainnet.conf, переименуйте его в node.conf и отредактируйте следующие параметры:

  • owner-address, wallet.password - адрес нового участника, от имени которого нода будет выполнять операции в блокчейне. Процесс генерации новой ключевой пары и файла keystores.dat с помощью утилиты generators-Х.Х.Х.jar описан в разделе Создание аккаунтов;

  • node-name - произвольное имя ноды;

  • auth.api-key-hash, auth.privacy-api-key-hash - хеш от секретной фразы для получения доступа к REST API ноды. Процесс создания хешированной секретной фразы с помощью утилиты generators-Х.Х.Х.jar описан в разделе Создание аккаунтов.

  1. Создайте пустые файлы: postgres.env, node-0.env, nginx-proxy.env, frontend.env, data-service.env, crawler.env, auth-service.env.

  2. Откройте файл my-node/env/node-0.env, скопируйте текст приведенный ниже:

LOG_LEVEL=DEBUG
WE_NODE_OWNER_PASSWORD_EMPTY=false
WE_NODE_OWNER_PASSWORD= /FILL
JAVA_OPTS=-Dwe.check-resources=false
  1. В поле WE_NODE_OWNER_PASSWORD вместо /FILL введите пароль от ключевой пары, созданный при генерации адреса нового участника утилитой generators-Х.Х.Х.jar.

  2. Разместите скаченные и созданные ранее файлы в соответствии со приведенной ниже структурой:

my-node                                 (directory with any name)
|- configs                              (directory)
|   |- nodes                            (directory)
|       |- node-0                       (directory)
|           |- node.conf                (file)
|           |- keystores.dat            (file)
|           |- node.license             (file, optional)
|- env                                  (directory)
|   |- postgres.env                     (file)
|   |- node-0.env                       (file)
|   |- nginx-proxy.env                  (file)
|   |- frontend.env                     (file)
|   |- data-service.env                 (file)
|   |- crawler.env                      (file)
|   |- auth-service.env                 (file)
|- docker-compose.yml                   (file)
  1. Выполните команду для запуска ноды:

docker-compose up -d node-0

После запуска контейнера REST API ноды будет доступен по адресу http://localhost/node-0.

Внимание

При наличии ошибок убедитесь, что не запущены другие конкурирующие контейнеры или программы. Для вывода списка запущенных контейнеров и их состояния введите командой docker ps -a. Для остановки выбранного контейнера - командой docker stop [myContainer]. Для остановки всех контейнеров вы можете ввести docker stop $(docker ps -a -q). Команда docker rm [myContainer] удалит выбранный, docker rm $(docker ps -a -q) удалит все контейнеры.

Для остановки запущенных нод и сервисов выполните следующую команду:

docker-compose down

Отправка транзакций из веб-клиента

После того, как блокчейн-платформа стартовала, выполните следующие действия:

  1. Откройте браузер и введите в адресную строку значение http://localhost.

  2. Зарегистрируйтесь в веб-клиенте, используя любой действительный электронный адрес, и зайдите в веб-клиент.

  3. Откройте страницу Выберите адрес -> Добавить адрес вручную.

  4. Заполните поля, указанные ниже. Значения вы можете взять из конфигурационного файла accounts.conf для первой ноды в каталоге nodes/node-0.

    • Сетевой адрес ноды - укажите значение http://localhost/nodeAddress.

    • Адрес - укажите адрес ноды. См. поле Address, отмеченное на картинке ниже.

    • Пароль от ключевой пары - укажите пароль от ключевой пары ноды. См. поле Key-pair password, отмеченное на картинке ниже.

../_images/accountsConf.png

Теперь можно отправлять транзакции из веб-клиента от адреса ноды, на котором есть токены.