Bitcoin Core раскрыл переполнение позиций в undo-файлах: майнер может довести чужой узел до остановки
По раскрытию Bitcoin Core позиции внутри rev*.dat хранились как 32-битные целые, а размер undo-файлов не ограничен: майнер может намайнить блоки с непропорционально большими undo-данными, из-за чего новые записи затирают старые, а файл обрезается. Тогда при реорге узел не может прочитать undo-данные и выключается, перезапуск не помогает; на Windows и 32-битных системах узел падает уже при записи, без реорга, и не стартует после перезапуска. Источник относит проблему к Low severity и считает эксплуатацию на 64-битных системах практически нереализуемой (нестандартные транзакции, тысячи блоков, точное попадание в раскладку файлов конкретного узла). Исправление — 64-битные позиции и 64-битные вызовы позиционирования на Windows — вышло в 29.5, 30.4, 31.2 и 32.1; формат на диске не изменился. 32-битные системы и узлы, чей каталог блоков лежит на FAT32, по сообщению остаются затронутыми и после обновления.
Операторам узлов Bitcoin Core: если этих исправлений в установке нет — обновитесь на 29.5, 30.4, 31.2 или 32.1 по своей ветке в обычном порядке; уже исправленным установкам действий не нужно. Обновление не закрывает проблему на 32-битных системах и там, где каталог блоков на FAT32 — по описанию источника узел всё равно останавливается при достижении лимита файла; для FAT32 перенесите каталог блоков на файловую систему без ограничения 4 ГиБ. Если узел уже не стартует из-за испорченных undo-данных, источник указывает восстановление через -reindex на исправленной версии.
Источник: bitcoincore.org
Оповещение оказалось полезным? Поддержи проект!
Не пропусти следующее оповещение.