Рубрики
Без рубрики

Как построить сеть блокчан с использованием гипертеповой ткани и композитора

Haardik Как построить сеть Blockchain, используя гипертедегерную ткань и учебник Composera для нового Blockchain DeveloperPhoto от Alexandru Acea на Unsplashbe, прежде чем я начинаю, гиперсинальная ткань работает только на операционных системах на основе Unix. В результате он не сможет работать на Windows, и у вас будут ограничения

Автор оригинала: FreeCodeCamp Community Member.

Haardik

Учебник для новых разработчиков Blockchain

Прежде чем начать, гипертедегерная ткань Только Запускается на операционных системах на основе UNIX. В результате он не сможет работать на Windows, и у вас будут ограничения на то, что вы можете сделать. Я предлагаю создать виртуальную машину, если вы используете окна, прежде чем продолжить.

Эта статья предполагает некоторые знания JavaScript. Это не учебное пособие, предназначенное для начинающих программистов, а скорее в программистах, которые являются новичками в пространстве Blockchain.

Что мы строим?

Итак, вы хотите построить приложение Blockchain, но понятия не имею, с чего начать? Не волнуйся. Через это руководство мы создадим сеть торговых карт. Разные Трейдер с кто владеет TradingCard С игроками бейсбола, футбола и крикета, смогут торговать карты между собой.

Мы также настроим сервер API-API для отдыха, чтобы позволить программному обеспечению для клиента взаимодействовать с нашей бизнес-сетью. Наконец, мы также будем генерировать угловое 4 приложения, которое использует API для отдыха в интерфейс с нашей сетью.

Вы можете найти полный окончательный код того, что мы собираемся построить на этом Github repo.

Вы готовы начать?

Оглавление

  • Введение в ткань гипертепов и связанных с ними приложениями
  • Установка предварительных условий, инструментов и среда выполнения ткани
  • Создание и развертывание нашей бизнес-сети
  • Тестирование нашей бизнес-сети
  • Создание сервера API отдыха
  • Создание углового приложения, которое использует API для отдыха

Введение в ткань гипертепов и связанных с ними приложениями

Гипертетегерная ткань является основой с открытым исходным кодом для создания частных (разрешенных) блокчанских бизнес-сетей, где тождества и роли членов известны другим членам. Сеть, построенная на ткани, служит задней частью, с внешним концом на стороне клиента. SDK доступны для NODEJS и Java для создания клиентских приложений, с помощью поддержки Python и Golang.

Гипертетегер композитор это набор инструментов и сценариев на основе JavaScript, которые упрощают создание сетей Tabriced Hyponedger. Используя эти инструменты, мы можем генерировать Бизнес сетевой архив (BNA) для нашей сети. Композитор широко покрывает эти компоненты:

  • Бизнес сетевой архив (BNA)
  • Композиторная площадка
  • Композитор для отдыха сервера

Бизнес сеть архив – Composer позволяет нам упаковать несколько разных файлов и генерировать архив, который затем может быть развернут в сеть ткани. Чтобы генерировать этот архив, нам нужно:

  • Сетевая модель – определение ресурсов, присутствующих в сети. Эти ресурсы включают активы, участники и транзакции. Мы вернемся к этим позже.
  • Бизнес логика – Логика для функций транзакции
  • Ограничения контроля доступа – Содержит различные правила, которые определяют права различных участников сети. Это включает в себя, но не ограничивается, определяя то, что активы могут контролировать участники.
  • Файл запроса (необязательно) – Набор запросов, которые могут быть запущены в сети. Это можно рассматривать как одинаково для SQL-запросов. Вы можете прочитать больше по запросам здесь Отказ

Композиторная площадка это веб-интерфейс пользователя, который мы можем использовать для моделирования и тестирования нашей бизнес-сети. Детская площадка хороша для моделирования простых доказательств концепции, поскольку он использует локальное хранилище браузера для имитации сети Blockchain. Однако, если мы запустим локальную среду выполнения ткани и развернули к ней сеть, мы также можем получить доступ к использованию игрной площадки. В этом случае игровая площадка не моделирует сеть, она передается с местным временем выполнения ткани.

Композиторный сервер отдыха Это инструмент, который позволяет нам генерировать сервер API для отдыха на основе определения нашего бизнеса. Это API может использоваться клиентскими приложениями и позволяет нам интегрировать неблеркочатые приложения в сети.

Установка предварительных условий, инструментов и среда выполнения ткани

1. Установка преесов

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

  • Docker Engine и Docker Compose
  • Nodejs и NPM
  • Портить
  • Python 2.7.x.

Для пользователей Ubuntu Hyperledger имеет сценарий Bash, который может сделать этот процесс чрезвычайно проще. Запустите следующие команды в вашем терминале:

К сожалению, пользователи Mac должны вручную устанавливать вышеупомянутые инструменты и убедиться, что у них есть все необходимые предпосылки в их системе. Эта страница Содержит в курсе инструкций по установке.

2. Установка инструментов для облегчения развития

Запустите следующие команды в своем терминале и убедитесь, что вы Не Используя Sudo при запуске команд NPM.

Composer-Cli это единственный важный пакет. Остальные не являются основными компонентами, но окажутся чрезвычайно полезными со временем. Мы узнаем больше о том, что каждый из них, как мы сталкиваемся с ними.

3. Установка локальной гипертелевой ткани выполнения ткани

Давайте пройдемся через команды и посмотрим, что они имеют в виду. Во-первых, мы делаем и вхожу в новый каталог. Затем мы загружаем и извлекаем инструменты, необходимые для установки гиперсидгерной ткани.

Затем указываем версию ткани, которую мы хотим, на момент написания нам нужна 1.2, следовательно, HLFV12 Отказ Затем мы загружаем время выполнения ткани и запустите его.

Наконец, мы генерируем Peeradmin карта. Участники тканевой сети могут иметь бизнес-сетевые карты, аналогичные визитные карточки реальной жизни. Как мы упоминали ранее, ткань представляет собой базовый слой для частных блок-ног, чтобы построить. Держатель визитной карточки Peeradmin имеет полномочия для развертывания, удаления и управления бизнес-сетянами на этой среде выполнения ткани (AKA You!)

Если все прошло хорошо, вы должны увидеть, как это:

Кроме того, если вы введите Ls Вы увидите это:

В основном то, что мы здесь сделали, была просто скачать и начать локальную сеть ткани. Мы можем остановиться, используя ./stopfabric.sh Если мы хотим. В конце нашей сессии в разработке мы должны работать ./teardownfabric.sh.

Примечание: Это местное время выполнения – предназначена для часто начата, остановлена и порвала Для развития использования. Для времени выполнения с более стойким состоянием вы захотите развернуть сеть за пределами среды Dev. Вы можете сделать это, запустив сеть на Kubernetes или на управляемых платформах, таких как IBM BlockChain. Тем не менее, вы должны сначала пройти этот учебник, чтобы получить идею.

Создание и развертывание нашей бизнес-сети

Помните пакеты Йо и Генератор-гипертепгер-композитор Мы установили ранее?

Йо Предоставляет нам генераторную экосистему, где генераторы являются плагинами, которые могут быть запущены с командой YO. Это используется для настройки приложений для образца котлов для различных проектов. Генератор-гипертепгер-композитор Является ли генератор YO, который мы будем использовать, так как он содержит спецификации для создания бойных бизнес-сетей среди прочего.

1. Создание бизнес-сети

Откройте терминал в каталоге выбора и типа YO Гипертетегер-композитор

Вам встретятся с чем-то похожим на вышеупомянутое. Выберите Бизнес-сеть и назвать это Открытки-торговые сети как показано ниже:

2. Моделирование нашей бизнес-сети

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

  • Ресурсы
  • Участники
  • Транзакции
  • События

Для нашего Открытки-торговые сети Мы определим тип актива TradingCard , тип участника Трейдер транзакция TradeCard и событие Треденотизация Отказ

Продолжайте и откройте сгенерированные файлы в редакторе кода выбора. Откройте org.example.bizNet.CTO Какой файл моделирования. Удалите весь код, присутствующий в нем, как мы собираемся переписать его (за исключением декларации пространства имен).

Это содержит спецификацию для нашего актива TradingCard Отказ Все активы и участники должны иметь уникальный идентификатор для них, которые мы указываем в коде, и в нашем случае это кардайд

Кроме того, у нашего актива есть Gametype CardType Свойство, которое основано на перечислении, определенном ниже. Enums используются для указания типа, который может иметь до n возможных значений, но ничего другого. В нашем примере нет TradingCard может иметь CardType кроме Бейсбол , Футбол или Крикет

Теперь указать наши Трейдер Тип ресурса участника, добавьте следующий код в файле моделирования

Это относительно проще и довольно легко понять. У нас есть тип участника Трейдер И они однозначно идентифицируются своим Traderid с.

Теперь нам нужно добавить ссылку на нашу TradingCard Чтобы иметь ссылку, указываю на своего владельца, поэтому мы знаем, кто принадлежит карту. Чтобы сделать это, добавьте следующую строку внутри вашего TradingCard актив:

-> Трейдер Оу господин

Так что код выглядит так:

Это первый раз, когда мы использовали - & GT; И вам должно быть интересно, что это такое. Это отношение Pointe R Отказ o ND -> Как мы различаемся между собственными свойствами ресурса против отношения к другому типу ресурса. С владельца это Трейдер, который является участником сети, мы хотим ссылку на что Торговец напрямую, и это именно Wh AT -> делает.

Наконец, продолжайте и добавьте этот код в файле моделирования, который указывает, какие параметры потребуются, чтобы сделать транзакцию и излучение события.

3. Добавление логики для нашей транзакции

Чтобы добавить логику за TradeCard Функция, нам нужен логический файл JavaScript. Создать новый каталог с именем lib В папке вашего проекта и создайте новый файл с именем logic.js со следующим кодом:

Примечание: Декоратор в комментариях выше функции очень важен. Без @param {org.example.biznet.tradingcard} Trade Функция не имеет представления, которую Транзакция Код относится к языку моделирования. Кроме того, убедитесь, что имя параметра передается (то есть Trade ) - это тот, который вы передаете в определении функции сразу после.

Этот код в основном проверяет, имеет ли указанную карту Fortrade и обновляет владельца карты в этом случае. Тогда он уволяет Треденотизация событие для этой карты.

4. Определение разрешений и правил доступа

Добавить новое правило в Permissions.acl дать участникам доступа к своим ресурсам. В производстве вы хотели бы быть более строгими с этими правилами доступа. Вы можете прочитать больше о них здесь Отказ

5. Создание архива бизнес-сетей (BNA)

Теперь, когда все кодирование сделано, пришло время сделать файл архива для нашей бизнес-сети, поэтому мы можем развернуть его на нашем местном выполнении ткани. Чтобы сделать это, откройте терминал в вашем каталоге проекта и введите это:

Архив композитора Создать –sourcetype dir –sourcename.

Эта команда говорит Hyperledger Composer, который мы хотим построить BNA из каталога, который является нашей текущей корневой папкой.

Примечание: Имя и версия BNA приходят из Package.json файл. Когда вы добавите больше кода, вы должны изменить номер версии там, чтобы развернуть уникальные архивы, способные модернизировать существующие бизнес-сети.

6. Установите и разверните файл BNA

Мы можем установить и развернуть сеть в нашу локальную среду выполнения ткани, используя Peeradmin Пользователь. Чтобы установить бизнес-сеть, введите

Композиторная сеть Установка –archiveFile Cards-trading-Network @ 0.0.1.bna –card peeradmin @ hlfv1

Развернуть бизнес-сеть, введите

Композитор Network Start –NetworkName Карты-Торговые сети –Networkversion 0.0.1 –NetworkAdmin admin adminworkadminenrollsecret adminpww.com –card peeradmin @ hlfv1 – file cards-trading-admin.card

NetworkName и NetworkVersion должен быть таким же, как указано в вашем Package.json В противном случае это не будет работать.

--file Занимает имя файла, который будет создан для визитной карточки этой сети. Эта карта, затем должна быть импортирована для использования, набрав

Composer Card Import – File Cards-Trading-admin.Card

Удивительный. Теперь мы можем подтвердить, что наша сеть работает и работает, набрав

Композитор Network Ping –card admin @ cards-trading-network

--card На этот раз принимает администратор карты сети, которую мы хотим пинг.

Если все прошло хорошо, вы должны увидеть что-то похожее на это:

Тестирование нашей бизнес-сети

Теперь, когда наша сеть работает и работает на ткани, мы можем запустить игровую площадку композиторов, чтобы взаимодействовать с ней. Чтобы сделать это, введите Композитор-детская площадка в терминале и открыть http://localhost: 8080/ В вашем браузере, и вы должны увидеть что-то похожее на это:

Нажмите Connect теперь для admin @ карты-торговые сети И вы будете встретить этот экран:

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

Перейти к Тест Страница из верхнего меню, и вы увидите это:

Выберите Трейдер От участников, нажмите на Создать новый участник Рядом с верхом и сделайте новый Трейдер Подобно этому:

Идти вперед и сделать пару больше Трейдер с. Вот как мои три трейдера выглядят с именами Хаардиком, Джоном и Тироном.

Теперь давайте сделаем некоторые активы. Нажмите на TradingCard Из левого меню и нажмите Создать новый актив Отказ Обратите внимание, как владелец Поле особенно интересно здесь, глядя что-то подобное:

Это отношения. Это то, что - & GT; средства. Мы указываем точный тип ресурса, за которым следует их уникальный идентификатор и вуаля, у нас есть указатель отношений.

Идти вперед и закончить делать TradingCard что-то похожее на это:

Обратите внимание, как владелец Поля указывает на Трейдер № 1 ака Haardik для меня. Продолжай и сделайте еще пару карт и включите пару, чтобы иметь Fortrade установить правду.

Обратите внимание, как мой Карта # 2 есть Fortrade ?

Теперь для веселых вещей, давайте попробуем торговые карточки: D

Нажмите на Отправить транзакцию Слева и сделай карта указать на TradingCard # 2 и Newowner указать на Трейдер № 3 как это:

Нажмите Отправить и посмотрите на свой TradingCard S, вы увидите, что Карта # 2 Теперь есть владелец Трейдер № 3 : D.

Создание сервера API отдыха

Делать сделки с детской площадкой – это хорошая, но не оптимальная. Мы должны сделать программное обеспечение для клиентов для пользователей, чтобы пользователи предоставить им беспроблемный опыт, даже не обязательно знать о базовой технологии Blockchain. Для этого нам нужен лучший способ взаимодействия с нашей бизнес-сетью. К счастью, у нас есть Composer-Rest-Server Модуль, чтобы помочь нам только с этим.

Тип Composer-Rest-Server В вашем терминале укажите admin @ карты-торговые сети , выберите Никогда не используйте пространства имен и продолжайте с параметрами по умолчанию для отдыха следующим образом:

Открыть http://localhost: 3000/Explorer/ И вы будете встретить документированную версию автоматически сгенерированного API для отдыха: D

Создание углового приложения, которое использует API для отдыха

Помните Йо Гипердотегер-композитор генератор? Это может сделать больше, чем создавать бизнес-сеть. Он также может создать угловую 4 приложения, работающего против API для отдыха, которые мы создали выше.

Чтобы создать угловое веб-приложение, введите Йо Гипердотегер-композитор В вашем терминале выберите угловой, выберите, чтобы подключиться к существующей бизнес-сети с картой admin @ карты-торговые сети и подключите к существующему API отдыха. ( Редактировать: Новые версии программного обеспечения могут просить файл карты вместо имени карты)

Это продолжит работу NPM установить , дайте ему минуту, и как только все сделано, вы сможете загрузить http://localhost: 4200/ И приветствовать страницу, аналогичную этому: Редактировать: Новые версии программного обеспечения могут потребовать, чтобы вы запустили NPM установить Сам а потом беги Начнем NPM

Теперь вы можете играть с вашей сетью из этого приложения напрямую, что связывается с сетью через сервер отдыха, работающего на порту 3000.

Поздравляю! Вы только что настроили свой первый бизнес-сеть Blockchain, используя гипертедегерную ткань и композитор гипелетеровщика: D

Вы можете добавить больше функций для торговой сети карты, установленные цены на карты и предоставление баланса всем Трейдер Отказ У вас также могут быть больше транзакций, которые позволяют Трейдер с переключением стоимости Fortrade Отказ Вы можете интегрировать это с Nonblicchain приложениями и позвольте пользователям покупать новые карты, которые добавляются к их учетной записи, которую они могут затем в дальнейшей торговле в сети.

Возможности бесконечны, что вы сделаете из них? Дайте мне знать в комментариях: D

Известен ошибка: ваше угловое веб-приложение неправильно обрабатывает транзакции?

На момент написания, угловой генератор имеет проблему, в которой кнопка «Пурпур» на странице «Транзакции» ничего не делает. Чтобы исправить это, нам нужно сделать несколько изменений в сгенерированном угловом приложении.

1. Получить модаль, чтобы открыть при нажатии кнопки

Первое изменение, которое нам нужно сделать, есть кнопка открыть модальное окно. Код уже содержит требуемое модальное окно, кнопка просто отсутствует (нажмите) и Цель данных атрибуты.

Разрешить это, откройте /Cards-Trading-Angular-App/Src/App/ TRADECARD/TRADECARD.COMPONENT.HTML.

Имя файла может варьироваться в зависимости от вашего транзакция название. Если у вас есть несколько транзакция S В вашей бизнес-сети вам придется выполнить это изменение всех файлов HTML-файлов типа транзакции.

Прокрутите вниз до самого конца, и вы увидите <Прицвета на> тег. Продолжайте и добавьте эти два атрибута к этому тегу:

(Нажмите) = “ruseform ();”

Так что линия выглядит так:

<кнопка> вызвать < ;/кнопка>

(нажмите) атрибут звонки Сброс форма(); которые устанавливают все поля ввода для пустых, а Цель данных Определяет модальное окно, которое будет открыто.

Сохраните файл, откройте браузер и попробуйте нажать кнопку Invoke. Это должно открыть этот модаль:

2. Удаление ненужных полей

Просто чтобы получить модал открыть недостаточно. Мы можем видеть его запросы трансзариемый и Timestamp У нас, хотя мы не добавляли эти поля в нашем моделирующем файле. Наша сеть хранит эти значения, которые являются неотъемлемой частью всех транзакций. Таким образом, он должен быть в состоянии выяснить эти значения на своих собственных. И как оказывается, это на самом деле делает. Это запасные поля, и мы можем просто комментировать их, остальные API справится с нами.

В том же файле прокрутите вверх, чтобы найти поля ввода и прокомментировать Divs, ответственные за эти поля ввода внутри AddtransactionModal.

Сохраните свой файл, откройте свой браузер и нажмите вызов. Вы должны увидеть это:

Теперь вы можете создавать транзакции здесь, передавая данные в этих полях. С карта и Newowner являются отношениями к другим ресурсам, мы можем сделать такую транзакцию:

Нажмите Подтвердите Вернитесь к Активы Страница, и вы увидите, что TradingCard # 2 теперь принадлежит Трейдер № 1 :

Поздравляю! Вы успешно построили и развернули бизнес-сеть BlockChain на гипертедовой ткани. Вы также создали сервер REST API для этой сети и узнали, как сделать веб-приложения, которые взаимодействуют с этим API.

Если у вас есть какие-либо вопросы или сомнения, бросьте его в комментарии, и я вернусь к вам. Электронная почта: hhaardik@uaterloo.ca LinkedIn: https://www.linkedin.com/in/haardikkk.