Sidechain и Off-chain: как оно работает? Часть 2 | OTUS
🔥 BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Highload Architect
-25%
JavaScript Developer. Basic
-25%
Kotlin Backend Developer
-25%
JavaScript Developer. Professional
-25%
Android Developer. Basic
-25%
Unity Game Developer. Basic
-25%
Разработчик C#
-25%
Программист С Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Reverse-Engineering. Professional CI/CD Vue.js разработчик VOIP инженер Программист 1С Flutter Mobile Developer Супер - интенсив по Kubernetes Symfony Framework Advanced Fullstack JavaScript developer Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «IaC Ansible»
-16%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-25%
Супер-интенсив "SQL для анализа данных"
-16%
Базы данных Сетевой инженер AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Администратор Linux. Виртуализация и кластеризация Нереляционные базы данных Супер-практикум по использованию и настройке GIT IoT-разработчик Супер-интенсив «ELK»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Sidechain и Off-chain: как оно работает? Часть 2

В предыдущей статье мы рассказали про основные проблемы блокчейна и способы их решения. Теперь поговорим, как сделать собственный Sidechain. Для начала вспомним, как он устроен.

Смотрим базовую схему:

4_20219_82130a_1-21703-82130a.png

Если вкратце, то, допустим, у нас есть публичный эфир, и есть приватная сеть. И мы хотим оперировать одними и теми же токенами. В принципиальном варианте у нас будут две сети, которые никак не связаны. Будет написан какой-нибудь сервис/микросервис, который по API будет соединён с двумя этими сетями. Также у нас будет некоторый аккаунт, на который мы будем выводить средства, и с которого будем их раздавать пользователям между этими двумя сетями (условно).

Как это будет выглядеть, например, в Mainnet?

Представьте, что я хочу перевести деньги Павлу, у которого есть адрес в Mainnet и такой же адрес у него есть и на Sidechain. Я говорю, что хочу работать с Павлом в приватном Sidechain. Что я для этого делаю? Перевожу деньги не Павлу, а на какой-то третий аккаунт, который распоряжается всеми средствами. Итак, я перевёл деньги, моя система всё зафиксировала, в результате чего было пропорционально выпущено такое же количество монеток, но уже в Sidechain. Либо со своего такого же аккаунта перечислил Павлу. По сути, две разные сети, но логика одна.

Что нужно, чтобы сделать более простую вариацию Sidechain?

Чтобы создать гибридную версию, нам надо, по сути, два компонента — то, из чего и состоит блокчейн: — State Machine; — Consensuns Engine.

2-21703-e27432.png

State Machine — само сердце блокчейна — то, куда мы применяем транзакции. На самом деле, она относится не так к блокчейну целиком, как к теории баз данных, когда вы делаете какой-нибудь реляционный запрос, ведь, когда вы его делаете, вы меняете состояние вашей локальной системы. И, к примеру, если у вас кластер, то вы меняете состояние всех нод, которые находятся в кластере. В нашем случае State Machine принимает транзакцию и на основе этой транзакции изменяет state.

Consensuns Engine — механизм, который реплицирует ваши данные между нодами. То есть у вас, например, три ноды, вы сделали изменение на одной, и эти данные каким-то образом должны оказаться на второй и на третьей — именно этим и занимается Consensuns.

Теперь перейдём к созданию собственного кастомного Sidechain на примере эфира (Ethereum). Для этого нам нужно, по сути, 2 компонента

3-21703-fa1ca8.png

State-машиной у нас будет Ganache (система, выпущенная Truffle).

В качестве второго компонента возьмём Consensus Mokka. Что он умеет делать, видно из картинки ниже:

4-21703-61c789.png

Теперь давайте посмотрим, как всё будет работать:

5-21703-fcfe1c.png

У нас будет собственный кластер, выпущенный на основе Ganache + Mokka, а с другой стороны у нас будет обычный блокчейн, например, Эфир, тот же самый Mainnet, и будет какой-то компонент. То есть схема точно такая же, какая была в первой части нашей статьи, только вместо второй ноды у нас теперь наш собственный кластер.

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

Подробное выступление по этой теме смотрите здесь.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!