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

Развертывание платформы в частной сети

Если ваш проект или решение требует независимого блокчейна, вы можете развернуть собственную блокчейн-сеть на базе платформы Waves Enterprise. Специалисты компании помогут вам сконфигурировать поставку платформы под нужды проекта.

Однако если вам потребуется изменить какие-либо параметры или настроить платформу самостоятельно, в данном разделе приведено пошаговое руководство по развертыванию и ручному конфигурированию платформы для работы в частной сети.

Получение лицензии для работы в частной сети и сопутствующих файлов

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

Для обсуждения деталей вашей лицензии свяжитесь с отделом продаж Waves Enterprise по электронной почте: sales@wavesenterprise.com.

По результатам обсуждения, вам будет прислан YAML-файл для Kubernetes, необходимый для первичного развертывания платформы и инструкции по развертыванию и запуску платформы для вашей конфигурации оборудования.

Перед развертыванием ознакомьтесь с системными требованиями к блокчейн-платформе.

Создание аккаунта ноды

После получения лицензии и первичного развертывания вам потребется создать аккаунты для каждой ноды вашей будущей сети.

Генерация ключей производится при помощи утилиты AccountsGeneratorApp, которая входит в пакет generators. Этот пакет вы можете скачать из официального репозитория Waves Enterprise в GitHub, выбрав используемую вами версию платформы.

Аккаунт ноды включает в себя адрес и ключевую пару - публичный и приватный ключи. Адрес и публичный ключ будут показаны в командной строке во время создания аккаунта при помощи утилиты generators. Приватный ключ ноды записывается в хранилище ключей - файл keystore.dat, который размещается в директории ноды.

Для создания аккаунта используется конфигурационный файл accounts.conf, содержащий параметры генерации аккаунтов. Этот файл находится в директории каждой ноды.

Чтобы создать аккаунт ноды, перейдите в ее директорию и разместите в ней скачанный файл generators.jar. Затем запустите его, введя в качестве аргумента файл accounts.conf:

java -jar generators-x.x.x.jar AccountsGeneratorApp accounts.conf

При создании пары ключей вы можете придумать свой пароль для защиты ключевой пары ноды. В дальнейшем вы сможете использовать его в ручном режиме при каждом старте вашей ноды, либо задать глобальные переменные для запроса пароля при старте системы. Подробная информация об использовании пароля для пары ключей ноды приведена в описании генератора аккаунтов.

Если вы не хотите использовать пароль для защиты ключевой пары, нажмите клавишу Enter, оставив поле пустым.

В результате работы утилиты будут выведены следующие сообщения:

2021-02-09 16:03:18,940 INFO  [main] c.w.g.AccountsGeneratorApp$ - 1 Address: 3Nu7MwQ1eSmDVwBzrN1nyzR8wqb2yzdUcyN; public key: F4ytnnS6H72ypCEpgNKYftGotpdX83ZxtWRX2dyGzDiA
2021-02-09 16:03:18,942 INFO  [main] c.w.g.AccountsGeneratorApp$ - Generator done

В директории ноды будет создан файл keystore.dat, содержащий публичный ключ аккаунта.

Настройка платформы для работы в частной сети

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

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

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

Ниже приведено пошаговое руководство по ручной конфигурации отдельной ноды для работы в частной сети. Если в вашей сети развернуто несколько нод, для каждой из них требуется выполнить аналогичные шаги по конфигурации.

Шаг 1. Общая настройка платформы

На этом этапе выполняется настройка консенсуса, исполнения смарт-контрактов Docker и майнинга. Все необходимые для этого параметры располагаются в файле node.conf.

Шаг 2. Тонкая настройка платформы

На этом этапе выполняется настройка инструментария gRPC и REST API ноды, их авторизации, TLS и групп доступа к конфиденциальным данным. Эти настройки могут потребоваться вам в случае изменения предустановленных параметров для конфигурации вашего оборудования или ПО.

Все необходимые параметры также располагаются в в файле конфигурации ноды node.conf. Для настройки авторизации также применяется файл api-key-hash.conf, необходимый при выборе метода авторизации по хэшу заданной строки api-key.

Также для настройки TLS вам потребуется утилита keytool, которая входит в состав Java SDK или JRE.

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

Подписание genesis-блока и запуск сети

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

Genesis-блок подписывается утилитой GenesisBlockGenerator, входящей в пакет generators. В качестве аргумента она использует настроенный вами конфигурационный файл ноды node.conf:

java -jar generators-x.x.x.jar GenesisBlockGenerator node.conf

В результате работы утилиты поля genesis-public-key-base-58 и signature, находящиеся в блоке genesis секции blockchain конфигурационного файла ноды, будут заполнены сгенерированными значениями открытого ключа и подписи genesis-блока.

Пример:

genesis-public-key-base-58: "4ozcAj...penxrm"
signature: "5QNVGF...7Bj4Pc"

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

Привязка клиента к частной сети

После запуска сети привяжите к ней клиентское приложение Waves Enterprise - с его помощью пользователи сети смогут отправлять транзакции в блокчейн, а также публиковать и вызывать смарт-контракты.

  1. Откройте браузер и введите в адресную строку сетевой адрес вашего компьютера с развернутым ПО ноды.

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

  3. Откройте страницу Выберите адрес -> Создать адрес. Для открытия меню после первого входа необходимо ввести пароль, который вы вводили при регистрации аккаунта.

  4. Выберите пункт Добавить адрес из ключевого хранилища ноды и нажмите кнопку Продолжить.

  5. Заполните поля, указанные ниже. Необходимые значения приведены в файле credentials.txt для первой ноды в рабочей директории.

  • Имя адреса - укажите название ноды;

  • URL ноды - укажите значение http://<сетевой адрес компьютера>/<адрес ноды>;

  • Тип авторизации на ноде - выберите тип авторизации, который вы настроили ранее: по JWT-токену или по api-key;

  • Блокчейн-адрес - укажите адрес ноды;

  • Пароль от ключевой пары - укажите пароль от ключевой пары ноды, если задавали его при генерации аккаунта.

Описание клиента приведено на странице Клиент.