Что нового в Artery Blockchain версии 2.0 по сравнению с версией 1.3?

На протяжении 10 месяцев работы Artery Blockchain, по мере роста количества пользователей и транзакций, мы собирали и анализировали статистические данные. На основе этих наблюдений был выявлен ряд “узких” мест, требующих нашего вмешательства. Мы внесли в Road Map ряд изменений улучшающих производительность и удобство работы с блокчейн. Все эти изменения были объединены под общим названием Artery Blockchain 2.0.

В чем же заключаются ключевые моменты этого обновления?

I. Переход с номера блока на время

Раньше ход времени изменялся в блоках из расчёта 1 блок = 30 секунд (например, вознаграждение за делегирование выплачивалось раз в 2880 блоков). На практике блоки могли выходить чуть быстрее или чуть медленнее, из-за чего время выплат и других регулярных событий могло сдвигаться. Теперь эти события привязываются к реальному времени и колебания времени выхода блока на них больше не влияют. Что позволяет уменьшить промежуток между блоками и, теоретически, увеличить скорость прохождения транзакций.

II. Хранение данных

В новой версии для сериализации-десериализации данных используется Protobuf вместо Amino. Он намного быстрее, а сериализованные с его помощью данные занимают гораздо меньше места. А это означает, что блоки будут весить меньше и быстрее будут обрабатываться валидаторами и записываться на диск.

III. Брошенные аккаунты

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

IV. Новый API

Кроме REST API новая версия будет также поддерживать интерфейс gRPC, что позволит разработчикам проще и удобнее интегрировать свои продукты с Artery Network. REST API также существенно переработан в т.ч. добавлена документация в формате OPEN API. Искренне надеемся, что он стал проще и удобнее в использовании.

V. Структура модулей

Переработки коснулась и структура модулей и хранимых данных. Для снижения накладных расходов, некоторые небольшие модули с малым объемом хранимых данных (например subscription) были перенесены в профиль. Это позволило уменьшить размер занимаемый блокчейн и уменьшить количество операций чтения / записи.

VI. События

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

VII. Система автоматического обновления

Изначально в Cosmos SDK и Artery Blockchain присутствует система, которая позволяет посредством голосования применить обновление blockchain для исправления каких-то ошибок или внесение нововведений. При этом реализовано это так — на определенном блоке работа текущей версии блокчейн останавливается и все ноды прекращают свою работу. Дальше администратор (а в случае Windows и MacOS приложение Artery Network) должен перезапустить новую, заранее скаченную версию ноды, которая проведет необходимые изменения и продолжит работу. Начиная с версии 2.0 механизм встроен в Cosmos SDK и требует меньше усилий для проведения обновлений.

VIII. Горячий старт

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

Хочется отдельно обратить внимание, что из-за несовместимости форматов хранения данных, структуры модулей и параметров работы обновление с 1.3 на 2.0 возможно только через перезапуск блокчейн из файла генезиса. При этом все данные из версии 1.3. сохраняются в этот файл, после чего отдельным скриптом (будет доступен на github) файл преобразуется в совместимый с версией 2.0. И из нее производится запуск.

Для снижения рисков, связанных с ошибками в программе , вышеописанные изменения будут сначала проверены на testnet, который мы планируем запустить в ближайшее время. Для привлечения участников, в testnet будет действовать специальная программа вознаграждений (которые будут выплачиваться монетами ARTR в mainnet). Подробнее можно узнать на сайте testnet: https://artrtest.com

A blockchain project based on ordinary mobile devices as network validators. 4 decentralized products. Minimum transaction fee

A blockchain project based on ordinary mobile devices as network validators. 4 decentralized products. Minimum transaction fee