
14 сентября команда специалистов Bitcoin Core опубликовала первый релиз-кандидат v32.0rc1. Обновление изменит механизм оценки комиссий, ускорит валидацию блоков при чтении данных с диска и исправит уязвимость walletnotify. Последняя затрагивает только определенную конфигурацию и требует аутентифицированного RPC-доступа, следует из официального графика и черновика примечаний к версии.
Стабильный Bitcoin Core 32.0 планируют выпустить 10 октября. В опубликованных примечаниях к версии нет изменений правил консенсуса биткоина: речь идет об обновлении клиентского ПО. Оценка комиссий учтет состояние мемпула В Bitcoin Core 32.0 команда изменит работу estimatesmartfee, который помогает определить комиссию для подтверждения транзакции за заданное число блоков.
Сейчас используется оценщик block_policy, основанный на данных уже подтвержденных транзакций; в новой версии к нему добавят mempool_policy, анализирующий текущее состояние мемпула. По умолчанию клиент будет использовать оба алгоритма и возвращать меньшую из двух оценок. Таким образом, новый механизм сможет снизить рекомендуемую комиссию после спада нагрузки, но не повысить ее относительно результата block_policy.
Пользователь сможет явно выбрать один из алгоритмов через параметр fee_rate_estimator. Если новый оценщик не располагает достаточными данными, он вернет ошибку. Такое возможно, например, пока мемпул загружается, после получения недостаточного числа свежих блоков или если его состояние признано неподходящим для надежной оценки.
Разработчики также добавили параллельную предвыборку данных об использованных выходах транзакций (prevouts) при проверке блоков. По умолчанию Bitcoin Core задействует восемь потоков, максимум — 16. Параметр -prevoutfetchthreads=0 отключит функцию. Изменение должно ускорить валидацию блоков прежде всего в ситуациях, когда необходимые данные приходится считывать с диска.
Если они уже находятся в оперативной памяти, эффект будет меньше. Еще одно изменение затронет частично подписанные биткоин-транзакции (PSBT). Команды createpsbt, walletcreatepsbt, converttopsbt и psbtbumpfee по умолчанию начнут создавать PSBT версии 2. При необходимости пользователь сможет выбрать другую через аргумент psbt_version.
Разработчики закрыли уязвимость В Bitcoin Core 32.0 также исправили уязвимость, присутствовавшую в клиенте с версии 24.0. Она затрагивала не-Windows-системы при использовании параметра -walletnotify с плейсхолдером %w. Эта настройка позволяет автоматически запускать заданную оператором команду при появлении связанной с кошельком транзакции.
Аутентифицированный RPC-пользователь с правом создавать кошельки мог задать специально сформированное имя. При последующем уведомлении о транзакции символы внутри названия нарушали экранирование оболочки и при подходящем шаблоне walletnotify позволяли выполнить дополнительную команду от имени процесса Bitcoin Core.