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

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

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

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

Примечание

Порядок создания аккаунтов нод, подписания genesis-блока и запуска сети в коммерческой версии платформы при использовании ГОСТ криптографии с PKI отличается от описанного в этом разделе. Этот порядок представлен в документации к коммерческой версии патформы. За более подробной информацией обратитесь в отдел продаж Waves Enterprise по электронной почте: sales@wavesenterprise.com.

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

Создайте аккаунты для каждой ноды вашей будущей сети.

Аккаунт ноды включает в себя адрес и ключевую пару – публичный и приватный ключи.

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

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

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

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

java -jar generator-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. Принципы работы с этим конфигурационным файлом будут рассмотрены при настройке метода авторизации ноды.

Примечание

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

include required(file("network.conf"))
include required(file("local.conf"))

Таким образом можно вынести в один файл общие для всех нод параметры, а уникальные параметры ноды (например, owner-address) задать в отдельном файле для каждой ноды.

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

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

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

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

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

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

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

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

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

Примечание

Opensource-версия блокчейн-платформы Waves Enterprise не требует лицензии.

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

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

По результатам обсуждения вам будет прислан файл лицензии. Поместите этот файл в папку, путь к которой указан в параметре license-file конфигурационного файла ноды.

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

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

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

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

java -jar generator-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-блока платформа полностью настроена и готова для запуска сети.

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

  • Docker Compose

  • Kubernetes

Если вы планируете запускать сеть через Docker Compose, то следуйте той же процедуре, что и при запуске сети в ознакомительном режиме.

Если вы планируете запускать сеть через Kubernetes, то следуйте указаниям, полученным от специалистов технической поддержки Waves Enterprise.

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

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

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

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

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

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

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

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

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

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

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

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

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