Установка ordering-узла

В этом разделе мы познакомимся с процессом инициализации ordering-узла. Если вы хотите узнать больше про разные реализации ordering-служб, их достоинства и недостатки, ознакомьтесь с документацией по ordering“у.

Этот раздел содержит несколько последовательных шагов.

  1. Создание организации, которой принадлежит ordering-узел (если вы еще этого не сделали)
  2. Настройка узла (с использованием orderer.yaml)
  3. Создание genesis-блока (исходного блока) для системного ordering-канала
  4. Инициализация ordering-службы

Примечание: этот раздел подразумевает, что вы уже загрузили Hyperledger Fabric orderer docker images из docker hub.

Создание определения организации

Как и пиры, все ordering-службы должны принадлежать организации, созданной перед тем, как была создана ordering-служба. Определение этой организации инкапсулировано в службу Membership Service Provider (MSP), которая создана службой Certificate Authority (CA), которая нужна для создания сертификатов и MSP для организации.

Чтобы узнать о создании CA и использовании его для создания пользователей и MSP, ознакомьтесь с руководством пользователя Fabric CA.

Настройка узла

Настройка ordering-службы происходит через файл yamlorderer.yaml. Переменная окружения FABRIC_CFG_PATH используется для хранения адреса файла orderer.yaml, который нужно настроить и который извлечет набор файлов и сертификатов в вашу файловую систему.

Пример order.yaml можно увидеть в github-репозитории fabric-samples, с которым нужно внимательно ознакомиться перед настройкой. Обратите внимание на несколько переменных:

  • LocalMSPID — название MSP, сгенерированное CA вашей организации, которой принадлежит ordering-служба. Тут будут перечислены администраторы вашей ordering-службы.
  • LocalMSPDir — место хранения локальной MSP на вашей файловой системе.
  • # TLS enabled, Enabled: False. Здесь вы уточняете, хотите ли использовать TLS. Если вы укажите значение true, вам нужно будет указать расположение релевантных TLS-сертификатов. Обратите внимание, что это обязательно для Raft-узлов.
  • BootstrapFile — название genesis-блока, который нужно сгенерировать для ordering-службы.
  • BootstrapMethod — метод по которому определяется bootstrap-блок. Сейчас им может быть только file, где файл указан в переменной BootstrapFile.

Если вы используете этот узел как часть кластера (например, часть кластера Raft-узлов), обратите внимание на секции Cluster и Consensus.

Если вы планируете использовать ordering-службу, базирующуюся на платформе Kafka, нужно ознакомиться с секцией Kafka.

Генерация genesis-блока ordering-службы.

Первый блок нового канала называется genesis-блоком. Если этот genesis-блок создается в процессе создания новой сети (другими словами, если создаваемая ordering-служба не будет присоединяться к существующему кластеру ordering-служб), то этот genesis-блок будет первым блоком “orderer system channel” (системный канал ordering-службы) (или “ordering system channel”), специального канала, управляемого администраторами ordering-службы и содержащего список организаций, которым разрешено создавать каналы. Genesis-блок orderer system channel особенный: он должен быть создан и включен в конфигурацию узла до того, как узел может быть запущен.

Узнать о создании genesis-блока с помощью configtxgen можно тут: Конфигурация канала (configtx).

Инициализация ordering-узла.

Как только вы собрали images, создали MSP, настроили orderer.yaml и создали genesis-блок, можно начинать запуск ordering-службы, для чего нужно использовать примерно такую команду: docker-compose -f docker-compose-cli.yaml up -d --no-deps orderer.example.com Где на месте orderer.example.com стоит адрес вашей ordering-службы.