0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>В<a>предыдущей статье</a>мы рассказали про основные проблемы блокчейна и способы их решения. Теперь поговорим, как сделать собственный<strong>Sidechain</strong>. Для начала вспомним, как он устроен.</p>
1
<p>В<a>предыдущей статье</a>мы рассказали про основные проблемы блокчейна и способы их решения. Теперь поговорим, как сделать собственный<strong>Sidechain</strong>. Для начала вспомним, как он устроен.</p>
2
<p>Смотрим базовую схему:</p>
2
<p>Смотрим базовую схему:</p>
3
<p>Если вкратце, то, допустим, у нас есть публичный эфир, и есть приватная сеть. И мы хотим оперировать одними и теми же токенами. В принципиальном варианте у нас будут две сети, которые никак не связаны. Будет написан какой-нибудь сервис/микросервис, который по API будет соединён с двумя этими сетями. Также у нас будет некоторый аккаунт, на который мы будем выводить средства, и с которого будем их раздавать пользователям между этими двумя сетями (условно).</p>
3
<p>Если вкратце, то, допустим, у нас есть публичный эфир, и есть приватная сеть. И мы хотим оперировать одними и теми же токенами. В принципиальном варианте у нас будут две сети, которые никак не связаны. Будет написан какой-нибудь сервис/микросервис, который по API будет соединён с двумя этими сетями. Также у нас будет некоторый аккаунт, на который мы будем выводить средства, и с которого будем их раздавать пользователям между этими двумя сетями (условно).</p>
4
<p>Как это будет выглядеть, например, в Mainnet?</p>
4
<p>Как это будет выглядеть, например, в Mainnet?</p>
5
<p>Представьте, что я хочу перевести деньги Павлу, у которого есть адрес в Mainnet и такой же адрес у него есть и на Sidechain. Я говорю, что хочу работать с Павлом в приватном Sidechain. Что я для этого делаю? Перевожу деньги не Павлу, а на какой-то третий аккаунт, который распоряжается всеми средствами. Итак, я перевёл деньги, моя система всё зафиксировала, в результате чего было пропорционально выпущено такое же количество монеток, но уже в Sidechain. Либо со своего такого же аккаунта перечислил Павлу. По сути, две разные сети, но логика одна.</p>
5
<p>Представьте, что я хочу перевести деньги Павлу, у которого есть адрес в Mainnet и такой же адрес у него есть и на Sidechain. Я говорю, что хочу работать с Павлом в приватном Sidechain. Что я для этого делаю? Перевожу деньги не Павлу, а на какой-то третий аккаунт, который распоряжается всеми средствами. Итак, я перевёл деньги, моя система всё зафиксировала, в результате чего было пропорционально выпущено такое же количество монеток, но уже в Sidechain. Либо со своего такого же аккаунта перечислил Павлу. По сути, две разные сети, но логика одна.</p>
6
<p>Что нужно, чтобы сделать более простую вариацию Sidechain?</p>
6
<p>Что нужно, чтобы сделать более простую вариацию Sidechain?</p>
7
<p>Чтобы создать гибридную версию, нам надо, по сути, два компонента - то, из чего и состоит блокчейн: - State Machine; - Consensuns Engine.</p>
7
<p>Чтобы создать гибридную версию, нам надо, по сути, два компонента - то, из чего и состоит блокчейн: - State Machine; - Consensuns Engine.</p>
8
<p><strong>State Machine</strong>- само сердце блокчейна - то, куда мы применяем транзакции. На самом деле, она относится не так к блокчейну целиком, как к теории баз данных, когда вы делаете какой-нибудь реляционный запрос, ведь, когда вы его делаете, вы меняете состояние вашей локальной системы. И, к примеру, если у вас кластер, то вы меняете состояние всех нод, которые находятся в кластере. В нашем случае State Machine принимает транзакцию и на основе этой транзакции изменяет state.</p>
8
<p><strong>State Machine</strong>- само сердце блокчейна - то, куда мы применяем транзакции. На самом деле, она относится не так к блокчейну целиком, как к теории баз данных, когда вы делаете какой-нибудь реляционный запрос, ведь, когда вы его делаете, вы меняете состояние вашей локальной системы. И, к примеру, если у вас кластер, то вы меняете состояние всех нод, которые находятся в кластере. В нашем случае State Machine принимает транзакцию и на основе этой транзакции изменяет state.</p>
9
<p><strong>Consensuns Engine</strong>- механизм, который реплицирует ваши данные между нодами. То есть у вас, например, три ноды, вы сделали изменение на одной, и эти данные каким-то образом должны оказаться на второй и на третьей - именно этим и занимается Consensuns.</p>
9
<p><strong>Consensuns Engine</strong>- механизм, который реплицирует ваши данные между нодами. То есть у вас, например, три ноды, вы сделали изменение на одной, и эти данные каким-то образом должны оказаться на второй и на третьей - именно этим и занимается Consensuns.</p>
10
<p>Теперь перейдём к созданию собственного кастомного Sidechain на примере эфира (Ethereum). Для этого нам нужно, по сути, 2 компонента</p>
10
<p>Теперь перейдём к созданию собственного кастомного Sidechain на примере эфира (Ethereum). Для этого нам нужно, по сути, 2 компонента</p>
11
<p>State-машиной у нас будет<strong>Ganache</strong>(система, выпущенная<strong>Truffle</strong>).</p>
11
<p>State-машиной у нас будет<strong>Ganache</strong>(система, выпущенная<strong>Truffle</strong>).</p>
12
<p>В качестве второго компонента возьмём<strong>Consensus Mokka</strong>. Что он умеет делать, видно из картинки ниже:</p>
12
<p>В качестве второго компонента возьмём<strong>Consensus Mokka</strong>. Что он умеет делать, видно из картинки ниже:</p>
13
<p>Теперь давайте посмотрим, как всё будет работать:</p>
13
<p>Теперь давайте посмотрим, как всё будет работать:</p>
14
<p>У нас будет собственный кластер, выпущенный на основе Ganache + Mokka, а с другой стороны у нас будет обычный блокчейн, например, Эфир, тот же самый Mainnet, и будет какой-то компонент. То есть схема точно такая же, какая была в<a>первой части</a>нашей статьи, только вместо второй ноды у нас теперь наш собственный кластер.</p>
14
<p>У нас будет собственный кластер, выпущенный на основе Ganache + Mokka, а с другой стороны у нас будет обычный блокчейн, например, Эфир, тот же самый Mainnet, и будет какой-то компонент. То есть схема точно такая же, какая была в<a>первой части</a>нашей статьи, только вместо второй ноды у нас теперь наш собственный кластер.</p>
15
<p>Таким образом, скорость работы здесь будет очень высокая, то есть мы сможем переводить средства за доли миллисекунд, а обратный вывод можно будет сделать в виде одной транзакции. В результате<strong>мы экономим на абонентской плате и уменьшаем задержки</strong>. Как следствие -<strong>сохраняются все свойства блокчейна</strong>при том, что<strong>он становится приватным</strong>.</p>
15
<p>Таким образом, скорость работы здесь будет очень высокая, то есть мы сможем переводить средства за доли миллисекунд, а обратный вывод можно будет сделать в виде одной транзакции. В результате<strong>мы экономим на абонентской плате и уменьшаем задержки</strong>. Как следствие -<strong>сохраняются все свойства блокчейна</strong>при том, что<strong>он становится приватным</strong>.</p>
16
<p><em>Подробное выступление по этой теме смотрите<a>здесь</a>.</em></p>
16
<p><em>Подробное выступление по этой теме смотрите<a>здесь</a>.</em></p>
17
17