Сатоши разработал Bitcoin так, чтобы узлы выбирали правила консенсуса, а майнеры выбирали транзакции. Но обе функции изначально были интегрированы в одно программное приложение. При всем гении Сатоши, он не был особенно хорошим архитектором программного обеспечения, и с течением времени эти две функции были разделены.
Этот раскол в вопросах вызвал много путаницы с тех пор. Некоторые люди в прошлом пытались заставить майнеров выбирать правила консенсуса. UASF продемонстрировал, что это не работает. Попытка заставить узлы выбирать транзакции — это противоположная ошибка. И это тоже не работает.
Узлы также заботятся о использовании ресурсов и предотвращении атак типа DoS. По этим причинам узлы применяют свои собственные политики мемпула, такие как максимальный размер мемпула, лимит пыли и т. д... Узлы пытаются предсказать, что будет добыто, не позволяя своему мемпулу переполниться.
В идеале все узлы имеют одинаковый мемпул. Тогда, когда новый блок добывается, компактные блоки позволяют ему быстро распространяться по сети, поскольку узлы уже имеют транзакции в своем мемпуле и не нуждаются в их повторной загрузке.
На практике мемпулы будут различаться. Узлы, которые более точно предсказывают следующий блок, гораздо быстрее распространяют блоки. Узлы, чей мемпул существенно отличается от блока, должны будут загрузить все транзакции и проверить их, прежде чем смогут передать блок.
Таким образом, функция фильтрации мемпула на узлах по своей сути является предсказательной, а не запретительной. Насколько бы некоторые ни хотели, чтобы это было иначе, именно так работает протокол.
Таким образом, функция фильтрации мемпула на узлах по своей сути является предсказательной, а не предписывающей. Насколько бы некоторые ни хотели, чтобы это было иначе, именно так работает протокол.
63,29K