В сообществе 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) не обрезаете и используете столько же памяти, как и раньше. Наше решение состоит в том, чтобы загружать заголовки и блоки более "синхронно", это приведет к тому, что заголовки не смогут слишком сильно опережать блоки, как это было раньше.
Обрезав некоторые из этих ненужных полей из заголовков, хранящихся в памяти, мы смогли снизить общий расход памяти. Данные на диске остаются неизменными, позволяя пользователям свободно переходить от одного параметра к другому.
Присоединяйтесь к сообществу 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.
Мы с нетерпением ждем ваших вопросов и надеемся на интересную беседу!