Видео 2: Курс 101: Основы Symbol — Архитектура Symbol

Видео 2:

Курс 101: Основы Symbol

Архитектура Symbol

СКРИП:

Добро пожаловать на курс 101, основы Symbol. В данном курсе мы рассмотрим архитектуру Symbol.

Платформа Symbol реализовывает четырехуровневую архитектуру для дополнительной безопасности, масштабируемости и простоты разработки. Первые 2 уровня — это внутренние уровни, которые находятся на уровне протокола. Первый уровень — это ядро блокчейна, которое состоит из одноранговых (P2P) узлов (нод), которые взаимодействуют с нодами с помощью API (Интерфейса прикладного программирования). Шлюз REST — это следующий (внешний) уровень, который взаимодействует, между API (Интерфейсом прикладного программирования) и клиентскими приложениями, позволяя пользователям более напрямую взаимодействовать с приложениями.

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

Представьте, что Алиса хочет отправить 100 цифровых «хлопков» Бобу, через платформу Symbol. Алиса берет свой мобильный телефон и открывает приложение кошелька Symbol, чтобы ввести необходимые данные. Боб является получателем цифрового актива, «хлопков», который создан на платформе Symbol, где 100 «хлопков» — максимальная сумма, которую она хочет отправить, поэтому Алиса готова заплатить за сетевую транзакцию. В этом случае комиссию за транзакцию всегда следует оплачивать с помощью токенов XYM, независимо от мозаики, отправленной Алисой. XYM — это нативный токен Symbol, который также является мозаикой. Транзакционная комиссия используется, для стимулирования и оплаты валидаторов, которые обрабатывают транзакции сети.

Алиса нажимает «ОТПРАВИТЬ», убедившись в том что все данные введены правильно. 

Перед инициализацией транзакции в сети Symbol наборы для разработки программного обеспечения (SDK) собирают всю необходимую информацию и подписывают эту транзакцию с помощью приватного ключа Алисы. Затем приложение кошелек (wallet) анонсирует о транзакции в сети. До этого момента Алиса обращалась к архитектурному уровню Symbol «Клиенты и набор средств разработки (SDK). Благодаря набору средств разработки (SDK) позволяет девелоперам (разработчикам) сосредоточиться на разработке продукта, а не на интерфейс прикладного программирования (API).

Комплект средств разработки (SDK), подключается напрямую к нодам с помощью архитектуры REST API (архитектурный стиль взаимодействия компонентов распределенного приложения в сети). Ноды с помощью REST API принимают запросы от клиентов, записывая это в блокчейне и уведомляя клиентов, через Вебсокеты (это стандарт полнодуплексной (двусторонней) связи с сервером по TCP-соединению). Этот уровень предоставляет все функции, доступные, через контракт RESTful API.

Каждая REST нода, соединяется через API и кросс-платформенную, документо-ориентированную базу данных MongoDB. Это выводит нас на следующий уровень.

Основная функция API нод, заключается в хранении данных в удобном формате, с помощью базы данных MongoDB. Блокчейн — это безопасный метод хранения данных, но не является наиболее эффективным метод хранения данных с точки зрения извлечения данных, поскольку они хранятся в двоичном формате. Репликация и хранение данных в MongoDB позволяет клиентским приложениям очень быстро получать доступ к данным через REST ноды и что важно, это позволяет более эффективно и легко масштабировать всю сеть. Помимо транзакций, база данных MongoDB также хранит историю блоки и состояния блокчейн цепи.

Ноды API (Интерфейс прикладного программирования) отправляют новые транзакции в одноранговую сеть (P2P) для проверки. После проверки и включения в блок, нода с помощью API (Интерфейс прикладного программирования) записывает данные в базу данных MongoDB. Данное действие записывается в файловую очередь под названием спул. Затем, используя брокерскую службу, база данных MongoDB обновляется и уведомляет сетевой шлюз REST, используя высокопроизводительную асинхронную библиотеку сообщений ZeroMQ.

api

Последний уровень состоит из одноранговых (P2P) нод, создающих основу блокчейна. Транзакции, передаваемые нодами с помощью API (Интерфейса прикладного программирования), передаются в сеть для проверки. Далее недействительные транзакции будут отклонены, а только актуальные транзакции будут сгруппированы в «блоки» и связаны между собой с помощью криптографии. Затем изменения сохраняются в виде флат — файла на жестком диске и обновленной цепочки, которая встраивается в базу данных на основе LSM-tree с открытым исходным кодом RocksDB.

Этот уровень также содержит алгоритм консенсуса, который модерирует сервера блокчейна. Symbol использует протокол консенсуса (POS+) Proof-of-Stake+. Мы изучим это на следующем курсе. Этот уровень, также дает блокчейну Symbol преимущества (бенефис) технологии, такие как прозрачность, безопасность и трассабилити (прослеживаемость).

Возвращаясь к приведенному выше примеру, который был представлен ранее, что Алиса нажала кнопку «ОТПРАВИТЬ», данная транзакция компилируются и передаются в сетевой шлюз RESTful веб-API. Уведомление будет отправлено, но на данном этапе неизвестно, действительна ли данная транзакция.

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

Возвращаясь к приведенному выше примеру, который был представлен ранее, что Алиса нажала кнопку «ОТПРАВИТЬ», данная транзакция компилируются и передаются в сетевой шлюз RESTful веб-API. Уведомление будет отправлено, но на данном этапе неизвестно, действительна ли данная транзакция. Поэтому первый этап проверки происходит, через (Интерфейс прикладного программирования) API ноды. Если транзакция окажется с ошибочной, данная информация сообщается нодам REST, где вебсокеты отправляют уведомление, через канал статуса и отображается в приложении кошелька. 

Если Алиса использует мульти-сиг аккаунт, для отправки транзакции, API ноды отвечают за сбор всех необходимых подписей, для инициализации транзакции. Если ошибки нет и все подписи присутствуют, тогда транзакция инициализируется в одноранговую (P2P) сеть, но транзакция не будет первоначально подтверждена, так как она еще не включена в блок. Одноранговые (P2P) ноды проверяют, достаточно ли у Алисы мозаики «хлопков» на ее аккаунте. Если у нее достаточное количество монет, то тогда транзакция обрабатывается и 100 мозаик «хлопков» будут списаны с баланса Алисы и зачислены на счет Боба. В дополнение к отправленным 100 мозаикам «хлопков», комиссия за транзакцию будет вычтена из счета Алисы и возвращена валидатору узла для обработки транзакции. Затем данные будут обновлены в базах данных RocksDB и MongoDB. Кошелек также получит уведомлено, через сетевой шлюз REST и сделка будет считаться подтвержденной.

Как видите, четырехуровневая архитектура предлагает разработчикам довольно простой способ использования Symbol и блокчейн технологии. Поэтому разработчикам достаточно будет работать, только на уровне «Клиенты и  комплекты средств разработки “SDK”». В следующих уроках мы узнаем, как воспользоваться всеми девелопмент инструментами разработки, которые имеются в Symbol.

Symbol. Расширьте свои Возможности

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

пятнадцать − три =