К основному контенту

Организация блокчейн на VMware vSphere: от теории к практике

Организация блокчейн на VMware vSphere: от теории к практике




Введение

Блокчейн – это инновационная технология, позволяющая создавать децентрализованные и защищённые сети для хранения и передачи данных. Однако, её развёртывание требует мощных вычислительных ресурсов и грамотного управления инфраструктурой. Одним из наиболее эффективных решений является использование VMware vSphere – платформы виртуализации, обеспечивающей высокую доступность, масштабируемость и безопасность.

Теоретические основы

Блокчейн – это распределённый реестр, состоящий из блоков, содержащих транзакции. Он функционирует в среде узлов, которые обеспечивают верификацию и консенсус. При использовании VMware vSphere можно создать отказоустойчивую инфраструктуру для размещения узлов блокчейна в виде виртуальных машин (VM), управляемых гипервизором ESXi.

Преимущества использования VMware vSphere:

  • Гибкость: возможность быстрого масштабирования узлов.

  • Безопасность: изоляция виртуальных машин и защита данных.

  • Эффективное управление: централизованное администрирование через vCenter Server.

  • Высокая доступность: использование кластеров и механизмов балансировки нагрузки.

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

1. Подготовка инфраструктуры

Перед развёртыванием блокчейна необходимо:

  • Установить и настроить VMware ESXi на физических серверах.

  • Развернуть VMware vCenter для управления виртуальной средой.

  • Создать шаблоны виртуальных машин для узлов блокчейна.

2. Развёртывание узлов

  • Создаём несколько виртуальных машин с ОС Linux (например, Ubuntu Server).

  • Устанавливаем на них клиентское ПО блокчейна (например, Hyperledger Fabric или Ethereum Geth).

  • Настраиваем соединение между узлами и механизм консенсуса.

3. Оптимизация и мониторинг

  • Настраиваем отказоустойчивость через vSphere High Availability (HA).

  • Используем vSphere DRS для балансировки нагрузки между серверами.

  • Подключаем VMware vRealize Operations для мониторинга состояния сети.

Заключение

Организация блокчейн-сети на VMware vSphere – это надёжное и гибкое решение, обеспечивающее высокую доступность, масштабируемость и управляемость. Использование виртуализации позволяет оптимизировать затраты на оборудование, минимизировать риски отказов и повысить уровень безопасности сети. Этот подход делает VMware vSphere идеальным инструментом для развёртывания современных блокчейн-решений как в корпоративной, так и в исследовательской среде.

Организация блокчейн на VMware vSphere: от теории к практике.

vm-guru.com

November 1, 2018

View Original

HighlightShare

Гостевой пост нашего партнера - сервис-провайдера ИТ-ГРАД, предоставляющего услуги аренды виртуальных машин.

Blockchain — это принципиально новая технология, которая в последнее время приковывает к себе все больше внимания. Специалисты из таких отраслей, как финансы, экономика, медицина, логистика, IoT, активно работают над исследовательскими и экспериментальными проектами с использованием блокчейн, поскольку эта технология заточена не только на криптовалюты.

Blockchain на vSphere или BoV — это инструмент для развертывания Hyperledger Fabric v1.0 на платформе vSphere, или, другими словами, проект VMware, который помогает администраторам развернуть блокчейн-платформу для разработчиков на базе гипервизора ESXi. Используя всего несколько команд, можно с легкостью запустить кластер на vSphere, а блокчейн-разработчикам сосредоточиться на реализации бизнес-логики.

Отметим, что Hyperledger Fabric — это не компания, не криптовалюта, а проект с открытым исходным кодом, организованный сообществом Linux Foundation, который был создан для продвижения блокчейн-технологии. Это нечто, похожее на хаб для открытой разработки отраслевых блокчейнов. Hyperledger Fabric дает широкие возможности, позволяя разработчикам сконцентрироваться на запуске блокчейн-проекта с собственной бизнес-логикой.

Взгляд изнутри

Суть утилиты Blockchain on vSphere заключается в возможности развернуть несколько узлов кластера Hyperledger Fabric, так называемых Pods, причем максимально просто. При этом в Blockchain-сервисе используются три учетные записи:

  • Cloud Admin,

  • Blockchain Admin,

  • Blockchain Developer.

Каждая из них имеет соответствующие полномочия на разных уровнях системы: Cloud Admin может мониторить и работать с инфраструктурой на базе vSphere, Blockchain Admin — управлять платформой blockchain (Hyperledger Fabric), а разработчик Blockchain фокусируется на разработке приложений с использованием платформы blockchain.

Градация полномочий на разных уровнях системы

Hyperledger Fabric — это распределенная система, реализованная с использованием контейнеров. Она может быть развернута на платформе, которая поддерживает контейнерный стандарт OCI. При этом для управления контейнерами Fabric используется система Kubernetes. В основе рассматриваемого примера для Fabric v1.0 лежит следующая архитектура:

  • Используются пространства имен для поддержки различных организаций Fabric.

  • Используется настраиваемое количество одноранговых узлов в организации.

  • Организуется изоляция через Persistent Volume.

Архитектура решения

Инструкция по развертыванию

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

  • vCenter 6.0+ как минимум с одним хостом ESXi;

  • сервера NFS для хранения конфигурационных файлов кластера Fabric;

  • интернет-подключения, которое потребуется в ходе установки;

  • хоста Linux с Docker 1.11+ установленным для запуска команд;

  • 5, установленный на хост Linux (с модулем PyYAML).

После того как выполнена загрузка пакета BoV, можно приступать к установке Fabric 1.0 на vSphere. Начнем с vCenter, где потребуется выполнить следующие шаги:

  • Создать пул ресурсов для Kubernetes, например kub-pool.

  • Выбрать хранилище данных, используемое Kubernetes, например datastore1.

  • Выбрать сеть для узлов Kubernetes, причем в сети должен быть развернут сервис DHCP, обеспечивающий динамическую IP-адресацию с возможностью выхода в Интернет.

Развертывание Kubernetes

Выполним развертывание Kubernetes, используя проект с открытым исходным кодом Kubernetes Anywhere (https://github.com/kubernetes/kubernetes-anywhere). Для этого:

Шаблон ВМ

  • На Linux-хосте запускаем развертывание контейнера Kubernetes Anywhere:

  • После задаем параметры согласно подсказкам. Ниже указаны возможные варианты:

Теперь необходимо дождаться момента, когда будет создан кластер Kubernetes. Для проверки состояния используйте следующую команду:

Как видно на рисунке, сервисы находятся в запущенном состоянии. Далее копируем содержимое файла phase1 / vsphere /.tmp / kubeconfig.json на Linux-машину, сохраняя содержимое в каталоге ~ /.kube / config. При отсутствии каталога на Linux-машине его необходимо создать:

Выходим из контейнера и возвращаемся к хосту Linux, запустив на нем следующую команду:

Команда снова выведет информацию о кластере. Далее настраиваем DNS, используемый Docker-ом на всех рабочих узлах Kubernetes. Дело в том, что Fabric создает контейнер Docker для запуска цепочки кода, который находится вне зоны контроля Kubernetes. Поэтому демону Docker необходимо использовать корректную DNS-информацию в сети Kubernetes. В связи с этим вносим изменения на узлах Kubernetes. В нашем примере это узлы node1, node2, node3 и node4.

Первым делом редактируем файл /etc/default/docker:

Обратите внимание, что используемые здесь IP-адреса рассматриваются в качестве примера, в случае продакшен-конфигурации их необходимо заменить на действительные. Если дополнительно используется Proxy-сервер, информацию о нем следует отразить в файле /etc/default/docker:

Чтобы внесенные изменения вступили в силу, перезапустите службу Docker:

Следующий шаг — развертывание блокчейн-платформы (Fabric)

Здесь потребуется настроить службу NFS, экспортировать общий каталог (в нашем примере — /opt/share) и проверить настройки на NFS-сервере с тестовым IP-адресом 10.112.122.9. Для этого выполняются следующие шаги:

Обратите внимание, что клиент NFS должен иметь доступ для чтения/записи к каталогу /opt/share. Если же используется анонимный доступ, в таком случае не требуется владелец и в свойствах группы папок следует использовать элемент nogroup. В противном случае можно столкнуться с ошибкой в разрешениях. Поэтому стоит запустить следующую команду на узле NFS:

Далее монтируем каталог к Linux-хосту:

Загружаем файл пакета BoV BaaS.tar, извлекаем файлы и меняем текущий каталог на ./baas. После чего запускаем команду для загрузки инструментов, требуемых Fabric. При этом cryptogen и configtxgen должны быть сохранены в каталоге./bin.

Затем в каталоге setupCluster/templates/ обновляем два файла шаблонов, внося изменения в параметры NFS-сервера.

Примечательно, что файл setupCluster/cluster-config.yaml содержит определение топологии службы blockchain, которую необходимо изменить. Ниже приведен возможный вариант:


Файл setupCluster/cluster-config.yaml

Теперь необходимо изменить каталог на baas/setupCluster и запустить скрипт generateAll.sh, чтобы создать все файлы конфигурации Fabric и файлы определения файлов Kubernetes для службы blockchain.

Изменяем каталог на baas/setupCluster/transform и запускаем команду для развертывания Fabric как контейнер на Kubernetes:

Проверяем созданную блокчейн-группу:

Аналогичную проверку можно выполнить через пользовательский интерфейс панели Kubernetes:

Пользовательский интерфейс панели Kubernetes

Дальше выполняем проверку окружения путем запуска примерной цепочки кода и меняем working path на baas/setupCluster/:

Создаем mychannel, используя configtxgen:

Создаем транзакцию конфигурации для обновления peer0.org1 как якорный одноранговый канал mychannel, аналогичное выполняем и для peer0.org2.

Копируем каталог ./channel-artifacts в /opt/share/:

Загружаем пример сетевого кода из проекта Hyperledger Fabric, затем копируем каталог chaincode_example02 в /opt/share/channel-aritfacts/. В приведенных ниже командах сначала создается канал, затем соединяется с peer0 Org1. Далее устанавливается и создается код цепи с двумя парами ключ/значение: a = 100 и b = 200. После чего peer0 Org2 добавляется к каналу и устанавливается «цепочный» код. Затем создается транзакция для передачи значения 10 от a до b. Запрашивается значение a, которое должно отображаться как 90. Команда для Org1:

Как показано на рисунке, cli org1 был назван cli-1569835662–01c5z. Запускаем команду cli org1:

И в cli pod создаем канал с именем mychannel:

После создания канала возвращается файл mychannel.block из orderer. Он будет использоваться для присоединения к каналу. На рисунке ниже показан вывод команды создания канала:

Теперь копируем mychannel.block в общую папку NFS, чтобы другой cli мог ее использовать:

В результате должны получить следующее:

Обновляем peer0 Org1 в качестве якорной точки mychannel:

Устанавливаем chaincode mycc на peer0:

Результат ниже говорит о том, что цепочный код был успешно установлен:

Создаем chaincode mycc:

Итак, контейнер цепи создан. Однако он не управляется Kubenetes из-за дизайна Fabric. В приведенной выше команде используется pee0.org1 (который назначается узлу 3) для создания цепи. Контейнер цепного кода можно найти, запустив «docker ps» в узле 3, как показано на рисунке:

Запрашиваем chaincode:

Проверяем состояние chaincode, где значение «a» должно быть равно 100 в качестве определенного экземпляра:

Аналогичное используем в Org2:

Как показано на рисунке, cli org2 был назван cli-2586364563-vclmr. Вводим команду cli org2 для командной строки Fabric:

В cli pod org2 Peer0 org2 соединяет канал:

Обновляем Peer0 org2 как привязку:

Устанавливаем chaincode:

Запрашиваем chaincode:

Так как экземпляр chaincode mycc был создан, эта команда возвращает значение «a», равное 100:

Вызываем цепочный код для обновления регистратора канала. Это создает транзакцию для передачи значения 10 от a до b:

При этом Query Result снова должен быть равен 90:

Заключение

В этой статье мы познакомили вас с утилитой Blockchain on vSphere, позволяющей администраторам разворачивать блокчейн-платформу на базе гипервизора ESXi. А также в деталях рассмотрели процесс развертывания Hyperledger Fabric с помощью BoV. Следите за новыми материалами первого блога о корпоративном IaaS, в них мы продолжим знакомить вас с актуальными и востребованными решениями из мира блокчейн и облачных технологий.


Комментарии

Популярные сообщения из этого блога

The Great Russian Firewall: How Russia is Moving Toward the Chinese Model of Internet Control

  Великий російський файрвол: як Росія рухається до китайської моделі контролю інтернету Статті редакції Автор:   Микита Логінов   TJ 10  хв Переглянути оригінал Вибіркові блокування, автономний рунет і тиск на бізнес - три кроки до повної зачистки мережі від забороненої інформації. 31 874  переглядів Заглушка одного з інтернет-провайдерів для заблокованого сайту Зображення Транстелекома На початку вересня Роскомнадзор  заблокував  шість великих VPN-сервісів, але залишив вільний доступ до них для деяких організацій на кшталт банків.  Пізніше деякі користувачі інтернету  повідомили  , що Ростелеком почав блокувати децентралізований протокол BitTorrent, а клієнти декількох провайдерів поскаржилися на проблеми в роботі онлайн-ігор і сервісів. Гравці World of Tanks поскаржилися на проблеми з ... З проблемами також зіткнулися користувачі Twitch, FlashScore, BitTorrent і гравці World of ...  tjournal.ru «Білі списки» доступу і блокування ...

Рецепт лечения "зависших публикаций" на Бастионе

  Bastyon: First Fully Decentralized Social Network on Blockchain Durden_Tyler159 закреплённая публикация, 4 апреля 2-2 minutes Рецепт лечения "зависших публикаций" на Бастионе.  Все ваши публикации должны быть записаны в блокчейн, для этого им нужно попасть в MemPool узлов Бастиона. Но бывают ситуации - что по какой то причине (сетевой сбой / сбой консенсуса сети ) или других ошибках, происходит сбой записи. И тогда ваша публикация остается висеть с надписью "Публикация ожидает подтверждения в блокчейне". Запись об этой публикации есть только в локальном кеш вашего устройства. В этой статье и разберем вопрос - как очистить локальный кеш. ВНИМАНИЕ! Перед удалением локального кеша, обязательно сохраните ключ аккаунта (12 слов)! В случае его утери, вам его никто не восстановит! Сохраните ключ акка...

Крылатый ракетный крейсер «Москва» возглавляет список лучших кораблей Черноморского флота.

  Марка погашена (с) By   site.ua 3 min View Original Вообще, уникальная страна, конечно. Просто уникальная. Везде, во все щели тыкать свой аналоговнетный ракетный крейсер.  Распиарить его, как несокрушимую мощь, где только можно. Гвардейский ракетный крейсер «Москва» возглавил список лучших кораблей Черноморского флота. Посетил Путин. Вручен орден Нахимова. Принял участие в параде. Принял участие в показательных стрельбах.  На всех парадах проводить показательные стрельбы. Уже тогда, правда, ничего не стреляло, но то такое. Вбухать в него миллиарды и миллиарды.  Провести модернизацию и ремонт, которые сделали всего лишь год назад. Карл.  Напичкать его аналоговнетными системами ПВО. «Противовоздушную оборону крейсера обеспечивает зенитный ракетный комплекс С-300Ф „Форт“, который вооружён 64 ракетами, заряженными в 8 барабанов.  Комплекс имеет дальность поражения целей до 75 километров. Он эффективно защищает крейсер от любых самолётов даже перспек...