Блокчейн. Принципы и основы | страница 55



Мемпул – это что-то вроде очереди транзакций, ожидающих, пока их включат в блок. Каждый узел самостоятельно определяет размер мемпула, который он будет у себя хранить. Разница между обычной очередью и мемпулом состоит в различной форме приоритизации поступающих на обработку транзакций. Если в обычной очереди данные обрабатываются в зависимости от времени их поступления, то в мемпуле их ранжируют по величине комиссии, которую отправители определили для своих транзакций. Как уже упоминалось, величина транзакционной комиссии устанавливается отправителем самостоятельно, исходя из его пожеланий в отношении скорости включения данной транзакции в ближайшие создаваемые блоки. Поскольку создатель блока забирает всю комиссию по всем включенным в него транзакциям в свою пользу, логично было бы предположить, что он будет в первую очередь включать в блок транзакции с наибольшей комиссией.

Если учесть тот факт, что размер блока в сети Биткоин ограничен одним мегабайтом, а средний размер транзакции составляет около 300 байт, то в один блок можно поместить около 4000 транзакций, что само по себе достаточно немного. Сеть Биткоин настроена таким образом, что каждый новый блок создается примерно один раз в десять минут, поэтому пропускная способность всей сети составляет около семи транзакций в секунду. В периоды повышенной нагрузки на сеть, когда количество транзакций может существенно возрасти, мемпул начинает сильно увеличиваться в своих размерах, в то время как скорость включения транзакций в блоки уменьшается. Поэтому, чтобы транзакция попала в новый блок как можно быстрее, отправители начинают увеличивать комиссию. В декабре 2017 года был отмечен рекордный размер мемпула – около 140 мегабайт, при этом количество транзакций, ожидающих обработки, превысило 200 000. Однако уже спустя полгода напряжение в сети Биткоин существенно снизилось, величина мемпула упала до единиц мегабайт, а комиссия за обработку транзакций вернулась к обычным значениям.

Как уже отмечалось, каждый участник сети, являясь равнозначным по правам с остальными участниками узлов, получает на свое локальное устройство (как правило, это обычный компьютер) всю информацию обо всех блоках и транзакциях сети Биткоин. Поскольку база блоков со временем растет, объем передаваемой для синхронизации информации постоянно увеличивается в размере. Очевидно, что, если узел получил информацию о созданных блоках ранее, ему уже не нужно ее обновлять, поскольку со временем она не меняется. Тем не менее он должен продолжать получать информацию о вновь создаваемых блоках, а также хранить у себя мемпул, куда постоянно поступают новые транзакции, еще не включенные в блоки.