Поделиться через


Развертывание сети блокчейна Ethereum в Azure Stack Hub

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

С несколькими параметрами, введенными пользователями, и развертыванием в один щелчок на портале клиента Azure Stack Hub каждый член может развернуть свое присутствие в сети. Сетевой след каждого члена состоит из трех элементов.

  1. Набор узлов транзакций с балансировкой нагрузки, с помощью которых приложение или пользователь может взаимодействовать с отправкой транзакций.
  2. Набор узлов майнинга для записи транзакций.
  3. Сетевое виртуальное устройство (NVA).

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

Чтобы настроить:

  • Выберите архитектуру развертывания.
  • Разверните автономную сеть, сеть лидера консорциума или сеть членов консорциума.

Необходимые условия

Скачайте последние элементы из Маркетплейса:

  • Ubuntu Server 16.04 LTS
  • Windows Server 2016
  • Пользовательский скрипт для Linux 2.0
  • Расширение пользовательских скриптов для Windows

Архитектура развертывания

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

Шаблон может развертывать консорциум Ethereum для лидеров и участников различными способами. Вот те, которые мы проверили:

  • В многоузловой конфигурации Azure Stack Hub с идентификатором Microsoft Entra ID или AD FS разверните главную ноду и ноды-члены, используя одну и ту же подписку или разные подписки.
  • На одном узле Azure Stack Hub (с Microsoft Entra ID) разверните основной компонент и участника, используя ту же подписку.

Автономное развертывание и развертывание лидера консорциума

Шаблон лидера консорциума настраивает место первого члена в сети.

  1. Скачайте шаблон лидера с GitHub.

  2. На портале клиента Azure Stack Hub выберите + Создать ресурс > Развертывание шаблона для развертывания из пользовательского шаблона.

  3. Выберите Соберите собственный шаблон в редакторе для редактирования нового настраиваемого шаблона.

  4. В области редактирования справа скопируйте и вставьте ранее скачанный JSON шаблона лидера.

    Изменить шаблон с вставленным шаблоном лидера

  5. Выберите Сохранить.

  6. На вкладке Основные заполните следующие настройки.

    Имя параметра Описание Пример значения
    Подписка Подписка, в которую необходимо развернуть сеть консорциума. Подписка на потребление
    Группа ресурсов Группа ресурсов, в которую планируется развернуть сеть консорциума. EthereumResources
    Область Регион Azure для ресурсов. местный
    Префикс имени Строка, используемая в качестве основы для именования развернутых ресурсов. Используйте не более шести буквенно-цифровых символов. eth
    Тип проверки подлинности Метод для проверки подлинности на виртуальной машине. Допустимые значения — это пароль или открытый ключ SSH. Пароль
    Имя администратора Имя администратора каждой развернутой виртуальной машины. Используйте от одного до 64 символов. gethadmin
    Пароль администратора (тип проверки подлинности = пароль) Пароль учетной записи администратора для каждой развернутой виртуальной машины. Пароль должен содержать 3 из следующих требований: 1 верхний регистр, 1 нижний регистр, 1 номер и 1 специальный символ.
    Хотя все виртуальные машины изначально имеют один и тот же пароль, вы можете изменить пароль после подготовки. Используйте от 12 до 72 символов.
    Ключ SSH администратора (тип проверки подлинности = sshPublicKey) Строка открытого ключа RSA для SSH, используемая для удаленного входа.
    Блок Genesis Строка JSON, представляющая пользовательский блок genesis. Указание значения для этого параметра является необязательным.
    Пароль учетной записи Ethereum Пароль администратора, используемый для защиты учетной записи Ethereum.
    Парольная фраза учетной записи Ethereum Парольная фраза, используемая для создания закрытого ключа, связанного с учетной записью Ethereum. Рассмотрим пароль с достаточной случайностью, чтобы обеспечить надежный закрытый ключ.
    Идентификатор сети Ethereum Идентификатор сети консорциума. Используйте любое значение от 5 до 999 999 999 999. 72
    Идентификатор члена консорциума Идентификатор, связанный с каждым членом сети консорциума. Этот идентификатор должен быть уникальным в сети. 0
    Число майнинг-узлов Количество майнинговых узлов для каждого члена консорциума. Используйте значение от 2 до 15. 2
    Размер виртуальной машины узла майнинга Размер виртуальных машин майнинговых узлов. Standard_A1
    Тип учетной записи хранилища для майнинга Производительность хранилища майнинговых узлов. Standard_LRS
    Число узлов TX Количество узлов транзакций с балансировкой нагрузки. Используйте значение от 1 до 5. 1
    Размер виртуальной машины узла TX Размер виртуальных машин для узлов транзакций. Standard_A1
    Тип учетной записи хранения TX Производительность хранилища узлов транзакций. Standard_LRS
    Базовый URL-адрес Базовый URL-адрес для получения шаблонов развертывания. Используйте значение по умолчанию, если вы не хотите настраивать шаблоны развертывания.
  7. Выберите Обзор + создание. После успешной проверки выберите Создать.

Развертывание может занять 20 минут или больше времени.

После завершения развертывания просмотрите сводку по развертыванию Microsoft.Template в разделе развертывания группы ресурсов. Сводка содержит выходные значения, используемые для присоединения членов консорциума.

Чтобы проверить развертывание лидера, перейдите на админ сайт лидера. Адрес сайта администратора находится в выходном разделе развертывания Microsoft.Template.

Сводка по развертыванию лидера

Присоединение к развертыванию, осуществляемому членом консорциума

  1. Скачайте шаблон участника консорциума с GitHub.

  2. На портале клиента Azure Stack Hub выберите + Создание ресурса > Развертывание шаблона для развертывания из пользовательского шаблона.

  3. Выберите Создать собственный шаблон в редакторе, чтобы редактировать новый пользовательский шаблон.

  4. В панели редактирования справа скопируйте и вставьте ранее скачанный шаблон JSON члена консорциума.

  5. Выберите Сохранить.

  6. На вкладке Основные заполните следующие настройки.

    Имя параметра Описание Пример значения
    Подписка Подписка для развертывания сети консорциума. Подписка на потребление
    Группа ресурсов Группа ресурсов, в которую будет развернута сеть консорциума. EthereumResources
    Область Регион Azure для ресурсов. местный
    Префикс имени Строка, используемая в качестве основы для именования развернутых ресурсов. Используйте не более шести буквенно-цифровых символов. eth
    Тип проверки подлинности Метод для проверки подлинности на виртуальной машине. Допустимые значения : пароль или открытый ключ SSH. Пароль
    Имя администратора Имя администратора каждой развернутой виртуальной машины. Используйте от одного до 64 символов. gethadmin
    Пароль администратора (тип проверки подлинности = пароль) Пароль учетной записи администратора для каждой развернутой виртуальной машины. Пароль должен содержать 3 из следующих требований: 1 верхний регистр, 1 нижний регистр, 1 номер и 1 специальный символ.
    Хотя все виртуальные машины изначально имеют один и тот же пароль, вы можете изменить пароль после подготовки. Используйте от 12 до 72 символов.
    Ключ SSH администратора (тип проверки подлинности = sshPublicKey) Строка открытого ключа RSA для Secure Shell (SSH), используемая для удалённого доступа.
    Блок Genesis Строка JSON, представляющая пользовательский блок genesis. Указание значения для этого параметра является необязательным.
    Пароль учетной записи Ethereum Пароль администратора, используемый для защиты учетной записи Ethereum.
    Парольная фраза учетной записи Ethereum Парольная фраза, используемая для создания закрытого ключа, связанного с учетной записью Ethereum. Рассмотрим пароль с достаточной случайностью, чтобы обеспечить надежный закрытый ключ.
    Идентификатор члена консорциума Идентификатор, связанный с каждым членом сети консорциума. Этот идентификатор должен быть уникальным в сети. 0
    Число майнинговых узлов Количество узлов майнинга для каждого члена консорциума. Используйте значение от 2 до 15. 2
    Размера виртуальной машины узла майнинга Размер виртуальной машины узлов майнинга. Standard_A1
    Тип учетной записи хранилища для майнинга Производительность хранилища майнинговых узлов. Standard_LRS
    Число узлов TX Количество узлов транзакций с балансировкой нагрузки. Используйте значение от 1 до 5. 1
    Размер виртуальной машины узла TX Размер узлов транзакций в виртуальной машине. Standard_A1
    Тип учетной записи хранения TX Производительность хранилища узлов транзакций. Standard_LRS
    Данные консорциума URL-адрес, указывающий на данные конфигурации консорциума, содержащиеся в развертывании другого участника. Это значение можно найти в выходных данных развертывания лидера.
    Адресное пространство VNET удалённого участника Адресное пространство виртуальной сети лидера. Это значение можно найти в результатах развертывания лидера.
    Общедоступный IP-адрес удаленного члена NVA IP-адрес NVA лидера. Это значение можно найти в выходных данных развертывания лидера.
    Общий ключ подключения Предварительно установленный секрет между членами сети консорциума, устанавливающими подключение шлюза.
    Базовый URL-адрес Базовый URL-адрес для получения шаблонов развертывания. Используйте значение по умолчанию, если вы не хотите настраивать шаблоны развертывания.
  7. Выберите Проверка + Создание. После успешной проверки выберите Создать.

Развертывание может занять 20 минут или больше времени.

После завершения развертывания просмотрите сводку по развертыванию Microsoft.Template в разделе развертывания группы ресурсов. Сводка содержит выходные значения, используемые для подключения членов консорциума.

Чтобы проверить развертывание участника, перейдите на сайт администратора участника. Адрес сайта администратора можно найти в разделе выходных данных развертывания Microsoft.Template.

Сводка по развертыванию участников

Как показано на рисунке, состояние узлов участника не работает. Это состояние связано с тем, что связь между членом и лидером не установлена. Связь между членом и лидером — это двустороннее соединение. При развертывании члена шаблон автоматически создает подключение от члена к лидеру. Чтобы создать подключение от лидера к члену, перейдите к следующему шагу.

Установить связь между членом и лидером

Этот шаблон создает подключение от лидера к удаленному члену.

  1. Скачайте шаблон подключения членов и лидеров из GitHub .

  2. На портале клиента Azure Stack Hub выберите + Создание развертывания > шаблона ресурса для развертывания из пользовательского шаблона.

  3. Выберите Создайте собственный шаблон в редакторе, чтобы изменить новый пользовательский шаблон.

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

  5. Выберите Сохранить.

  6. Выполните указанные ниже параметры.

    Имя параметра Описание Пример значения
    Подписка Подписка, в которую необходимо развернуть сеть консорциума. Подписка на потребление
    Группа ресурсов Группа ресурсов, в которую необходимо развернуть сеть консорциума. EthereumResources
    Область Регион Azure для ресурсов. местный
    Префикс имени члена Строка, используемая в качестве основы для именования развернутых ресурсов. Используйте не более шести буквенно-цифровых символов. eth
    Имя таблицы маршрутов участника Название таблицы маршрутов лидера. Это значение можно найти в отчете о развертывании лидера.
    Адресное пространство VNET для удаленного участника Адресное пространство члена. Это значение можно найти в данных развертывания участника.
    Общедоступный IP-адрес удаленного члена NVA IP-адрес NVA для подключения. Это значение можно найти в выходных данных развертывания члена организации.
    Общий ключ подключения Предустановленный секрет между членами сети консорциума, устанавливающей соединение.
    Частный IP-адрес NVA участника IP-адрес NVA члена. Это значение можно найти в результатах развертывания участника.
    Базовый URL-адрес Базовый URL-адрес для получения шаблонов развертывания. Используйте значение по умолчанию, если вы не хотите настраивать шаблоны развертывания.
  7. Выберите Проверка и Создать. После успешной проверки выберите Создать.

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

Проверка развертывания

Дальнейшие действия

Для получения дополнительной информации об Ethereum и Azure, см. Технологии блокчейна и приложения.