Уважаемое сообщество,

В августе наши группы разработчиков продвинулись вперед с SDK, а конструкторы Lisk были заняты экспериментами с нашим новым набором инструментов. Вот основные выводы:

SDK

  • Lisk SDK 2.3.0 выпущен вместе с двумя исправлениями (2.3.1 и 2.3.2).
  • Вышеупомянутые выпуски ориентированы на новую топологию частичной ячеистой сети.
  • Мы исследуем консенсус Byzantine Fault Tolerance (BFT), над которым работает команда для следующих версий Lisk SDK.

Лиск Строители

  • Члены сообщества Lisk Center Utrecht Джонатан, Марк, Эрик и Альберт работают над Lisk.Bike, экспериментальным приложением, созданным с использованием Alpha SDK.
  • Члены сообщества StellarDynamic, Tony, Koreben3, Lemii, Джексон Робертс и Мэтью создали решения SideChain, предоставив инструменты, доказательства концепции и учебные пособия для экосистемы Lisk.
  • Moosty выпустил свой технический документ для Lisk Directory 0.2, проекта боковой цепи, обеспечивающего большую прозрачность для делегирования вкладов.
  • Korben3 запустил невероятно удобный Lisk Node Monitor Bot, инструмент, предоставляющий обновления узлов, в которых отсутствуют блоки, прямо в Telegram, что делает обслуживание эффективных узлов более удобным.

UI

  • Lisk Hub 1.20.0 был выпущен с поддержкой аппаратного кошелька Ledger Nano X.
  • Lisk Hub 1.21.0 завершил разработку, будет содержать поддержку немецкого языка и скрытый режим.
  • Вышла версия Lisk Mobile 1.2.1, включающая в себя решающее исправление сбоя BTC.
  • Lisk 1.3.0 находится в разработке, включает в себя различные улучшения производительности и пользовательского интерфейса.

SDK

В прошлом месяце мы выпустили Lisk SDK 2.3.0 и два патча для этой версии (2.3.1 и 2.3.2), которые исправили несколько проблем. Эти выпуски посвящены представлению новой топологии частичной ячеистой сети - мы уже описывали ее особенности в последнем Обновлении разработки, однако мы хотим выделить несколько улучшений:

  1. Запрос данных только от исходящих одноранговых узлов. Теперь узлы будут отправлять запросы только исходящим узлам. Это уменьшает вектор атаки, когда многие злонамеренные одноранговые узлы подключаются к целевому узлу и занимают его входящие соединения.
  2. Событие готовности сети. Библиотека P2P запускает событие EVENT_NETWORK_READY, которое сигнализирует, что узел успешно подключился к одноранговым узлам. Затем узел может начать синхронизацию и отправлять запросы в сеть.
  3. Функция peerSelectForRequest по умолчанию теперь просто перетасовывает peerList и выбирает один вместо использования гистограммы высоты.
  4. Новый класс PeerBook обрабатывает одноранговое управление. У нас есть списки новых одноранговых узлов и проверенных одноранговых узлов, каждый из которых имеет определенное количество сегментов. Одноранговые узлы добавляются в эти корзины на основе хэша их префикса IP и секрета узла. Это делает узел более устойчивым к локальным атакам. На эту структуру влияет реализация кодовой базы Биткойн.
  5. Стратегии выселения сверстников. Корзины в каждом списке пиров используют различные стратегии исключения для newPeers и triedPeers, которые защитят нас от получения списков недействительных / поддельных IP-адресов.

Частичная сетка

Узлы поддерживают соединения с подмножеством одноранговых узлов в сети, а не со всеми. Это значительно снизит сетевой трафик и количество подключений, а также позволит масштабировать сеть в зависимости от количества узлов.

На приведенном ниже графике показано, как будет выглядеть сеть с точки зрения нового узла версии 2.1.x, при этом более старые версии все еще находятся в сети. Зеленые - это новые узлы 2.1.x, а синие - старые версии. Размер узла указывает количество одноранговых соединений, которые он имеет.

Второй график ниже показывает, как будет выглядеть сеть с разными версиями узлов. Мы ясно видим, что старые версии, как правило, устанавливают много подключений, а новые узлы делают меньше подключений, что снижает как трафик, так и количество подключений в сети.

Для следующих версий Lisk SDK команда работает над реализацией консенсуса Byzantine Fault Tolerance (BFT). Давайте изучим достигнутый прогресс.

Характеристики протокола

Мы продвигаемся вперед с инструментом Спецификации протокола, который позволяет нам проверять протокол с помощью генерируемых нами тестовых данных. Инструмент не является частью BFT по умолчанию, но он позволяет нам проверять изменения протокола, которые идут с новой реализацией BFT.

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

Мы работаем над добавлением дополнительных сценариев, полное описание проблемы со списком задач можно найти на GitHub в разделе issue # 4087.

Замена модуля Rounds на DPoS

В настоящее время мы на полпути к замене старого модуля rounds на новый модуль DPoS. Некоторые важные функции, такие как создание списка делегатов для раунда, были доработаны и уже реализованы.

В настоящий момент мы заменяем две основные функции rounds.tick и rounds.backwardTick вариантами apply и undo, предоставляемыми модулем DPoS. Опять же, полный прогресс можно найти на GitHub, issue # 3686.

Блоки обработки

Новый блочный процессор в настоящее время находится на стадии проектирования и будет реализован в рамках изменений BFT. Процессор блоков является частью модуля chain и должен обеспечивать большую гибкость при работе с различными версиями блоков.

Мы придумали шаблон конвейера, который позволяет регистрировать несколько функций как часть каждого шага обработки блока. Затем мы можем определить отдельный процессор блоков для каждой версии блока, чтобы иметь возможность проверять разные версии блоков. Это означает, что модуль цепочки отвечает за выбор правильного процессора блоков для конкретного блока.

Запрос на вытягивание процессора блоков, который все еще находится на рассмотрении, содержит 237 коммитов и более 6000 строк кода изменений.

Хотите узнать больше о нашем предстоящем консенсусе BFT? Прочтите сообщение в блоге Назара, посвященное реализации окончательности блоков. Он также доступен на Hacker Noon.

Другие незначительные изменения

  • Для сущности аккаунта добавлен фильтр, позволяющий искать в поле account.asset: asset_contains и asset_exists - issue # 3990
  • Класс BlockSlots перемещен в модуль DPoS - issue # 3789
  • Событие генерируется при финализации блока из модуля BFT - issue # 3908

Мы с нетерпением ждем следующего месяца, когда новый процессор блоков будет играть ключевую роль и позволит нам полностью заменить модуль rounds, а также начать работу над механизмами синхронизатора, как описано в BFT LIP .

Реорганизация / рефакторинг кода

  • Новая папка Utils организована с файлами, названными в честь глаголов (очистить, проверить, выбрать, разное).
  • Все константы и события были собраны в отдельный файл на уровне корневого, чтобы сделать их более доступными и сделать код более читабельным.
  • Функции, общие для списков newPeers и triedPeers, были перемещены в отдельный базовый класс.
  • Мы улучшили способ экспорта функций библиотеки через индексный файл корневого уровня.

Лиск Строители

С началом Alpha SDK Phase в конце июля последние пару недель были чрезвычайно загружены для Lisk Builders. У нас был целый ряд проектов, над которыми мы работали, от Tic Tac Toe до Lisk Bike, а также инструменты управления узлами и разработки. Вот результат за месяц:

Lisk Bike

Члены сообщества Lisk Center Utrecht Джонатан, Марк, Эрик и Альберт работают над Lisk.Bike, экспериментальным приложением, созданным с использованием Alpha SDK. Джонатан много работал и уже завершил работу над блокчейном и мобильным приложением. Поскольку велосипеды являются популярным товаром в Нидерландах, вполне уместно, что сообщество LCU стремится создать приложение JavaScript и использовать блокчейн Lisk для регистрации данных. Следите за последними новостями и обновлениями Lisk Center Utrecht в Twitter.

Крестики-нолики

Члены сообщества StellarDynamic, Tony, Korben3, Lemii, Джексон Робертс и Мэтью создали решения SideChain, предоставив инструменты, доказательства концепций и учебные пособия для экосистемы Lisk. Первой была выпущена Крестики-нолики от Korben3 вместе с сопутствующим учебником.

Каталог Lisk

Moosty выпустил свой технический документ для Lisk Directory 0.2, проекта боковой цепи, обеспечивающего большую прозрачность для делегирования вкладов.

Decred EliteX

EliteX запустил новую услугу стекинга для Decred в рамках своего обмена. По их оценкам, это может принести пользователям 12% рентабельности инвестиций.

Инструменты

Korben3 запустил невероятно удобный Lisk Node Monitor Bot - инструмент, предоставляющий обновления узлов, в которых отсутствуют блоки, прямо в Telegram, что делает обслуживание рабочих узлов более удобным. JesusTheHun также предоставил Lisk Bootstrap, инструмент, использующий nvm и Docker Compose для сглаживания настройки локальной цепочки блоков разработки.

PS: всегда осторожно используйте сторонние инструменты.

Если вы еще этого не сделали, узнайте, как создавать собственные транзакции, с помощью подробного пошагового руководства Майкл. Встречайте Lisk Bills - экспериментальное приложение для выставления счетов. Вы также можете просмотреть его в форме вебинара.

UI

Lisk Hub 1.20.0 был выпущен с поддержкой аппаратного кошелька Ledger Nano X

Мы интегрировали поддержку аппаратного кошелька Ledger Nano X в Lisk Hub, чтобы пользователи могли входить в свои учетные записи с помощью этого аппаратного кошелька, просматривать историю своих транзакций и создавать новые. Ledger Nano X - это популярное новое аппаратное устройство, и мы надеемся, что пользователи смогут извлечь выгоду из этой интеграции. Интерфейс этого аппаратного кошелька во многом похож на интерфейс его предшественника Ledger Nano S. Если вы использовали предыдущую модель, у вас не будет проблем со своей.

Мы значительно улучшили способ уведомления пользователей о новых выпусках. Начиная с первого выпуска Lisk Hub, наши пользователи автоматически уведомлялись о выходе нового выпуска во всплывающем окне. Благодаря отзывам наших пользователей мы выявили определенные недостатки в процессе работы с пользователем. Основная проблема заключалась в том, что всплывающее окно отвлекало пользователя от того, что он делал в данный момент. Чтобы предотвратить эту проблему, теперь мы показываем только баннерное уведомление с краткой информацией о новом выпуске. Это позволяет пользователю завершить все, что он делал, и только после этого обратить внимание на новое обновление выпуска.

Только после того, как пользователь щелкнет «Подробнее», ему будет показано модальное диалоговое окно с полным журналом изменений и кнопкой действия для установки последней версии. Эта функция в настоящее время поддерживается в MacOS и Windows.

Возможные будущие улучшения функции нового выпуска. Когда пользователь начинает загрузку новой версии, мы могли отображать ход загрузки также в главном окне, а не только на значке приложения в Dock. Мы также могли бы работать над реализацией этой функции в Linux, потому что поддержка автоматических обновлений приложений на основе Electron в Linux стала намного лучше с тех пор, как мы впервые реализовали эту функцию. Если вы хотите увидеть эти или другие улучшения, сообщите нам об этом через форму обратной связи для пользователей Lisk Hub, которая также доступна непосредственно из главного меню Lisk Hub.

Lisk Hub 1.21.0 завершил разработку, будет содержать поддержку немецкого языка и скрытый режим.

Мы также рады представить нашу первую локализацию Lisk Hub, адаптированную для немецкого рынка. С этого момента все немецкоязычные пользователи могут изменить язык интерфейса на Deutsch, более удобный для использования. Надеюсь, вам понравится, если немецкий не является вашим предпочтительным языком, следите за этим - в будущем появится больше языков и валют. Подобно другим параметрам конфигурации, селектор языка доступен на странице настроек.

Мы также добавили в Lisk Hub функцию безопасности - скрытый режим. Если вы являетесь пользователем Lisk Mobile, вы уже знакомы с этой функцией. Скрытый режим позволяет вам просматривать свою учетную запись и управлять транзакциями, в то время как конфиденциальная информация, такая как общий баланс и суммы транзакций, скрыта. Имея это в виду, мы добавляем функцию скрытого режима, и теперь все пользователи могут без проблем проверять свои учетные записи в общественных местах, все суммы транзакций и баланс размыты, за исключением тех, которые не связаны с владельцем.

Как это работает?

Есть два способа включить или отключить скрытый режим: на странице входа и на странице настроек. По умолчанию скрытый режим отключен. Это означает, что если пользователи входят в Lisk Hub, не активировав эту опцию, их баланс учетной записи и суммы транзакций будут видны. Но если они активируют скрытый режим, установив флажок на странице входа, вся ваша конфиденциальная информация будет размыта до того, как вы перейдете на панель управления.

Скрытый режим на странице входа

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

Скрытый режим на странице настроек

Параметр скрытого режима находится в разделе S безопасность.

Lisk Mobile

Вышла версия Lisk Mobile 1.2.1, включая критическое исправление сбоя BTC.

Мы выпустили Lisk Mobile 1.2.1. Эта версия включает в себя патч, который устраняет сбой в приложении, с которым столкнулись некоторые пользователи при удалении интеграции BTC. В этом выпуске интеграция BTC может быть добавлена ​​и удалена без каких-либо неожиданных действий.

Lisk 1.3.0 находится в разработке, включает в себя различные улучшения производительности и пользовательского интерфейса.

Последние несколько недель мы работали над последней версией Lisk Mobile 1.3.0. Эта версия будет содержать ряд исправлений ошибок и улучшений, которые улучшат взаимодействие с пользователем. Эти изменения включают улучшенное поведение дополнительной кнопки клавиатуры на iPhone X, улучшение производительности благодаря обновлению библиотеки навигации и несколько других изменений пользовательского интерфейса. Мы также потратили это время на улучшение качества кода проекта.

Задача Lisk - позволить вам создавать децентрализованные, эффективные и прозрачные блокчейн-приложения. Присоединяйтесь к нам: