В обновленной версии ноды появился новый тип консенсуса, расширены возможности работы с атомарными транзакциями и многое другое.
Главной особенностью этого релиза стало добавление Crash Fault Tolerant (CFT) консенсус-протокола, который в будущем заменит текущий PoA в приватных сетях, упрощая взаимодействие внешних приложений с блокчейн-сетью за счет быстрой финальности блоков и сокращая расходы на интеграцию.
Нода
CFT-консенсус
Внедрение CFT-консенсуса с быстрой финальностью исключает возможные штатные откаты транзакций, возникающие из-за специфики децентрализованной инфраструктуры блокчейн-сетей, работающих на алгоритмах консенсуса Proof-of-чего-угодно, применяемых в большинстве блокчейн-платформ.
В отличие от классических алгоритмов консенсуса Proof-of-чего-угодно, CFT консенсус не подвержен форкам и откатам блоков. Например, в PoS или PoA консенсусах процесс создания, рассылки и синхронизацию блоков майнерами допускает возможность штатного форка цепочки и существуют специальные процедуры «решения» этих форков. В нашем новом CFT консенсусе такой проблемы нет.
Иными словами, использование нового консенсуса CFT позволит разработчикам бизнес-приложений всегда быть уверенными в том, что транзакция, исполненная в блокчейн-сети, была записана, и проверять ее наличие в реестре перед выполнением последующих связанных действий не нужно.
Применение CFT консенсуса упрощает интеграцию внешних приложений и систем с блокчейн-сетью, построенной на платформе Waves Enterprise. Его использование значительно сокращает издержки разработчиков бизнес-приложений, на часть бизнес-логики, ответственной за мониторинг операций и текущего состояния цепочки блоков.
Конфигурация блокчейн-сети с использованием PoA консенсуса по-прежнему поддерживается. В следующем году команда планирует выпустить инструмент для миграции приватных сетей с PoA на CFT.
Доработки событийной модели gRPC
В прошлом обновлении платформы мы добавили событийную модель gRPC, которая позволила разработчикам перейти от отправки запросов к REST интерфейсу ноды к подписке на получение оповещений о событиях в ноде. В версии 1.5 команде удалось оптимизировать и унифицировать формат передачи данных, преобразовав все потоки данные в бинарный формат. Мы также добавили возможность вызова метода NodeConfig по gRPC для корректной интерпретации данных, полученных по этому протоколу. Кроме этого, метод получения статуса состояния выполнения смарт-контракта (ContractStatus) был переведен на протокол gRPC.
Обновление краулера
Сервис извлечения данных из ноды и передачи в дата-сервис, называемый краулером, получил несколько новых обновлений:
- Добавлена поддержка gRPC. Поддержка REST прекращена;
- Добавлена поддержка атомарных транзакций;
- Добавлена возможность использовать кастомный сертификат SSL для Postgres на облачных сервисах.
ГОСТ-криптография
Все функции платформы, использующие блочное шифрование, были переведены на криптографический алгоритм «Кузнечик» ГОСТ 34.12–2015 (при применении ГОСТ-криптографии в блокчейн-сети). Для зашифрованной связи узлов сети версии 1.4 и ниже будет использоваться предыдущий алгоритм.
Клиент
Клиентская часть платформы получила полную поддержку атомарных транзакций, выпущенных в предыдущем обновлении. Кроме этого, команда улучшила UX\UI:
- Добавлено отображение атомарных транзакций;
- Обновлены стили в информации о транзакции;
- Добавлены более детальные сообщения при восстановлении аккаунта и регистрации;
- К каждому токену добавлен цвнт;
- В карточке пользователя ссылка на поиск транзакций адреса изменена на поиск по участнику;
- Добавлено отображение формы обратной связи при медленной загрузке данных;
- Сервис авторизации переведен на регистронезависимые почтовые адреса;
- Исправлено отображение формы регистрации в Firefox.
В дата-сервис добавлена возможность поиска по ID атомарных транзакций, а также поддержка собственных сертификатов SSL для Postgres на облачных сервисах.
