Поскольку мы знаем, что технология Blockchain набирает обороты, людям интересно узнать о ней больше и они пытаются проводить эксперименты с этой новой технологией. Hyperledger - один из ведущих проектов с открытым исходным кодом, размещенный на Linux Foundation, и поддерживает так много фреймворков, но люди предпочитают работать с Hyperledger Fabric. В этом руководстве мы рассмотрим Hyperledger Fabric и как настроить файл конфигурации, который требуется для начальной настройки сети. Также мы увидим, как добавить дополнительные организации в существующую сеть. Давай начнем!!!!!
Прежде чем погрузиться в Hyperledger Fabric. Настройте локальный компьютер со следующими предпосылками:
Operating Systems: Ubuntu Linux 14.04 / 16.04 LTS (both 64-bit), or Mac OS 10.12 Docker Engine: Version 17.03 or higher Docker-Compose: Version 1.8 or higher Node: 8.9 or higher (note version 9 is not supported) npm: v5.x git: 2.9.x or higher Python: 2.7.x
Если вы работаете в Ubuntu, вы можете загрузить необходимые компоненты, используя следующие команды. Помните, что не используйте sudo или не входите в систему как пользователь root перед выполнением следующих команд:
curl -O https://ibm-blockchain.github.io/develop//develop/prereqs-ubuntu.sh chmod u+x prereqs-ubuntu.sh
Затем запустите сценарий, так как он ненадолго использует sudo во время своего выполнения, вам будет предложено ввести пароль.
./prereqs-ubuntu.sh
Кроме того, вам необходимо установить языковые пакеты go, чтобы запускать цепной код на языке go. Используйте следующую команду:
sudo apt install golang-go
Для просмотра и редактирования кода также необходим редактор кода по вашему выбору, я рекомендую редактор VSCode.
Установите образцы Hyperledger Fabric
В этом руководстве я использую образец Hyperledger Fabric и буду вносить изменения в различные файлы конфигурации, чтобы добавить новую организацию в существующую сеть. Определите место на вашем компьютере, где вы хотите разместить репозиторий образцов Hyperledger Fabric, и откройте его в окне терминала. Затем выполните следующие команды:
В моем случае я создал каталог с именем fabric_tutorial.
mkdir fabric_tutorial cd fabric_tutorial git clone -b master https://github.com/hyperledger/fabric-samples.git cd fabric-samples
Загрузить двоичные файлы для конкретной платформы
Затем мы установим двоичные файлы для конкретной платформы Hyperledger Fabric. Этот процесс был разработан в дополнение к примерам Hyperledger Fabric выше. Выполните следующую команду в каталоге образца ткани.
curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0 1.1.0 0.4.6
После выполнения вышеуказанной команды он начнет выборку двоичных файлов для конкретной платформы и создаст папку bin внутри образцов ткани.
Вы заметите, что есть несколько образцов, включенных в репозиторий образцов ткани. Мы будем использовать образец первой сети. Давайте сейчас откроем этот подкаталог.
cd fabric-samples/first-network
Hyperledger Fabric предоставляет полностью аннотированный скрипт byfn.sh
, который использует эти образы Docker для быстрой загрузки сети Hyperledger Fabric, состоящей из 4-х одноранговых узлов, представляющих две разные организации, и узла Orderer. Он также запустит контейнер для запуска выполнения сценария, который присоединит одноранговые узлы к каналу, развернет и создаст экземпляр цепного кода и запустит выполнение транзакций против развернутого цепного кода. Но мы не просто запускаем эти byfn.sh
script, мы добавим новую организацию в существующую сеть, а затем запустим эти файлы сценариев, чтобы они отразили изменения.
Генератор криптографии
Инструментcryptogen
используется для генерации криптографического материала (сертификатов x509 и ключей подписи) для различных сетевых объектов. Cryptogen использует файл crypo-config.yaml
, который содержит топологию сети и позволяет нам генерировать набор сертификатов и ключей для всех организаций и компонентов, принадлежащих этим организациям. Откройте файл crypto-config.yaml
в первой сети и внесите соответствующие изменения, добавив новую организацию в конце существующей сети.
Создать сетевые артефакты
Аналогичным образом Configtxgen использует файл configtx.yaml
, содержащий определения для образца сети. Всего четыре члена - одна организация-заказчик (OrdererOrg) и три одноранговых организации (Org1, Org2 и Org3), каждая из которых управляет и обслуживает два одноранговых узла. Этот файл определяет консорциум - SampleConsortium - состоящий из трех наших равноправных организаций. Обратите особое внимание на раздел «Профили» в верхней части этого файла. Вы заметите, что у нас есть два уникальных заголовка. Один для блока создания заказов ThreeOrgsOrdererGenesis и один для нашего канала ThreeOrgsChannel.
Топология Docker Compose
После выполнения этих двух шагов перейдите к docker-compose-cli.yaml
file и внесите соответствующие изменения, добавив службы для Org3.
Откройте базовую папку в первой сети и перейдите в docker-composer-base.yaml
file. Добавьте новый контейнер для двух одноранговых узлов Org3 с разными номерами портов.
docker-compose-e2e-template.yaml
предназначен для выполнения сквозных тестов с использованием Node.js SDK. Помимо работы с SDK, он в основном используется для отправки вызовов REST в центры сертификации организации для регистрации и регистрации пользователей. Откройте docker-composer-e2e-templete.yaml
и определите конфигурацию CA (центра сертификации).
CouchDB
Пришло время поработать над базой данных CouchDB для разных пиров. docker-compose-couch.yaml
file содержит определение хранилища для одноранговых узлов организации. Настройте базу данных для Org3, добавив новые контейнеры CouchDB.
Ага !!!! Я думаю, что много изменений было внесено в различные файлы конфигурации, теперь пришло время сгенерировать разные сертификаты, генезис-блок и канал .tx в криптоконфигурации и артефактах канала соответственно. Выполнив следующую команду:
./byfn.sh generate
После выполнения указанной выше команды. Он будет отражать новые файлы и папку в криптоконфигурации, как показано ниже.
После создания этих сетевых артефактов теперь переходите к другим файлам, таким как byfn.sh
и script.sh
. Мы вносим соответствующие изменения в эти файлы, чтобы позволить различным организациям присоединиться к каналу, установить цепной код, инициировать цепной код и запросить цепной код.
В utils.sh
добавить новую организацию для достижения консенсуса.
Мы вносим некоторые изменения в wrt script.sh
file, добавляя Org3 и получая запрос, чтобы получить результаты.
После внесения всех этих изменений в разные файлы конфигурации. Выполните команду:
./byfn.sh up
Он успешно выполнит код и отобразит «КОНЕЦ» в последнюю очередь. если вы не получаете это сообщение «Конец» в последний раз, это означает, что вы допустили некоторые ошибки при внесении изменений в различные файлы конфигурации.
Ура !!!! Мы успешно добавляем новую организацию (Org3) в mychannel, устанавливаем и запускаем цепной код и запрашиваем результат.
Вы можете получить весь индивидуальный код по ссылке ниже:
Получайте лучшие предложения по программному обеспечению прямо в свой почтовый ящик