Глоссарий / Транзакции и комиссии
Политика мемпула
Другие названия: Политика ретрансляции.
- Что такое политика мемпула?
- Политика мемпула представляет собой дополнительный набор правил, которые узел применяет, прежде чем принять и передать транзакцию; эти правила строже консенсуса, и их настраивает тот, кто запускает узел.
Консенсус определяет, что блок вправе содержать; политика определяет, что передается дальше заранее. Bitcoin Core ограничивает стандартную транзакцию 400 000 единицами веса и отклоняет все, что платит ниже его порога ретрансляции, и ни один из этих пределов не входит в правила консенсуса. Транзакция может быть совершенно валидной и все равно никуда не уйти.
Как это работает
Политика является второй проверкой, стоящей перед проверкой консенсуса. Транзакция, пришедшая на узел, должна быть валидной, а также должна выглядеть как транзакция того типа, который оператор готов хранить и передавать дальше. Не пройдена первая проверка, и транзакция невалидна везде; не пройдена вторая, и она лишь нежелательна здесь, а для соседнего узла может быть вполне приемлемой.
Настройки по умолчанию в Bitcoin Core охватывают несколько видов ограничений. Правила стандартности определяют, какие типы скриптов передаются, чтобы новые или некорректно сформированные условия расходования не распространялись раньше, чем сеть их поймет. Ограничения размера задают для стандартной транзакции предел в 400 000 единиц веса, то есть четверть блока. Ограничения комиссии задают порог ретрансляции, сниженный с 1 sat/vB до 0,1 в версии 30.0, а также порог пыли для отдельных выходов, который остался на прежней величине 3 sat/vB. Ограничения топологии задают для связанных групп неподтвержденных транзакций предел в 64 членов и 101 килобайт виртуального размера: это правила кластеров, которые в версии 31.0 заменили прежние пределы в 25 предков и 25 потомков.
Каждое из этих чисел является настройкой, а не законом. Оператор может поднять порог ретрансляции с помощью -minrelaytxfee, изменить, сколько данных может нести выход OP_RETURN, с помощью -datacarriersize или запустить Bitcoin Knots, в котором намеренно более строгие настройки по умолчанию. Предел в 83 байта для выходов с данными стал самым громким спором о политике за многие годы и закончился тем, что Bitcoin Core 30.0 поднял значение по умолчанию до 100 000 байт, фактически сняв предел, но оставив -datacarriersize=83 доступным всем, кому нужно прежнее поведение.
Политика также меняется быстрее консенсуса. Полный replace-by-fee стал поведением по умолчанию в Bitcoin Core 28.0 в октябре 2024 года, и тот же выпуск добавил оппортунистическую ретрансляцию родительской и дочерней транзакций вместе; оба изменения вступили в силу сразу после обновления операторами, без какого-либо форка.
Где это заметно
Политика проявляется как сообщение об ошибке от вашего собственного кошелька, задолго до участия какого-либо майнера. Отказы с упоминанием комиссии за ретрансляцию, пылевых выходов, слишком большого кластера неподтвержденных расходов или нестандартного скрипта означают, что говорит политика, и каждый из них значит, что транзакция не была передана ни одному пиру.
Это же объясняет, почему транзакция иногда есть в одном обозревателе и нет в другом. Обозреватели показывают мемпул собственного узла, поэтому транзакция, отфильтрованная политикой этого узла, там невидима, хотя в других местах подтверждается нормально. Майнерам можно отправлять транзакции напрямую через конечные точки отправки, полностью минуя ретрансляцию, и именно так нестандартные транзакции иногда появляются в блоках, никогда не наблюдаясь в ожидании.
Для тех, кто покупает и хранит, практический вывод узок, но полезен. Политика является причиной, по которой кошелек отказывается создавать выход в 300 сатоши, по которой цепочка неподтвержденных расходов в итоге перестает принимать еще одну дочернюю транзакцию и по которой зависшую транзакцию иногда нужно отправить заново, а не повышать ее комиссию.
Политика мемпула vs правила консенсуса
Нарушение правила консенсуса делает блок невалидным, и вся сеть отвергает его навсегда. Нарушение правила политики означает лишь, что ваша транзакция ждет или вообще никуда не идет, оставаясь при этом вполне допустимой для майнинга. Политика также служит местом, где репетируют мягкие форки: новые типы расходования обычно делают стандартными для ретрансляции до активации или вместе с ней, чтобы сеть могла безопасно их передавать. Консенсус является конституцией; политика является внутренним стилем каждого узла.