Как создать приложение на блокчейне с помощью Hyperledger

1656671780 kak sozdat prilozhenie na blokchejne s pomoshhyu hyperledger

Нихарика Сингх

PxeWV6Lrsvga2A-1V7ThzqsYCPqWq6zpxHda
Фото Саши на Unsplash

Мы собираемся создать цифровой банк с помощью Hyperledger Composer. У него будут клиенты и счета. После этого вы сможете переводить деньги и записывать все транзакции в блокчейн. Мы представим RESTful API для того же, чтобы даже человек, не имеющий представления о том, что такое блокчейн, мог создать хороший пользовательский интерфейс (UI) вокруг него. Мы также создадим интерфейс этой программы в Angular.

Я очень рад поделиться с вами этим пошаговым пособием. Так что начнем немедленно!

IMGn4dzREfDI32HrLkU-JSGA1b-NQVlOC3QG
Источник: https://giphy.com/explore/excited

Когда я впервые кодировал это, я столкнулся с ошибками. Их очень много. Но я думаю, что это хорошо, потому что это заставило меня многому научиться. Ошибки существенны. Я дошел до точки, когда я почувствовал, что его включение и выключение улучшит ситуацию. Это чуть не заставило меня сойти с ума, но это неотъемлемая часть жизни каждого хакера.

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

Сначала установите композитор Hyperledger. Затем установите среду разработки.

Нет необходимости запускать Playground при установке среды.

Убедитесь, что докер работает, и когда вы запускаете ./startFabric.sh это займет несколько минут. Поэтому наберитесь терпения.

Теперь когда ваша машина настроена, мы можем начать кодировать!

ISfnV6NFxgNcFao2U2fWY-gH3ND8qjxpp4lY
Источник: http://www.forthebrokenhearted.net/170254395/4208888/posting/

Шаг 1: очертите свою бизнес-сеть

Наше определение бизнес-сети (BND) состоит из модели данных, логики транзакций и правил контроля доступа. Модель данных и правила контроля доступа закодированы на языке, касающемся домена (который очень легко догнать). Логика транзакций будет закодирована в JavaScript.

Для создания BND нам нужно создать соответствующую структуру проекта на диске. Мы создадим скелетную бизнес-сеть, используя Йомен. Чтобы создать структуру проекта, откройте терминал и выполните следующую команду:

$ yo hyperledger-composer

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

CF0D-XmKKlo4bmAyumr3l91W90T1o1SIHTko

Откройте этот проект в вашем любимом текстовом редакторе. Я использую Visual Code. Вот так будет выглядеть структура файла:

6xQNYHOyB8gCc0qNY7dJTjNEZToXeAdLQlsa

Удалите содержимое test/logic.js. Мы не будем использовать его сейчас.

Шаг 2.1: кодирование нашей бизнес-сети (models/test.cto)

Сначала определимся models/test.cto. Он содержит определения классов для всех активов, участников и транзакций в бизнес-сети. Этот файл написан на языке Hyperledger Composer.

namespace test
asset Account identified by accountId {o String accountId--> Customer ownero Double balance}
participant Customer identified by customerId {o String customerIdo String firstNameo String lastName}
transaction AccountTransfer {--> Account from--> Account too Double amount}

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

Заказчик является участником, однозначно идентифицированным customerId. Каждый Заказчик имеет имя и фамилия.

AccountTransfer это транзакция, которая может состояться к и от ан Учетная запись. И сколько денег нужно перевести, хранится в сумма.

Шаг 2.2: кодирование бизнес-сети (lib/logic.js)

В этот файл мы добавим логику транзакций JavaScript.

/*** Sample transaction* @param {test.AccountTransfer} accountTransfer* @transaction*/
function accountTransfer(accountTransfer) {if (accountTransfer.from.balance < accountTransfer.to.balance) {throw new Error ("Insufficient funds");}
accountTransfer.from.balance -= accountTransfer.amount;accountTransfer.to.balance += accountTransfer.amount;
return getAssetRegistry('test.Account').then (function (assetRegistry) {return assetRegistry.update(accountTransfer.from);}).then (function () {return getAssetRegistry('test.Account');}).then(function (assetRegistry) {return assetRegistry.update(accountTransfer.to);});
}

@param {test.AccountTransfer} accountTransfer это декоратор, который мы размещаем в верхней части файла, чтобы связать транзакцию с нашей функцией JavaScript. Затем проверяем, достаточно ли средств на счете. В противном случае будет выдана ошибка. Далее мы выполняем элементарное сложение и вычитание по остатку на счете.

На данный момент важнейшим шагом является обновление этого в блокчейне. Для этого звоним getAssetRegistry API наших активов, которым является аккаунт. Тогда мы обновление полученное assetRegistry как для аккаунта, который выдает средства, так и для аккаунта, который получает средства.

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

Теперь, когда определена бизнес-сеть, ее нужно упаковать в архив бизнес-сети, который можно разворачивать (.bna) файл.

Шаг 3.1. Выделите программу тестового банка на терминале.

Шаг 3.2. Выполните следующую команду:

$ composer archive create -t dir -n .

Это создает файл .bna в тест-банк папку.

B3DUtkud4azEoCEoiIKV4PupBCxIPY4XOjLn

Шаг 4. Разверните файл архива бизнес-сети на Fabric

Шаг 4.1. Установите среду выполнения Composer

$ composer runtime install --card PeerAdmin@hlfv1 --businessNetworkName test-bank
HezXfxt3FVVtnHDfFkPVd6aghaKngGxrQBrF

Шаг 4.2: Разверните бизнес-сеть

$ composer network start --card PeerAdmin@hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw --archiveFile test-bank@0.0.1.bna --file networkadmin.card

(Убедитесь, что вы находитесь в папке test-bank).

LSkNP7nxN4tUcY3Dy01M22S6CivgkYLUJL4T

Шаг 4.3. Импортируйте идентификатор администратора сети как подходящую для использования сетевую бизнес-карту

$ composer card import --file networkadmin.card
keh-Fx-k7zKaN11RaG6LPsedpFTmpfyAF6cC

Шаг 4.4: Чтобы проверить, успешно ли развернута бизнес-сеть, выполните такую ​​команду, чтобы проверить сеть:

$ composer network ping --card admin@test-bank
VnU45AuKe6eCuQ82kr9AqTIJqNaeDMZJ-OKM

ШАГ 5. Откройте RESTful API

Чтобы создать RESTful API из командной строки, выполните следующую команду:

$ composer-rest-server

Это вызовет множество вопросов.

0hTic2-uVL1dhxlNfTYlfo9lBdW3lbDr4HEJ

Теперь наведите свой браузер на http://localhost:3000/explorer.

Вы увидите свой великолепный API блокчейн.

rUfk5ZJuROhQ5ipcqDPXAQ-5LLtIRxYQvyQk

Теперь давайте добавим двух клиентов.

Во-первых, давайте добавим клиента по имени Нихарика Сингх:

r9u1KOBTHhA1x5LOelLkurSaFwFaKYS0rVO0

Получаем код ответа 200.

Теперь мы подобным образом добавим клиента по имени Твеша Сингх.

Чтобы проверить, правильно ли вы их добавили, ПОЛУЧИТЕ их.

v97WNZggvnZFaiYxpWW-pODw2v2D0g7qiWuJ

В теле ответа вы увидите двух клиентов.

Теперь давайте добавим 2 учетные записи, связанные с двумя клиентами.

GeZJHVxzha7X3ao72H43wwSgQeSsbcxP2m8w

Добавьте аккаунты следующим образом. А теперь НУЖНО их проверить, правильно ли вы их добавили.

ByunFMXCKUkDkrZw6QuulazjTZgzRzEry3WD

Теперь перенесем 75 от Нихарики в Твешу.

F99wtlbUc8DVEvRgLOt8XWzMebf5wlbERYНет

Давайте проверим, обновляется ли баланс, получив информацию об учетной записи.

EWgbqrF7UtcVQfIRfOPatTdv40TgIYqVHyYg

Виола! Это работает. Сейчас у Нихарики 25, а у Твеши – 125.

Шаг 6: угловой передний конец

Чтобы автоматически создать леса Angular, выполните следующую команду в папке test-bank:

$ yo

Это задаст несколько вопросов.

vyKb0G94DpcK4yExEBWdhTTJMb6Qav1g3hqW

И это займет несколько минут.

Перейдите к банк-приложение.

$ npm start

Это запускает сервер Angular.

vCj4O1jxyOR3dEhonZekK-5l1PEVlcRmTMts

Файловая структура Angular создается следующим образом:

65mXKzp9zqtW-lXFUb3jC7ne9jV7QtIfwPQg

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

hwqSianiBbujtAhMPwTirT0Le9Sb6wMJ9M1s

Теперь перейдите к Активы в правом верхнем углу и нажмите Учетная запись.

PuPBiymiOk9Bbyxx90z8WWUPHS9twirN3luf

Это именно те аккаунты, которые мы создали.

Теперь вы можете поиграть с этим.

У вас готовый интерфейс и сервер!

Все транзакции, происходящие на localhost:3000, отображаются на localhost:4200 и наоборот. И все это на блокчейне.

8JLTo8tOyOiLLXdTsxO6KjAD7Vl7befHeWZo
Источник: https://giphy.com/explore/thats-how-its-done

Недавно я написал статью о случаях использования блокчейна. Я перечислил и объяснил около 20 идей. Их можно найти здесь:

Как Индия может получить блокчейн?
Эпоха блокчейна только началась, и, как и любая другая технология, блокчейн также столкнется с несколькими препятствиями.medium.com

Если у вас есть бизнес-идея и вы хотите конкретизировать ее с помощью технологий и архитектурных деталей, не стесняйтесь связаться со мной по адресу niharika.3297@gmail.com

Добавить комментарий

Ваш адрес email не будет опубликован.