Поскольку мы знаем, что технология 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.shscript, мы добавим новую организацию в существующую сеть, а затем запустим эти файлы сценариев, чтобы они отразили изменения.

Генератор криптографии

Инструментcryptogen используется для генерации криптографического материала (сертификатов x509 и ключей подписи) для различных сетевых объектов. Cryptogen использует файл crypo-config.yaml, который содержит топологию сети и позволяет нам генерировать набор сертификатов и ключей для всех организаций и компонентов, принадлежащих этим организациям. Откройте файл crypto-config.yaml в первой сети и внесите соответствующие изменения, добавив новую организацию в конце существующей сети.

Создать сетевые артефакты

Аналогичным образом Configtxgen использует файл configtx.yaml, содержащий определения для образца сети. Всего четыре члена - одна организация-заказчик (OrdererOrg) и три одноранговых организации (Org1, Org2 и Org3), каждая из которых управляет и обслуживает два одноранговых узла. Этот файл определяет консорциум - SampleConsortium - состоящий из трех наших равноправных организаций. Обратите особое внимание на раздел «Профили» в верхней части этого файла. Вы заметите, что у нас есть два уникальных заголовка. Один для блока создания заказов ThreeOrgsOrdererGenesis и один для нашего канала ThreeOrgsChannel.

Топология Docker Compose

После выполнения этих двух шагов перейдите к docker-compose-cli.yamlfile и внесите соответствующие изменения, добавив службы для Org3.

Откройте базовую папку в первой сети и перейдите в docker-composer-base.yamlfile. Добавьте новый контейнер для двух одноранговых узлов Org3 с разными номерами портов.

docker-compose-e2e-template.yaml предназначен для выполнения сквозных тестов с использованием Node.js SDK. Помимо работы с SDK, он в основном используется для отправки вызовов REST в центры сертификации организации для регистрации и регистрации пользователей. Откройте docker-composer-e2e-templete.yaml и определите конфигурацию CA (центра сертификации).

CouchDB

Пришло время поработать над базой данных CouchDB для разных пиров. docker-compose-couch.yamlfile содержит определение хранилища для одноранговых узлов организации. Настройте базу данных для Org3, добавив новые контейнеры CouchDB.

Ага !!!! Я думаю, что много изменений было внесено в различные файлы конфигурации, теперь пришло время сгенерировать разные сертификаты, генезис-блок и канал .tx в криптоконфигурации и артефактах канала соответственно. Выполнив следующую команду:

./byfn.sh generate

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

После создания этих сетевых артефактов теперь переходите к другим файлам, таким как byfn.sh и script.sh. Мы вносим соответствующие изменения в эти файлы, чтобы позволить различным организациям присоединиться к каналу, установить цепной код, инициировать цепной код и запросить цепной код.

В utils.sh добавить новую организацию для достижения консенсуса.

Мы вносим некоторые изменения в wrt script.shfile, добавляя Org3 и получая запрос, чтобы получить результаты.

После внесения всех этих изменений в разные файлы конфигурации. Выполните команду:

./byfn.sh up 

Он успешно выполнит код и отобразит «КОНЕЦ» в последнюю очередь. если вы не получаете это сообщение «Конец» в последний раз, это означает, что вы допустили некоторые ошибки при внесении изменений в различные файлы конфигурации.

Ура !!!! Мы успешно добавляем новую организацию (Org3) в mychannel, устанавливаем и запускаем цепной код и запрашиваем результат.

Вы можете получить весь индивидуальный код по ссылке ниже:



Получайте лучшие предложения по программному обеспечению прямо в свой почтовый ящик