machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Использование ArcBlock и Forge Framework для создания моего первого приложения!

Дата публикации Oct 3, 2019

Автор: Юнсинь Сюй

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

ArcGlock Forge Framework меняет это и делает его достаточно простым, чтобы каждый мог создать свое собственное приложение за несколько минут. Используя различные инструменты, предоставляемые Forge, разработчики могут легко создавать свои приложения блокчейна с минимальным объемом программирования. Для начала давайте разберемся, что такое Forge Framework.

Что такое Forge Framework?

Короче,Forge Frameworkили Forge - это инфраструктура разработки приложений блокчейна. Он предоставляет разработчикам самый простой способ создавать собственные блокчейны и создавать децентрализованные приложения (DApps). Forge обрабатывает базовую технологию блокчейна для разработчиков, позволяя им сосредоточиться на своих приложениях и бизнес-логике.

Forge Blockchain Application Framework

Каковы основные части кузницы?

Forge состоит из следующих двух частей: Forge Node и Forge SDK.

Узел кузницы

Узел Forge состоит из ядра Forge, механизма консенсуса и базы данных состояний. Цель Forge Node - обеспечить согласованность и неизменность данных и нормальную работу самой блокчейна.

Forge SDK

Forge SDK - это набор средств разработки программного обеспечения для разработчиков, и, поскольку каждая транзакция завершается с помощью Forge SDK, это самая важная часть для изучения. Изображение ниже объясняет основную роль каждой части и отношения между ними:

Как Forge облегчает разработку блочных приложений?

Forge предоставляет ряд инструментов для разработчиков для создания приложений на блокчейне. Прежде всего, разработчики могут использовать один из нескольких инструментов для создания и развертывания пользовательских блокчейнов, включая Forge CLI, Forge Patron и Forge Deploy. Forge CLI и Forge Patron помогают разработчикам настраивать свою рабочую среду и создавать цепочки на своих ноутбуках или устройствах для программирования и тестирования. Forge Deploy используется для развертывания цепей.

Forge SDK помогает разработчикам легко взаимодействовать с данными в цепочках, позволяя записывать данные и транзакции в цепочках, используя простую команду для завершения учета транзакций. Кроме того, Forge SDK предоставляет богатые языки программирования, такие как Python, Java, Javascript, iOS и Android, что позволяет разработчикам создавать приложения блокчейна с большой гибкостью. Поэтому разные системы могут легко взаимодействовать с блокчейном.

4 вещи, которые вы должны рассмотреть, прежде чем создавать приложение

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

Теперь давайте рассмотрим этапы создания DApp с использованием набора из четырех вопросов, которые мы должны рассмотреть, прежде чем приступить к созданию DApp. Для целей данного руководства мы собираемся создать заслуживающую доверия бухгалтерскую книгу для торгового автомата. Используя торговый автомат, мы можем исследовать идею продажи товаров и зарабатывания денег (аналогично любому сценарию электронной коммерции или обслуживания), и, поскольку все дело в зарабатывании денег, нам нужна бухгалтерская книга для отслеживания деятельности машины.

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

Вопрос 1: Зачем использовать базу данных?

Другой ключевой вопрос: почему бы не использовать традиционную базу данных? Проще говоря, это потому, что относительно легко подделать данные, хранящиеся в базе данных. Но использование блокчейна другое. По сути, блокчейн представляет собой распределенную, неизменную и прозрачную систему, которая обеспечивает недорогой способ доверия - доверие компьютера. Благодаря такому доверительному механизму технология блокчейна может обеспечить подлинность бухгалтерских книг и гарантировать, что каждая сторона может получать свою прибыль справедливо. Итак, наше решение использовать блокчейн здесь было простым.

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

Вопрос 2: цепочка против цепочки

Второй вопрос: какие части моего приложения нуждаются в блокчейне, а какие должны использовать традиционные технологии. Другими словами, какие части мы хотим включить в цепочку, а какие - нет? Поскольку то, что может делать блокчейн, относительно ограничено, мы должны использовать блокчейн для наиболее важной части, в то же время достигая других целей, используя более традиционные методы. Для моего торгового автомата DApp, поскольку мне требуется блокчейн, чтобы убедиться, что регистр является неизменным, мне нужно только хранить соответствующие данные в цепочке. Что касается того, как генерируется каждый счет и как он представляется соответствующим сторонам, они завершаются вне блокчейна.

Вопрос 3: Таможенная цепь или кросс-цепочка

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

Вопрос 4: Создать учетные записи?

И последнее, но не менее важное: нужно ли мне создавать аккаунт? В Forge Framework концепция учетной записи аналогична кошельку; он может быть инициатором или получателем всех действий в цепочке. Кстати, все действия в Forge Framework называются«сделка», Транзакция - это самая маленькая единица активности в цепочке. Что касается нашего приложения dApp, мы хотим, чтобы каждый торговый автомат мог отправлять информацию о счетах по цепочке, а затем в регистр каждой соответствующей стороны записывается эта информация. В результате мне нужно создать учетную запись кошелька для каждого торгового автомата и каждой связанной стороны.

Давайте начнем строить

Для этого урока наш DApp будет состоять из трех частей:

  • создание счетов,
  • запись счетов,
  • и представление счетов.

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

Как мы упоминали ранее, каждое действие в цепочке называется транзакцией. Создание учетной записи - это транзакция; перевод - это другой тип транзакции. Вы можете узнать больше о транзакциях здесь -https://docs.arcblock.io/forge/latest/intro/concepts.html#introduction,

Смарт Контракт

Итак, как мы определяем транзакцию? Транзакция более известна как Умный Контракт (протокол транзакции.) В Forge Framework многие общие интеллектуальные контракты, такие как создание учетной записи, передача и обмен, уже определены для удобства разработчиков. Кроме того, Forge Framework упрощает процесс создания и развертывания настраиваемого интеллектуального контракта, предоставляя шаблон для разработчиков.

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

Вот как это будет работать -

  1. Во-первых, когда торговый автомат инициирует «совокупную транзакцию», транзакция отправит информацию о товаре в цепочку, такую ​​как его название, его цена и время покупки, а также информацию о связанных сторонах, например оператор, производитель, поставщик и собственник.
  2. После того, как «совокупная транзакция» будет успешно отправлена ​​в цепочку, эта информация будет не только записана в цепочке, но и сумма прибыли от этого товара будет обновляться одновременно на каждом из счетов кошелька связанных сторон. Это мое определение «совокупной транзакции».

После подтверждения определения новой транзакции следующим шагом является программирование!

Сначала создайте собственную цепочку.

Forge CLI, инструмент, предоставляемый Forge Framework, позволяет легко создавать собственные цепочки. Узел может быть создан и запущен локально с помощью команды forge start.

Во-вторых, запрограммируйте новый умный контракт.

Чтобы заключить новый смарт-контракт, вам необходимо запрограммировать следующие четыре файла:

  • protocol.proto
    protocol.proto предназначен для определения структуры данных транзакции. Другими словами, он сообщает цепочке, как выглядит этот тип транзакции и какую информацию он включает. В Forge Framework транзакция состоит из двух уровней: (внешней) транзакции и внутренней транзакции. Для простоты внешний уровень содержит общую информацию о каждом типе транзакции, такую ​​как отправитель и время отправки, а внутренний уровень (внутренняя транзакция) содержит информацию, специфичную для каждого типа транзакции. Следовательно, protocol.proto фактически определяет структуру и содержание этого внутреннего уровня.
  • protocol.yml
    protocol.yml сообщает цепочке рабочий процесс для обработки этого нового умного контракта путем создания конвейера. По сути, узлы Forge обрабатывают каждую транзакцию в три этапа.
  • Проверьте. Когда узел Forge получает транзакцию, он сначала просматривает всю транзакцию, чтобы увидеть, есть ли какие-либо очевидные проблемы, поскольку, например, некоторые поля не заполнены.
  • Проверьте. По сравнению с проверкой это более тщательная проверка, и транзакция, которая проходит проверку, идентифицируется как полностью действительная для цепочки. Чтобы лучше понять разницу между проверкой и проверкой, просто подумайте о безопасности в аэропорту! Когда мы проходим через систему безопасности в аэропорту, нам обычно приходится проходить через две вещи: одну - проверить наш ID и посадочный талон, чтобы увидеть любые проблемы с нашей информацией, а другую - пройти сканер всего тела, чтобы обнаружить любой незаконный предмет. , Только после проверки безопасности мы можем сесть на самолеты.
  • Обновить. Последний шаг - обновить состояние всей цепочки после проверки транзакции. Forge Framework предоставляет несколько предопределенных «каналов», которые позволяют разработчикам создавать свои конвейеры так же легко, как строительные блоки. Тем не менее, разработчики могут сами программировать пользовательские каналы. Например, поскольку различные типы транзакций будут обновлять разные данные в цепочке, нам обычно нужно настроить канал для последнего шага, обновления.
  • protocol.ex
    protocol.ex предназначен для программирования наших пользовательских каналов. Его язык программирования - эликсир. Хотя Elixir может быть новым для нас, логика программы проста. Для получения дополнительной информации о том, как программировать в эликсире, пожалуйста, перейдите по ссылкам.
  • config.yml
    config.yml содержит основную информацию обо всем этом умном контракте в качестве ссылки на цепочку. Он определяет три файла, о которых мы говорили, и номер текущей версии. Каждый раз, когда мы изменяем смарт-контракт, нам нужно обновлять номер его версии. Если мы забудем обновить этот номер, когда попытаемся внедрить исправленный смарт-контракт, сеть не будет ничего обновлять для нас.

В-третьих, разверните новый умный контракт.

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

В-четвертых, протестируйте новый умный контракт.

Мы можем протестировать наши новые умные контракты в удаленной консоли Forge с помощью Elixir SDK. Elixir SDK очень прост в использовании. Но для многих разработчиков предпочтение отдается использованию Python. Давайте посмотрим, как тестировать наши новые умные контракты с использованием Python SDK в три этапа:

  • Скомпилируйте новый умный контракт. Мы можем использовать компилятор протокола буфера, предоставленный Google, для компиляции protocol.proto в файл поддержки Python.

protoc -I = $ SRC_DIR - python_out = $ DST_DIR $ SRC_DIR / protocol.proto

  • Создать учетные записи кошелька. Как я уже упоминал в последнем сообщении, кошелек является инициатором или получателем всех транзакций в цепочке. Пока мы знаем адрес кошелька другого человека, мы можем взаимодействовать с ним в цепочке. Поэтому я хочу создать учетные записи кошелька для торговых автоматов - инициатора совокупной транзакции, а для соответствующих сторон - получателей. Создание кошелька через Python-SDK можно выполнить с помощью следующих команд. Мы также можем легко проверить адрес и баланс этих кошельков.

из forge_sdk импортировать ForgeConn

f = ForgeConn (‘127.0.0.1:28210’)

rpc = f.rpc

vm = rpc.create_wallet (moniker = ’vending_machine’, кодовая фраза = ’vm1234 ')

addr = vm.wallet.address

rpc.get_account_balance (адрес)

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

itx = protos.AggregateTx (sku = sku, значение = значение, время = время, operator = op.wallet.address, производитель = ma.wallet.address, поставщик = su.wallet.address, location = lo.wallet.address)

itx2 = utils.encode_to_any (type_url = ”fg: t: aggregate”, data = itx)

rpc.send_itx (tx = itx2, кошелек = vm.wallet, токен = vm.token, nonce = 0)

rpc.is_tx_ok ( «[возвратный хеш]»)

Выше приведены этапы написания кода для программирования и развертывания нового интеллектуального контракта.

Если проблем нет, отличная работа. Цепная часть моего DApp в основном завершена.

Теперь мы можем сосредоточиться на деталях вне цепи, с которыми мы наиболее знакомы.

Развернув смарт-контракт через Forge Framework, вы увидели, что на самом деле довольно просто создать и развернуть смарт-контракт. Причина в том, что Forge Framework гарантирует, что базовая технология блокчейна работает, и значительно снижает сложность создания dApp, предоставляя нам шаблон для подражания. Следует отметить, что все подключаемо и настраиваемо, так что если вы хотите пойти дальше в Forge, вы можете. Тем не менее, для этого урока мы просто сосредоточены на том, что нужно для создания dApp.

Торговый автомат DApp оживает!

Теперь, когда мы прошли основную часть своего времени, чтобы использовать то, что мы узнали, и воплотить в жизнь ваше приложение. В качестве краткого обзора, наше приложение dApp представляет собой заслуживающую доверия бухгалтерскую книгу для торговых автоматов и разделено на три части (создание счетов, регистрация счетов и представление счетов). Вторая часть, запись счетов, находится в цепочке, и это достигается путем развертывания умного контракта, определенного пользователем. Создание счетов и представление счетов осуществляется традиционными методами.

Автономная часть моего торгового автомата DApp состоит из трех частей, и их языки программирования - python.

  • Биллинг симулятор. При первом использовании симулятор создает определенное количество кошельков для наших торговых автоматов и связанных сторон. Затем он случайным образом генерирует все данные в счете, включая информацию об изделии (название товара, цену и время покупки), а также информацию о продавце (адрес кошелька соответствующей стороны). Позже он поместил эти данные в цепочку, отправив совокупную транзакцию, которую мы развернули в прошлый раз. Симулятор завершает две части моего DApp, создание счетов и запись счетов.
  • База данных. Созданная sqlite3, база данных синхронизирует все данные транзакции в цепочке, включая значение хеш-функции, возвращаемое цепочкой после успешной отправки транзакции. Как и у всех, хэш каждой транзакции уникален. Мы можем легко проверить каждую транзакцию в цепочке через ее хеш. Эта база данных для удобства построения клиентской платформы, это третья часть моего DApp - презентация счета. Структура хранимых данных с помощью блокчейна эффективно обеспечивает аутентичность и возможность проверки данных во всех узлах, но выполнять эффективные и сложные запросы нелегко. Таким образом, для лучшего взаимодействия с пользователем, для более удобного отображения данных нам по-прежнему необходимо извлекать данные из базы данных «посредника».
  • Клиентская платформа. Эта платформа разработана существующей структурой веб-приложений, Dash. У него две основные функции, одна из которых - просмотр счета. Вы можете просмотреть бухгалтерскую книгу любой релевантной стороны, включая информацию о счете, список платежных данных, общий оборот продаж и соответствующее распределение прибыли. Вы также можете выбрать платежную информацию за определенный период времени, выбрав дату. Вторая часть - визуализация данных. Например, текущая рыночная доля всех операторов торговых автоматов на рынке торговых автоматов, их карты распределения торговых автоматов, а также продажи каждого торгового автомата и соответствующие бестселлеры. Эта информация обновляется в режиме реального времени с помощью данных о цепочке и может быть использована для анализа рыночных данных.

Три вышеприведенные части вместе с блокчейном образуют полный торговый автомат DApp.

На данный момент у вас может возникнуть вопрос. Ранее мы упоминали вопрос об использовании базы данных и блокчейна. Почему у нас есть база данных и можно ли использовать обе?

Используя Forge и технологию блокчейна, мы можем легко проверить подлинность данных, просто перейдя по цепочке для их проверки.

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

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

Итак, теперь, когда вы запустили приложение, что вы думаете? Я предполагаю, что это было легче, чем ожидалось.

Мы считаем важным отметить, что для создания и запуска dApp не требуется степень по компьютерным наукам. Что еще более важно, хотя блокчейн, возможно, по своей сути является техническим в использовании, Forge Framework позволяет легко создавать, запускать и использовать dApps практически в любом случае использования. Теперь ваша очередь придумать идею и следовать плану из этого урока. Просто знайте, что независимо от того, что мы всегда доступны, если вы нуждаетесь в нас. Просто напишите нам, и мы поможем вам встать на правильный путь.

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map