Окончательный учебник Corda 2021

Хотите стать экспертом по Corda? Следующее руководство по Corda расскажет обо всем, что вам нужно знать о разработке приложения Corda..

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

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

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

Давайте начнем с нашего учебника по блокчейну Corda.!

Скоро будет: Руководство для начинающих по курсу разработки Corda

Как структурировано руководство по разработке Corda?

Мы подробно рассмотрим Corda. В большинстве разделов мы постараемся охватить важные концепции Corda..

Ключевые концепции, которые мы рассмотрим, включают следующие.

  • Состояние
  • Договор
  • Секции потока

Наше руководство создаст приложение IOU. IOU означает «Я должен тебе». Это простая демонстрация того факта, что один человек владеет деньгами другого человека. Мы рассмотрим концепцию более подробно позже..

Чтобы упростить задачу, мы будем использовать язык программирования Kotlin. Как учащийся, было бы здорово, если бы вы знали Kotlin, но это не обязательный навык, чтобы следовать руководству..

Инструменты

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

  • Котлин
  • Gradle
  • Git
  • IntelliJ
  • Командная строка

Что касается интегрированной среды разработки, мы собираемся использовать IntelliJ. Это упростит нашу разработку.


Учебник Corda

Что такое Корда?

Блокчейн Corda лучше всего определить как открытый исходный код, который решает бизнес-проблемы, предоставляя функционально совместимую сеть блокчейнов. Его ключевые особенности включают строгую конфиденциальность, эффективность и прямые транзакции с использованием технологии смарт-контрактов..

Смарт-контракты, используемые в Corda, могут быть написаны с использованием языков JVM или Java. Приложения на платформе Corda известны как CorDapps. Также они предлагают сеть одноранговых узлов с возможностью использования нотариальной инфраструктуры. Инфраструктура используется для проверки и упорядочивания транзакций без необходимости рассылки деталей транзакции каждому одноранговому узлу в сети..

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

Понимание Corda Ledger

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

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

Обнаружение узлов

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

Как это работает?

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

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

состояния

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

Звучит технически? Попробуем объяснить это более простыми словами.

Общие факты

Возьмем, к примеру, двух человек, использующих бухгалтерскую книгу Corda. Назовем их Альфа и Браво.

У них обоих есть общий факт. Общий факт – это долговая расписка (Я владею тобой). Долговая расписка используется, когда у кредитора есть деньги, причитающиеся поставщику ссуды. Чтобы сделать этот факт общедоступным, у них обоих есть одна и та же общая информация, представленная в долговых расписках..

Представлять что угодно

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

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

Неизменяемый и развивающийся

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

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

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

  1. Первое состояние создается, чтобы продемонстрировать, что Alpha в долгу перед Bravo. В нем также содержится дополнительная информация о IoU, включая дату, время, процентную ставку, сумму ссуды и другую полезную информацию, необходимую для IoU..
  2. Теперь, когда Alpha разрешает задолженность, создается новое состояние, обновляющее новую информацию. Старое состояние никоим образом не трогается, так как оно неизменяемо.
  3. Новое состояние теперь обновляется в общих фактах между двумя пользователями..
  4. Сейчас старое состояние называют историческим. В одной транзакции может быть несколько исторических состояний. Это может привести к созданию последовательности состояний.
  5. Создается заголовок последовательности, который относится к последнему состоянию. Кроме того, последние состояния также называются неиспользованными..

Прочитайте больше: Hyperledger vs Corda vs Ethereum Руководство по сравнению

Подготовка среды разработки

Теперь, согласно руководству по разработке dApp, среда должна быть готова для учебника по разработке Corda. Для начала вам понадобятся следующие инструменты.

  • Oracle JDK 8 JVM – v8u171 или выше.
  • Git
  • IntelliJ IDEA

Клонирование репозитория Git

Лучший способ начать наше путешествие – запустить пример CorDapp в нашей среде разработки. Хорошей новостью является то, что Corda предлагает пример CorDapp, который вы можете загрузить и запустить локально..

Вы можете клонировать репозиторий локально, используя команду git clone, как показано ниже..

git clone http://github.com/roger3cev/corda-training-template.git

В этом руководстве мы собираемся использовать IntelliJ для импорта репозитория git. Откройте IntelliJ. После этого вы увидите возможность выписки из системы контроля версий. Щелкните по нему и затем клонируйте репозиторий на свой компьютер..

Вы можете сохранить проект; вы найдете репозиторий проекта, как показано ниже.

В правом нижнем углу вы найдете уведомление о том, что импортируйте Gradle Project, как показано ниже. Важно, чтобы наш учебник Corda работал.

Щелкните «Импортировать проект Gradle».

Вам также необходимо настроить Project SDK. Зайдите в настройки проекта и затем выберите последнюю версию Java. В моем случае это было Java 11.0.5.

Если вы обнаружите какую-либо ошибку для запуска, вам следует обновить Gradle и позволить ему импортировать необходимые репозитории, чтобы он работал. Это займет некоторое время. Итак, отойдите на задний план и дождитесь завершения.

Мне потребовалось около 20 минут, чтобы завершить все обновления зависимостей Gradle..

Давайте быстро рассмотрим структуру нашего учебного проекта Corda. Наш основной репозиторий – это файл src. Поскольку мы используем Kotlin, мы будем использовать папку с исходным кодом Kotlin; под ним вы найдете папку src. Не путайте, пожалуйста, с папкой java-source..

Здесь вы найдете все необходимые файлы в папке с обучением. Также существует папка «test», в которой содержатся тестовые модули для приложения..

Еще один важный файл, о котором нам нужно знать, – это IOUState.kt. Он находится внутри тренировочного > государственный.

Получение работы тестов State Units

Класс IOUState выглядит очень просто. Он еще не завершен. Мы собираемся использовать методологию разработки, основанную на тестировании, чтобы разработать класс и подготовить его к работе..

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

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

Для начала нам нужно перейти в Тесты > Котлин> сеть > Корда > обучение персонала > государственный > IOUStateTests

Там вы найдете уже написанные тесты. Он также поставляется с множеством документации. Команда R3 Corda не торопилась, чтобы создать шаблон..

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

Выделите код и нажмите Ctrl + /, чтобы раскомментировать. Если вы используете MAC, используйте CMD + /, чтобы раскомментировать.

Теперь пора запустить модульный тест..

Поскольку наш класс IOUState почти пуст, тесты не пройдут, и вы получите следующую ошибку теста.

Как видите, здесь говорится, что тест Kotlin-source: завершился неудачно из-за исключения NoSuchFieldException. Это означает, что тест ожидает переменную количества, где не обнаружил.

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

Прежде чем мы продолжим, нам нужно лучше понять Kotlin. Чтобы разобраться в коде, который мы собираемся редактировать, лучше познакомиться с ним. Kotlin – это плотный язык программирования. Кроме того, Kotlin собирается преобразовать в виртуальную машину JVM, поэтому мы должны использовать его в нашем руководстве..

  • класс данных IOUState → Это ключевое слово означает, что мы определяем класс данных с именем «IOUState».
  • val data → объявление переменной. Имя поля – данные
  • String = «data» → определяет значение переменной данных по умолчанию, если ничего не определено..
  • ContractState → Интерфейс

Если вы внесли все изменения в файл IOUState.kt в соответствии с тестом, класс IOUState будет выглядеть, как показано ниже..

класс данных IOUState (вал сумма: Сумма,

                   вал кредитор: Сторона,

                   вал заемщик: Сторона,

                   вал оплачено: Amount = Amount (0, amount.token),

                   переопределить val linearId: UniqueIdentifier = UniqueIdentifier ()): LinearState {

   / **

    * Это свойство содержит список узлов, которые могут «использовать» это состояние в допустимой транзакции. В этом случае

    * Кредитор или заемщик.

    * /

   переопределить val участники: Список получать() = listOf (кредитор, заемщик)

   / **

    * Вспомогательные методы при построении транзакций для расчета и перевода долговых расписок.

    * – [платить] добавляет сумму к оплаченному имуществу. Это не проверка.

    * – [withNewLender] создает копию текущего состояния с новым указанным кредитором. Для использования при передаче.

    * /

   весело pay (amountToPay: Amount) = копия (pay = pay.plus (amountToPay))

   весело withNewLender (newLender: Party) = копия (lender = newLender)

}

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

Хотите стать экспертом по Corda? Вот руководство к сертификации R3 Corda, которая поможет вам в процессе сертификации.

Corda Контакты

Мы узнали, что Штаты могут развиваться в новые государства. Разработчики могут контролировать эволюцию состояния в реестре с помощью контрактов. В этом разделе мы подробно узнаем о контрактах..

Поскольку R3 Corda не зависит от широковещательной рассылки сообщений по всей сети, он использует общее определение проверки транзакции для каждого типа состояния. Таким образом, сеть Corda проверяет транзакцию и достигает консенсуса. Это очень похоже на то, как другие блокчейны записывают транзакции..

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

Чтобы гарантировать, что состояния могут быть проверены и работоспособны, на каждое состояние необходимо ссылаться в контракте..

Каждый контракт состоит из двух пунктов, включая код контракта и юридическую прозу..

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

Как видите, контракт содержит два элемента, и в состоянии есть ссылка на контракт долгового обязательства для этого кода..

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

Другие ключевые особенности Corda Contracts включают следующее:

  • Несколько контрактов могут ссылаться на контракт. Также контракт может содержать несколько типов состояний.
  • Corda использует функцию проверки для подтверждения предлагаемой транзакции.
  • Подпись метода проверки приведена ниже.
  • fun verify (tx: Transaction): Unit
  • Метод проверки проверяет транзакцию, выполняя все ограничения. Если ограничение не выполняется, возникает исключение; в противном случае транзакция будет считаться действительной.
  • Функция проверки детерминирована.

В Шаблоны блокчейнов также содержат код для контрактов Corda. Вам также следует подходить к контрактам Corda аналогично штатам. Было бы полезно, если бы вы перешли к тестовым модулям Corda, а затем добавили требуемый код в Contract Class..

Corda Сделки

Наша следующая остановка – Corda Transactions. Именно транзакции делают возможным изменение состояния.

Итак, что такое транзакция? Его лучше всего определить как контейнер, содержащий ссылки на состояние ввода (0 или более). Они также производят состояния (0 или более).

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

Также существует три типа транзакций: страховки, обновления и выходы. У каждого своя повестка дня. Перечислим их ниже.

  • Страхование → Создает новые состояния
  • Обновления → Изменить свойства состояния
  • Выходы → Удалить состояния из книги

Corda Flows

Corda Flows – это шаги, необходимые одноранговым узлам для выполнения (выполнения) успешной транзакции..

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

Контроль потока гарантирует, когда общаться, о чем и с кем общаться..

Это полная противоположность другим технологиям распределенного реестра, которые сосредоточены на трансляции деталей транзакции по всей сети. Corda преуспевает в транзакциях точка-точка, где транзакции должны иметь два важных параметра: отправителя и получателя..

Ключевые вещи, которые вы должны знать о потоках

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

Хотите подняться на ступеньку выше и стать экспертом? Вот руководство по созданию блокчейна на Python..

Консенсус

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

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

  • Консенсус уникальности → Этот метод консенсуса гарантирует, что в реестре никогда не произойдет никаких конфликтов.
  • Консенсус проверки → Консенсус проверки обрабатывает транзакции и гарантирует отсутствие конфликтов в соответствии с кодом контракта. Это способствует развитию общего состояния в сети..

Ключевые моменты, которые вам следует знать о Corda Consensus:

  • Уникальный консенсус гарантирует, что обновления бухгалтерской книги всегда уникальны. Кроме того, он гарантирует, что бухгалтерская книга действительна при выполнении обновления..
  • Консенсус проверки гарантирует, что обновление действительно.

Corda Node

Последний раздел Corda, который мы собираемся здесь обсудить, – это узел Corda. Corda Node – это высокоуровневый вид на Корду..

Итак, что же такое узел Corda?

Узел Corda – это объект, который работает на виртуальной машине Java. Он включает в себя следующие

  • Он предлагает услуги хранения и хранилища.
  • База данных SQL поддерживает хранилища и службы хранения
  • Выделенные папки используются для хранения вложений
  • Предлагает настраиваемые функции и встроенные расширения, известные как CorDapps.
  • Предлагает клиентскую среду RPC

Так выглядит узел Corda.

Как видите, он содержит все необходимые аспекты для работы сети Corda. Они взаимодействуют с потоком и предоставляют настраиваемые функции CorDapp..

Вывод

На этом мы подошли к концу нашего руководства по Corda. Здесь мы посмотрели на Corda и попытались увидеть IoU CorDapp. Мы обсудили его различные разделы, используя шаблонное обучение, доступное в репозитории Corda GitHub..

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

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map