Эластичное масштабирование Bitzal
Путь синоблоков от их создания до включения в релейную цепь (обсуждается в Протоколе Синочейнов) охватывает два домена: синочейны и релейные цепи. Масштабирование протокола Bitzal предполагает рассмотрение того, как синоблоки производятся синочейном, затем проверяются, обрабатываются, защищаются, становятся доступными для дополнительных проверок и и, наконец, включаются в цепочку ретрансляции.
Асинхронное резервирование это оптимизация, реализованная в релейной цепи которая позволяет синочейнам быстрее создавать блоки, а ретрансляционной цепи - беспрепятственно их обрабатывать. Асинхронная подложка также улучшает работу синочейнов благодаря невключенным сегментам и расширенной информации что позволяет ассаторам производить несколько синоблоков, даже если предыдущие блоки еще не включены. Это обновление позволяет синочейнам использовать до 2 секунд времени выполнения на синоблок, а релейная цепочка сможет включать синоблок каждые 6 секунд.
Благодаря эластичному масштабированию синочейн может использовать несколько ядер для включения нескольких синоблоков в один и тот же блок релейной цепи.
Эстафетная цепочка получает последовательность блоков синочейна на нескольких ядрах, которые проверяются, и если все их истоки состояния совпадают при включении, блоки синочейна во время резервного копирования, для доступности и утверждения. При использовании эластичного масштабирования пропускная способность синочейнов зависит от инфраструктуры ассатора.
The реализация эластичного масштабирования Развертывание будет проходить в несколько этапов. На первом этапе эластичное масштабирование будет работать на синочейнах с доверенным/разрешенным набором ассаторов. Благодаря этому ограничению можно запустить эластичное масштабирование без изменения списка кандидатов. После успешной реализации первого этапа можно внести изменения в список-кандидатов, чтобы набор ассаторов снова стал недоверенным/бездоверным. На заключительном этапе будет реализована полная интеграция с фреймворком Nimbus, что позволит настроить синочейны а также настраивать непрерывный доступ к нескольким ядрам.
Возьмем, к примеру, синочейн, который хочет передать четыре синоблока в релейную цепочку. Без эластичного масштабирования, потребуется 24 секунды, чтобы передать их все через одно ядро. Помните, что ядро занято после резервирования и перед включением, то есть на протяжении всего процесса доступности данных. Блок не может войти в ядро до того, как предыдущий блок будет объявлен доступным.
R1 <----- R2 <----- R3 <----- R4 <----- R5
C1 |P1 B I
|P2 B I
|P3 B I
|P4 B I
На диаграмме выше показано, как происходит резервирование и включение синоблоков (P) в один и тот же блок релейной цепного блока (R). С одним ядром (C1) синоблок включается каждые 6 секунд. Обратите внимание, что P4 включается через 30 секунд (а не через 24 секунды), потому что, когда P1 был отправлен в цепочку реле для резервирования, предыдущего синоблока не было.
При эластичном масштабировании для включения всех четырех синоблоков с использованием двух ядер потребуется всего 12 секунд (время блока - 3 секунды), используя два ядра.
R1 <----- R2 <----- R3
C1 |P1 B I
|P2 B I
C2 |P3 B I
|P4 B I
На схеме выше показано, как четыре синоблока объединяются и включаются в релейную цепь с помощью двух ядер (C1 и C2). Обратите внимание, что P2 и P4 включаются через 18 секунд (а не через 12), потому что когда P1 и P3 были выведены в цепочку реле для резервирования, до них не было других синоблоков.
Технические аспекты
Если темп работы одного ядра в релейной цепи не изменится (возврат и включение каждые 6 секунд на ядро), то на стороне синочейна ассаторам придется увеличить скорость производства синоблоков, чтобы подтолкнуть P1 и P2 к двум ядрам релейной цепи.
Если предположить, что количество ядер постоянно, то со стороны релейной цепочки эластичное масштабирование не получит значительных изменений. Так как синочейн будет использовать несколько существующих ядер вместо одного. Однако со стороны синочейна ассаторы должны производить больше синоблоков в единицу времени, что означает, что технические требования к ассаторам, скорее всего, возрастут.
Для решения более сложных технических задач см. Elastic Scaling GitHub PR.