Как устроена платформа
Генераторы¶
Генераторы – это набор утилит, входящий в комплект поставки блокчейн-платформы Waves Enterprise.
Генераторы поставляются в виде пакетного файла generator-x.x.x.jar, где x.x.x
– номер релиза блокчейн-платформы.
Генераторы для каждой версии доступны в официальном репозитории Waves Enterprise в GitHub.
Для работы с генераторами вам следует установить Java Runtime Environment для вашей операционной системы. Все утилиты пакета запускаются из терминала или командной строки с аргументами, соответствующими названию генераторов.
В набор генераторов входят следующие утилиты:
AccountsGeneratorApp – утилита для создания аккаунта на ноде;
GenesisBlockGenerator – утилита для подписания genesis-блока;
ApiKeyHash – утилита для настройки авторизации API-методов ноды;
AccountsGeneratorApp¶
Утилита AccountsGeneratorApp применяется при конфигурировании аккаунта ноды в частной сети – набора данных об участнике блокчейн-сети. Для генерации аккаунта требуется настроить файл accounts.conf, расположенный в директории ноды.
Запуск AccountsGeneratorApp:
java -jar generator-x.x.x.jar AccountsGeneratorApp YourNode/accounts.conf
Генератор создает публичный ключ для ноды (аккаунт) и записывает его в файл keystore.dat
, который будет расположен в директории вашей ноды.
При необходимости, вы можете задать пароль для доступа к ключевой паре.
Подсказка
В случае, если вы задали пароль, вам следует указывать его в поле password
при формировании запросов и транзакций.
Подробнее о создании аккаунта для ноды см. раздел Создание аккаунта ноды.
GenesisBlockGenerator¶
Утилита GenesisBlockGenerator применяется для подписания genesis-блока частной сети – первого блока сети, содержащего транзакции, определяющие первоначальный баланс и разрешения ноды.
Для подписания genesis-блока утилита использует блок blockchain.genesis
конфигурационного файла ноды node.conf.
Запуск GenesisBlockGenerator:
java -jar generator-x.x.x.jar GenesisBlockGenerator YourNode/node.conf
Утилита заполняет поля genesis-public-key-base-58
(открытый ключ genesis-блока) и signature
(подпись genesis-блока) конфигурационного файла ноды.
Подробнее о подписании genesis-блока см. раздел Подписание genesis-блока и запуск сети.
ApiKeyHash¶
Утилита ApiKeyHash применяется для настройки авторизации API-методов ноды (gRPC и REST API-интерфейсов для обмена данными).
Для генерации JWT-токена (при авторизации по oAuth) или токена на основе хэша ключевой строки api-key
утилита использует данные конфигурационного файла api-key-hash.conf, который расположен в директории ноды.
Запуск ApiKeyHash:
java -jar generator-x.x.x.jar ApiKeyHash YourNode/api-key-hash.conf
Утилита генерирует JWT-токен или хэш заданной ключевой строки api-key
, которые затем указываются в секции auth
конфигурационного файла ноды.
Пример файла api-key-hash.conf:
apikeyhash-generator {
crypto {
type = GOST
pki {
mode = ON
required-oids = ["1.2.3.4.5.6.7.8.9.10.11"]
}
}
api-key = "some string for api-key"
}
Подробнее об авторизации gRPC и REST API см. раздел Тонкая настройка платформы: настройка авторизации для gRPC и REST API.