Elements 22.1.1: Оптимизируйте ваш узел для установки облегченного оборудования своими руками
Elements Liquid Network

Elements 22.1.1: Оптимизируйте ваш узел для установки облегченного оборудования своими руками

Blockstream Team

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

В версии 21.1.1 внутренние бенчмарки показывают сокращение использования памяти на более чем 50% при запуске liquidv1. Уменьшив размер некоторых больших полей заголовков, хранящихся в памяти, мы смогли уменьшить общий расход памяти. Благодаря этим новым оптимизациям, мы уверены, что теперь пользователи могут использовать полный стек Биткоина (т.е. узлы Биткоина, Core Lightning и Liquid) одновременно на устройстве, мощность которого, не превышает Raspberry Pi на 8 ГБ.

Elements 22.1.1 также содержит обновления и мелкие исправления, в том числе:

  • Правильные справочные сообщения для getsidechaininfo RPC и testproposedblock
  • Скрытие неясных полей RPC mainchain в журналах
  • Возможность развертывания сетей Regtest с привязками Pay-to-Witness-Script-Hash (P2WSH)
  • Исправление недостатка при операциях с блоками, когда блоки опережают заголовки

Команда также внесла несколько изменений в активы через elements-qt, в том числе сделала так, чтобы при выборе "использовать доступный баланс" сохранялся выбранный актив, а не возвращался к L-BTC, установленному по умолчанию.

Чтобы разобраться в тонкостях релиза, просмотрите полный журнал изменений и расскажите нам, что вам нравится или что мы могли бы улучшить, связавшись с нами на странице Developers сообщества Build On L2 (BOL2).

Оптимизация Elements (все в заголовках)

Мы хотели бы подробнее рассказать об оптимизациях, которые позволили уменьшить расход памяти в Elements 21.1.1.

В рамках модели, унаследованной от Bitcoin Core, все заголовки блоков (метаданные блока) в Elements постоянно хранятся в памяти. В Биткоине эти заголовки относительно малы, поэтому они не оказывают сильного влияния, но в Elements заголовок намного больше из-за более быстрого, одноминутного времени генерации блока, информации о DynaFed и о подписи блока. В настоящее время блокчейн Liquid (liquidv1) содержит примерно в 3 раза больше блоков, чем Биткоин.

При использовании нового параметра trim_headers (см. PR #1190) мы удалили некоторые из более крупных полей заголовков, чтобы снизить общий расход памяти, но только после того, как пройдет достаточно времени с момента создания блоков, так как вероятность их использования невелика. Это имеет особый эффект во время IBD (начальной загрузки блока), поскольку обычно (в режиме Bitcoin и non-trim_headers) заголовки и блоки загружаются независимо друг от друга, с единственным требованием, чтобы заголовки шли впереди блоков и блоки могли быть проверены при их прибытии; это не совсем подходит для режима trim_headers, потому что вы либо a) обрезаете заголовки и не можете проверить блок, либо b) не обрезаете и используете столько же памяти, как и раньше. Наше решение состоит в том, чтобы загружать заголовки и блоки более "синхронно", это приведет к тому, что заголовки не смогут слишком сильно опережать блоки, как это было раньше.

Обрезав некоторые из этих ненужных полей из заголовков, хранящихся в памяти, мы смогли снизить общий расход памяти. Данные на диске остаются неизменными, позволяя пользователям свободно переходить от одного параметра к другому.

Потребление памяти после синхронизации IBD с тестами, выполненными на 8 ГБ RAM, 4 ГБ Swap VM.

Присоединяйтесь к сообществу BOL2 и запрашивайте новые функции

Платформа Elements остается бесплатной, с открытым исходным кодом для всех желающих создать свое собственное сайдчейн-решение поверх Биткоина. С момента ее первоначального выпуска мы добавили новые опкоды и функции, такие как Confidential Transactions (конфиденциальные транзакции) и Issued Assets (выпущенные активы). Некоторые из этих обновлений Elements были даже реализованы в Биткоине, включая OP_CSV и Segregated Witness (SegWit). Simplicity, язык смарт-контрактов нового поколения, выпуск которого запланирован на конец этого года на Liquid, является еще одним возможным обновлением Биткоина в будущем.

Мы хотим продолжать эту традицию и приветствуем любую обратную связь от Биткоин-сообщества по поводу новых опкодов и функций, которые можно добавить в Liquid. Платформа сообщества Build On L2 (BOL2) – лучший способ связаться с командой разработчиков и пообщаться с другими пользователями Liquid для обсуждения новых идей и проектов.

Позже сегодня руководитель инженерного отдела Liquid Pablo Greco проведет прямой AMA на BOL2 и ответит на все вопросы сообщества о релизе 22.1.1.

Мы с нетерпением ждем ваших вопросов и надеемся на интересную беседу!

If you have specific preferences, please, mark the topic(s) you would like to read: