Поддержка сообщества всегда в приоритете, поэтому мы продолжаем выпускать патчи для более ранних сборок с различными исправлениями багов и обновлениями стабильности параллельно с релизами наших новейших сборок. В этом посте отражено содержание последних обновлений для EOSIO, EOSJS, eosio.contracts и других полезных ресурсов для разработчиков.
EOSIO
EOSIO v2.0.3
14 февраля 2020 года состоялся релиз EOSIO v2.0.3. Обновления, представленные в этой версии EOSIO, были сосредоточены на безопасности, стабильности и небольших исправлениях.
Безопасность:
- Добавлен крайний срок кодировки base58
Стабильность: - Как и в EOSIO v1.8.12, инициализированы все переменные члены класса net_plugin
Другие изменения:
- Как и в EOSIO v1.8.12, введён метод пропуска синхронизации из генезиса и возобновления из тестов состояния
- Как и в EOSIO v1.8.12, Travis заменён на Github Actions, чтобы утроить количество параллельных задач
- Как и в EOSIO v1.8.12, удалена ненужная установка
- Подняли скрипт проверки версии macOS до 10.14, так как EOSIO больше не будет работать на старых версиях.
EOSIO v1.8.12
Также 14 февраля 2020 года состоялся релиз EOSIO v1.8.12. Обновления, представленные в этой версии, сосредоточены на стабильности и других изменениях.
Стабильность:
- Инициализированы все переменные члены класса net_plugin
Другие изменения:
- Введён метод пропуска синхронизации из генезиса и возобновления из тестов состояния
- Travis заменён на Github Actions, чтобы утроить количество параллельных задач
- Удалена ненужная установка
EOSIO v2.0.2
Не далее как 7 февраля 2020 года мы выпустили EOSIO v2.0.2. Это обновление сфокусировано на консолидации исправлений безопасности, исправлениях стабильности и других изменениях.
Безопасность:
- Ограничены разрешённые типы подписи блока
Стабильность:
- Внутреннее состояние модифицировано так, чтобы сбрасывать рукопожатие при закрытом сокете до асинхронного обратного вызова, чтобы устранить путаницу в net_plugin
- Теперь вместо dispatch используется post, чтобы избежать повторных вызовов в потоке
- Изменено определение максимального количества последовательно отклонённых блоков с 3 на 13, учитывая функцию отбрасывания запоздалых блоков
- Исправлена защита режимов только для чтения
- Введено возможное исправление для случайной остановки ноды
- Откачен модуль обратного консенсуса, предоставлявший неверные расчеты для отложенного времени запуска при создании исходного блока
Другие изменения:
- Как и в EOSIO v1.8.11, введены два механизма: cpu-effort-percent и last-block-cpu-effort-percent, чтобы ограничить окно возможности создания блоков
- Снижены ограничения данных для подписей и добавлена рекомендация использовать eosjs v20 для генерации правильных подписей, поскольку другие библиотеки могут быть отклонены нодами
- Как и в EOSIO v1.8.11, удалена ненужная проверка того, создаёт ли нода блок
- Как и в EOSIO v1.8.11, введена упрощенная проверка on_incoming_block в режиме только для чтения
- Как и в EOSIO v1.8.11, расширен водяной знак, чтобы никто из делегатов никогда не создавал блок в один и тот же слот
- Введены следующие изменения документации:
- $ удалён из кодовых блоков оболочки
- Добавлены обратные галочки на имена собственные
- Исправлены опечатки, ошибки синтаксиса
- Удалён устаревший пример javascript и документ протокола из плагина state history; в ожидании дальнейших обновлений
- Добавлен URL официального тестнета
- Изменено состояние только для чтения: теперь разрешены входящие транзакции, облегчающие взаимодействие P2P нод ретрансляции между производителями блоков; в журнал добавлено сообщение с предупреждением
- Удалено дублирующее сообщение журнала
EOSIO v1.8.11
Также 7 февраля 2020 года был выпущен релиз EOSIO v1.8.11. В этом обновлении были добавлены исправления для повышения стабильности и другие мелкие исправления.
- Изменён с низкого на высокий приоритет процесса async_write, чтобы уменьшить задержку при высокой нагрузке, а также задали отправке блоков синхронизации низкий приоритет, чтобы предотвратить перегрузку ноды синхронизацией пиров
- Введены исправления для ro/immutable режимов
- Добавлена логика обработки несвязываемых блоков, полученных в результате синхронизации пиров на 1.8.x с 2.0.x
Другие изменения:
- Введены два механизма, cpu-effort-percent и last-block-cpu-effort-percent, призванные ограничить окно возможности создания блоков
- Удалена ненужная проверка того, занята ли нода созданием блока
- Введена упрощенная проверка on_incoming_block в режиме только для чтения
- Расширен водяной знак, чтобы никто из делегатов никогда не создавал блок в один и тот же слот.
EOSIO v2.0.1
28 января 2020 года мы выпустили последнюю версию EOSIO v2.0.1. Это обновление было сфокусировано на безопасности, стабильности и других улучшениях.
- Как и в EOSIO v1.8.10, была повышена безопасность за счёт более ранней валидации блоков
- Как и в EOSIO v1.8.10, улучшена обработка отложенных транзакций во время подтверждения блока
- Как и в EOSIO v1.8.10, уменьшены пределы размера handshake при журналировании плагина net
Стабильность:
- Удалена функция уведомления ID блока, которая вызвала проблемы с большим количеством соединений
- Изменены отчёты, указывающие, когда блок проверки создает другой ID
- Как и в EOSIO v1.8.10, внесены изменения в обработку запоздалых блоков, повышающие вероятность их отбрасывания и улучшающие общую стабильность производства
- Как и в EOSIO v1.8.10, устранен сбой при ошибке на выходе
Другие изменения:
- Как и в EOSIO v1.8.10, обновлен репозиторий FC с целью исключить сбой при журналировании
- Обновлен README.md, исправлены неработающие ссылки на документацию
- Выявлена проблема с установкой Boost
- FC возвращён на свое место после ошибочного коммита
- Добавлен файл конвейера для тестирования скрипта сборки
- Как и в EOSIO v1.8.10, форкнули репозиторий EOSIO/anka-buildkite-plugin с целью уменьшения количества видов потенциальных атак
- Как и в EOSIO v1.8.10, добавлена логика для предотвращения самопроизвольного запуска конвейеров LRT
EOSIO v1.8.10
28 января 2020 года также состоялся релиз EOSIO v1.8.10. Это обновление было сфокусировано на безопасности, стабильности и других изменениях.
- Улучшена безопасность за счёт более ранней проверки блоков
- Улучшена обработка отложенных транзакций при подтверждении блока
- Уменьшены пределы размера handshake при журналировании плагина net
Улучшения стабильности:
- Обновлен репозиторий FC с целью исключить сбой при журналировании
- Внесены изменения в обработку запоздалых блоков, повышающие вероятность их отбрасывания и улучшающие общую стабильность производства
- Устранен сбой при ошибке на выходе
Другие изменения:
- Исправлено обнаружение openssl в cmake тестере, когда OPENSSL_ROOT_DIR не задана
- Добавлена улучшенная предварительная подготовка к приостановке для команд Anka + исправление буста
- Форкнут репозиторий EOSIO/anka-buildkite-plugin для уменьшения количества типов потенциальных атак
- Разрешены псевдонимы вариантов в ABI
- Добавлена логика для предотвращения самопроизвольного запуска конвейеров LRT
Контракты
eosio.contracts v1.9.1
3 февраля 2020 года, был выпущен eosio.contracts v1.9.1. Это обновление содержало ряд исправлений багов и изменений.
Системный контракт:
- Мы выявили и исправили баг в логике планирования последовательности производителей в v1.9.0 системного контракта, который включал паузу в платежах производителям блоков, изменениях производителей и закрытии аукциона имён. Обновление до v1.9.1 решает эту проблему.
Другие изменения:
- Введена логика для повторной загрузки бинарника CDT, команды build/test обновлены для поддержки новой логики и улучшен вывод результатов
- TravisCI заменён на Github Actions
- Подчищены детали в аннотациях для совместимости с генератором mdjavadoc
Зависимости:
- Важно отметить, что содержащиеся в этом обновлении контракты eosio.system и eosio.bios могут быть развернуты в блокчейне на EOSIO только после активации обновления консенсуса WTMSIG_BLOCK_SIGNATURES. При запуске нового блокчейна для активации этой функции протокола можно использовать более старые версии контракта eosio.bios (v1.7.x или v1.8.x).
EOSJS
EOSJS v21.0.0-rc2
Ещё один запуск 7 февраля 2020 года – кандидат на релиз EOS JS v21.0.0. В этом релизе основное внимание уделяется расширению эллиптической библиотеки, вводу новых команд, а также использованию минифицированных файлов для рабочих сред и другим изменениям.
Эллиптическая библиотека:
- Введены вспомогательные функции для выполнения действий подписывания, проверки и восстановления ключей подписи
Команды:
- Заменили параметр table_key на index_position
- Добавлена команда yarn build-web, которая создает отладочные и минифицированные файлы в dist_web
Минифицированные файлы:
- Введена рекомендация использовать минифицированные файлы вместо файлов отладки в производственных средах, чтобы сократить время загрузки для конечного пользователя
Другие изменения:
- Объединен пул реквест №649 от EOSIO/develop-version-bump для фиксации версий
- Функции из eosjs-ecc добавлены в классы PrivateKey/PublicKey/Signature для обработки преобразований формата и вызова эллиптических функций
- Удалена конфигурация Travis CI, ожидаются обновления
- Введено нулевое заполнение для сигнатур r и s, чтобы они генерировали сигнатуры с надлежащим количеством байтов
- Исправлена проблема с неверным символом
- Удалены некоторые предупреждения и сопутствующая документация
- Добавлен IMPORTANT.md и изменен связанный раздел в документе README.md
- Откорректированы минифицированные и отладочные файлы, созданные yarn build-web, с целью соответствия новому соглашению о минифицированных файлах
- Удалено использование устаревшей команды table_key
- Документация обновлена, добавлена правильная ссылка на новую версию документа
Другие обновления
Elemental Battles
Кроме того, 7 февраля 2020 года мы обновили репозиторий для Elemental Battles, учебного пособия и карточной игры, до eosio-card-game-repo v1.1.10.
Tropical Stay App v1.1.0
Мы продолжаем изучать инновационные методы повышения безопасности аккаунтов EOSIO. 18 января 2020 года мы выпустили приложение Tropical Stay 1.1.0. Приложение-пример Tropical Stay предоставляет разработчикам руководство по интеграции многофакторной аутентификации на основе WebAuthn с веб-приложениями EOSIO. WebAuthn позволяет приложениям аутентифицировать учетные данные пользователей с помощью аппаратных устройств. Последняя версия Tropical Stay содержит примеры того, как настроить аппаратный аутентификатор, такой как YubiKey, или iOS-устройство с TouchID или FaceID, для работы с WebAuthn с целью проверки подписей аккаунтов.
Оставайтесь на связи
Мы постоянно совершенствуем программное обеспечение, инструменты и ресурсы экосистемы EOSIO. Если вы хотите поделиться своим мнением или начать сотрудничать с нашей командой по улучшению EOSIO для разработчиков, вы можете отправить нашей команде по связям с разработчиками письмо на [email protected].
Оригинал поста: ЗДЕСЬ
@blockchained, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующей категории: