Как устроена платформа

Генераторы

Генераторы – это набор утилит, входящий в комплект поставки блокчейн-платформы 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, расположенный в директории ноды.

Пример конфигурационного файла accounts.conf:
accounts-generator {
  crypto {
    type = WAVES
    pki {
      mode = OFF
      required-oids = []
    }
  }
  chain-id = T
  amount = 5
  wallet = ${user.home}"/node/wallet/wallet1.dat"
  wallet-password = "some string as password"
  reload-node-wallet {
    enabled = false
    url = "http://localhost:6869/utils/reload-wallet"
  }
}

Запуск 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.

Смотрите также