Post
Topic
Board Кодеры
Re: Распространение данных в p2p сети
by
amaclin
on 22/04/2015, 16:35:46 UTC
Да... И еще - для чего используется локальный пул неподтвержденных транзакций?
Потому что каждый узел вообще говоря обязан проверять корректность транзакций и не пересылать ничего лишнего.
То есть у тебя, допустим, 8 пиров.
Получаешь от одного из них транзакцию, которая до этого была неизвестна тебе.
Сохраняешь её у себя в пуле и остальным 7 своим пирам говоришь, что у тебя есть новая транзакция.
Они могут у тебя её запросить. А могут и не запросить, если уже получили другим способом

По идее никто не требует, чтобы твой пул неподтвержденных транзакций был бы какого-то конкретного размера.
Можешь не хранить ничего. И другим не пересылать. Никто не запрещает в принципе.
Колхоз - дело добровольное.

Quote
Если текущий узел занимается майнингом, он включает транзакции в свой блок (кстати, как он при этом выбирает какие именно транзакции включать в блок?).
Как хочет, так и выбирает. Никаких ограничений на комплектность, за исключением формальных правил типа того что если транзакция B тратит выходы транзакции A то нельзя включать в блок транзакцию B если транзакция A не была включена до этого (в том числе и в данный блок).
Поэтому могут быть блоки из одной транзакции, а могут быть забитыми под завязку.
Как правило, майнеры сортируют транзакции по комиссиям в порядке убывания и включают в блок те, которые имеют комиссию выше заданной. Некоторые пулы задают 0.0001 за килобайт, некоторые 0.00001, некоторые еше меньше

Quote
Они все всегда на нем хранятся? Или хранятся только до момента подтверждения, а потом стираются?
Хранить все транзакции никто не будет.
Существуют транзакции, которые практически стопроцентно никто в блок не включит.
Ноды их и не хранят.
В общем правило такое - если ты принял транзакцию, она вроде как тебя устраивает - то ты сообщаешь своим пирам о ней и хранишь ее какое-то время чтобы они могли её у тебя попросить. Если ты не майнер - можешь дропать её через пять минут.
Конечно, если ты увидел транзакцию в блоке - то смело дропай её из мемори-пула - зачем лишнюю память занимать?