Автор оригинала: FreeCodeCamp Community Member.
Нихарика Сингх
Мы собираемся построить цифровой банк, используя композитор Гипелетигер. У него будут клиенты и счета. В конце этого вы сможете передать средства и записывать все транзакции на Blockchain. Мы обнаружим спокойную API для того же, так что даже человек, который не имеет подсказки, какой блокчан может сделать красивый пользовательский интерфейс (UI) вокруг него. Мы также создадим UI этого приложения в угловом угловом углу.
Я супер взволнован, чтобы поделиться этим пошаговым руководством с вами. Так что давайте начнем сразу!
Когда я сначала поднял это, я столкнулся с ошибками. Много и много них. Но я думаю, что это хорошо, потому что это заставило меня узнать много вещей. Ошибки необходимы. Я добрался до точки, где я почувствовал переключение, и выкл и выкл. Это почти заставило меня потерять голову, но это неотъемлемая часть в жизни каждого хакера.
Перед началом работы вам необходимо убедиться, что машина, которую вы используете, оснащен необходимыми конфигурациями. Вам может потребоваться скачать определенные предварительные условия и настроить базовую среду Dev. Ниже приведены ссылки для этого. Следуйте за этими шагами, прежде чем начать разработку приложения, в противном случае вы обязательно столйтесь в глупых ошибках.
Сначала установите Гипертетегер композитор Отказ Затем установите Окружающая среда развития Отказ
Нет необходимости начать игровую площадку, пока вы устанавливаете окружающую среду.
Убедитесь, что Docker работает, и когда вы запускаете ./startfabric.sh Это займет пару минут. Так что будьте терпеливы.
Теперь, когда ваша машина все настроен, мы можем начать кодировать!
Шаг 1: Описать свою бизнес-сеть
Наш определение бизнеса (BND) состоит из модели данных, логики транзакций и правил контроля доступа. Правила модели данных и контроля доступа кодируются в определенном языке домена (что очень просто догонять). Логика транзакции будет закодирована в JavaScript.
Чтобы создать BND, нам нужно создать подходящую структуру проекта на диске. Мы создадим скелетную бизнес-сеть, используя Йоман Отказ Чтобы создать структуру проекта, откройте свой терминал и запустите следующую команду:
$ yo hyperledger-composer
Это расстрелят ряд вопросов следующим образом. Вам потребуется использовать ваши клавиши со стрелками для навигации по ответам.
Откройте этот проект в вашем любимом текстовом редакторе. Я использую визуальный код. Это то, как будет выглядеть структура файла:
Удалить содержимое Test/Logic.js. Мы не будем использовать это в данный момент.
Шаг 2.1: кодирование нашей бизнес-сети (модели/test.CTO)
Во-первых, мы определим Модели/Test.CTO Отказ Он содержит определения класса для всех активов, участников и транзакций в бизнес-сети. Этот файл написан в Язык моделирования композитора гиперсидгер Отказ
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}
Учетная запись это актив, который однозначно идентифицируется с CLOSCID. Каждая учетная запись связана с Клиент Кто такой владелец отчета. Учетная запись имеет свойство Баланс что указывает на то, сколько денег удерживается в любой момент.
Клиент это участник, который однозначно идентифицируется с Пользовательский ИД. Каждый Клиент есть Имя и фамилия Отказ
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. Затем мы подтверждаем, если аккаунт, где средства имеют достаточно денег. В противном случае ошибка будет брошена. Затем мы выполняем базовое добавление и вычитание на балансе аккаунта.
На данный момент самый важный шаг – обновить это на блокчане. Чтобы сделать это, мы называем Гетассетригия API наших активов, которые являются учетной записью. Тогда мы Обновить извлеченный Ассистентность Для обоих учетных записей выравниваются средства и счет, получающий средства.
Шаг 3: Создайте бизнес-сетевой архив (BNA)
Теперь, когда деловая сеть была определена, она должна быть упакована в развертываемый архив бизнес-сетей ( .bna
) файл.
Шаг 3.1: Перейдите в приложение Test-Bank в вашем терминале.
Шаг 3.2: Запустите следующую команду:
$ composer archive create -t dir -n .
Это создает файл .bna в Тестовый банк папка.
Шаг 4: Разверните файл архива бизнес-сетей на ткани
Шаг 4.1: Установить композитор Runtime
$ composer runtime install --card PeerAdmin@hlfv1 --businessNetworkName test-bank
Шаг 4.2: Развернуть бизнес-сеть
$ composer network start --card PeerAdmin@hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw --archiveFile test-bank@0.0.1.bna --file networkadmin.card
(Убедитесь, что вы находитесь в папке Test-Bank).
Шаг 4.3: Импортируйте идентичность администратора сети как пригодную для использования бизнес-сетевой карты
$ composer card import --file networkadmin.card
Шаг 4.4: Чтобы проверить, что бизнес-сеть успешно развернута, Запустите следующую команду для Ping в сети:
$ composer network ping --card admin@test-bank
Шаг 5: раскрыть спокойную API
Чтобы создать reзов API из вашей командной строки, запустите следующую команду:
$ composer-rest-server
Это снимает много вопросов.
Теперь укажите браузер на http://localhost: 3000/Explorer.
Вы увидите ваш красивый API BlockChain.
Теперь давайте добавим два клиента.
Кулак, давайте добавим клиента по имени Нихарика Сингх:
Мы получаем 200 ответов.
Теперь мы добавим клиента по имени Tvesha Singh аналогичным образом.
Чтобы проверить, добавив ли вы их правильно, получите их.
Вы увидите двух клиентов в телу ответа.
Теперь давайте добавим 2 аккаунта, связанные с этими двумя клиентами.
Добавьте учетные записи таким образом. Теперь заставьте их проверить, добавляете ли вы их правильно.
Теперь давайте передадим 75 от Niharika в TVESHA.
Давайте проверим, обновляется ли баланс путем получения информации о учетной записи.
Виола! Оно работает. Niharika имеет 25 сейчас, а Tvesha имеет 125.
Шаг 6: угловой передний конец
Чтобы создать угловые леса автоматически, выполните следующую команду в папке Test-Bank:
$ yo
Это спросит несколько вопросов.
И это займет пару минут.
Перейдите к банковское приложение.
$ npm start
Это запускает угловой сервер.
Угловая структура файлов создана следующим образом:
Укажите свой браузер на http://localhost: 4200. Вот где происходит магия! Вы увидите этот экран:
Теперь иди к Активы В верхнем правом углу нажмите на Учетная запись Отказ
Это точные счета, которые мы создали.
Так что теперь вы можете играть с этим.
У вас есть ваш передний конец и ваша бэкэнда готова!
Все транзакции, которые случаются на localhost: 3000, отражены на localhost: 4200 и наоборот. И это все на блокчане.
Недавно я написал статью о случаях использования BlockChain. Я перечислял и объяснил около 20 идей. Их можно найти здесь:
Как Индия может быть заблокирована? Егока-блокчан только началась и, как и любые другие технологии, Blockchain также поразит пару дорожных блоков … Medium.com.