31 октября 2020

Релиз Dash Platform v0.16 на Evonet

Dash Core Group рады представить релиз Dash Platform v0.16. В соответствии с новым процессом выпуска обновлений, выпуск нового функционала происходит примерно раз в шесть недель. Это пятый релиз по новым правилам, и шестой в целом. Поскольку мы переходим к финальным этапам нашего плана по развёртыванию в тестовой сети, команда DCG решила совместить следующие два релиза. Это решение направлено на снижение связанных с релизом оперативных накладных расходов, пока мы работаем над необходимыми для тестовой сети функциями. Соответственно, новый релиз Dash Platform появится в середине-конце декабря.

Ключевые моменты релиза

В свете подготовки для тестовой сети, этот релиз преследует две основные цели: подготовка протокола Dash Platform с учётом того, что вносить изменения после тестовой сети будет сложно, а также исправление проблемы индетерминизма в обработке блока.

Как обычно, из-за значительных изменений, произведённых в этом релизе, все данные в Evonet были стёрты. В соответствии с этим разработчикам стоит внести изменения в свои локальные настройки. Ниже приведён список самых важных обновлений. Все изменения подробно описаны в примечаниях к релизу каждого компонента платформы, ссылки на них находятся в последнем абзаце этой статьи.

  • Глубокий рефакторинг DPP для более эффективного отображения бинарных данных: В протокол Dash Platform были внесены значительные изменения для более эффективного хранения данных на платформе. А именно, был исправлен код DPP, чтобы бинарные данные отображались в виде массивов байтов, а не строк. Использование строк для отображение бинарных данных было принято на раннем этапе, что позволило нам быстро идти вперёд в разработке. Однако, это не подходит для релиза в тестовой или основной сети. Следовательно, по мере приближения первого релиза в тестовой сети мы решили этим заняться. Ценность использования байтовых массивов в том, что данные хранятся более эффективно, занимают меньше пространства на платформе, а переходы состояний становятся дешевле.
  • Стало легче определять бинарные свойства в контракте данных: схема JSON была дополнена ключевым словом ‘byteArray’, что позволит разработчикам легче определять бинарные свойства в своих контрактах данных. Это значительное улучшение по сравнению с предыдущей реализацией, которая опиралась на ключевое слово ‘contentEncoding’.
  • Обновлена структура и консенсусные правила для Блокчейн-ID: В базовую структуру, включающую в себя Блокчейн-ID на Dash Platform, были внесены несколько изменений. Все эти изменения основывались на обновлениях, описанных в DIP 11 (Блокчейн-ID). Некоторые из этих обновлений включают в себя введение публичного ключа BLS identity, добавление признака редактирования, а также проверка уникальности всех публичных ключей Блокчейн ID.
  • Исправлен источник индетерминизма в обработке блока: Это был серьёзный и известный баг, из-за которого многие разработчики не могли успешно запустить ноду в Evonet. Если бы мы оставили всё как есть, это могло привести к перебоям в работе блокчейна и плохой производительности на платформе в целом. Обработка блока должна быть детерминированным процессом — то есть, при получении одинакового набора входов, каждая нода должна иметь возможность сгенерировать одинаковый блок. Найти источник индетерминизма было сложно, и команде пришлось добавить подробное ведение логов на все компоненты платформы, чтобы обнаружить проблему. После её обнаружения, мы внесли ещё несколько изменений, чтобы избежать подобной проблемы в будущем.

Заключение

Огромное спасибо командам разработчиков DCG, которые совместно работают над поддержкой постоянных релизов платформы Dash. Также отдельное спасибо сообществу Dash Developer за их неустанную работу над раскрытием потенциала платформы. Команда DCG решительно настроена выпустить Dash Platform и DashPay к концу этого года, а во время следующего объявления о релизе мы уже планируем праздновать запуск в тестовой сети.

Подпишитесь на блог Dash и наши страницы в соцсетях, чтобы быть в курсе релизов и обновлений. Как обычно, мы с нетерпением ждём и приветствуем ваши идеи, обратную связь и предложения изменений.

Примечания к релизу

Оригинал публикации

Обсудить в Discord!