CategoryBitcoin
Date
Bitcoin news

Разработчики перешли к финальному тестированию Bitcoin Core 32.0

В пятницу, 14 сентября, команда Bitcoin Core объявила о публикации первого релиз-кандидата версии 32.0 (32.0rc1). В этом обновлении внесены изменения, которые не затрагивают правила консенсуса, но значительно улучшают клиентское программное обеспечение. Планируется выпуск стабильного релиза 10 октября.

Новый механизм оценки комиссий

Для расчёта рекомендуемой комиссии для транзакций добавлен алгоритм mempool_policy, который анализирует текущее состояние мемпула, в дополнение к уже существующему block_policy. По умолчанию клиент будет использовать оба подхода и выдавать меньшую из двух оценок, что позволяет снизить комиссию при низкой загрузке сети. Пользователь может явно задать нужный алгоритм через параметр fee_rate_estimator. Если оценщик не имеет достаточных данных (например, в момент загрузки мемпула или при недостаточном количестве свежих блоков), он вернёт ошибку.

Ускорение валидации блоков

При проверке блоков включена параллельная предвыборка данных о ранее использованных выходах (prevouts). В стандартной конфигурации задействовано восемь потоков, максимум можно поднять до шестнадцати, а отключить можно, установив -prevoutfetchthreads=0. Это особенно заметно, когда чтение нужных данных приходится выполнять с диска; при наличии данных в оперативной памяти эффект будет меньше.

Обновление работы с частично подписанными транзакциями (PSBT)

Команды createpsbt, walletcreatepsbt, converttopsbt и psbtbumpfee по умолчанию создают PSBT версии 2. При необходимости пользователь может выбрать другую версию через аргумент psbt_version.

Устранение уязвимостей

  • Уязвимость walletnotify. В версиях до 32.0 у пользователей с правом создавать кошельки, использующих -walletnotify %w, можно было задать имя кошелька, содержащее специальные символы, которые нарушали бы экранирование оболочки, и тем самым выполнить произвольную команду. Исправлено: теперь имя кошелька обрабатывается буквально.
  • Проблема HTTP-сервера. При работе нового HTTP-сервера клиент мог посылать данные без ограничения их объёма, если сервер уже обрабатывал запрос, что приводило к бесконтрольному росту памяти. Сервер теперь не читает новые данные до завершения обработки текущего запроса, а входящий поток ограничивается механизмом TCP.

Оптимизация индекса txindex

Обновлённая версия сократит объём индекса транзакций txindex более чем вдвое после полной пересборки. Существующие индексы останутся совместимыми, но для экономии места их нужно пересобрать заново.

Запуск стабильного релиза

Стабильный выпуск Bitcoin Core 32.0 запланирован на 10 октября. Он будет включать все перечисленные улучшения и исправления, а также более эффективную работу клиентского ПО без изменения правил консенсуса.