Да... И еще - для чего используется локальный пул неподтвержденных транзакций?
Потому что каждый узел вообще говоря обязан проверять корректность транзакций и не пересылать ничего лишнего.
То есть у тебя, допустим, 8 пиров.
Получаешь от одного из них транзакцию, которая до этого была неизвестна тебе.
Сохраняешь её у себя в пуле и остальным 7 своим пирам говоришь, что у тебя есть новая транзакция.
Они могут у тебя её запросить. А могут и не запросить, если уже получили другим способом
По идее никто не требует, чтобы твой пул неподтвержденных транзакций был бы какого-то конкретного размера.
Можешь не хранить ничего. И другим не пересылать. Никто не запрещает в принципе.
Колхоз - дело добровольное.
Если текущий узел занимается майнингом, он включает транзакции в свой блок (кстати, как он при этом выбирает какие именно транзакции включать в блок?).
Как хочет, так и выбирает. Никаких ограничений на комплектность, за исключением формальных правил типа того что если транзакция B тратит выходы транзакции A то нельзя включать в блок транзакцию B если транзакция A не была включена до этого (в том числе и в данный блок).
Поэтому могут быть блоки из одной транзакции, а могут быть забитыми под завязку.
Как правило, майнеры сортируют транзакции по комиссиям в порядке убывания и включают в блок те, которые имеют комиссию выше заданной. Некоторые пулы задают 0.0001 за килобайт, некоторые 0.00001, некоторые еше меньше
Они все всегда на нем хранятся? Или хранятся только до момента подтверждения, а потом стираются?
Хранить все транзакции никто не будет.
Существуют транзакции, которые практически стопроцентно никто в блок не включит.
Ноды их и не хранят.
В общем правило такое - если ты принял транзакцию, она вроде как тебя устраивает - то ты сообщаешь своим пирам о ней и хранишь ее какое-то время чтобы они могли её у тебя попросить. Если ты не майнер - можешь дропать её через пять минут.
Конечно, если ты увидел транзакцию в блоке - то смело дропай её из мемори-пула - зачем лишнюю память занимать?