Либо вы проигрываете в скорости, либо в памяти. Других вариантов нет. В первом случае, вы каждый раз принимая решение о включении транзакции в ответ getblocktemplate производите соответствующую проверку. Во втором - вы либо ведете отдельные списки того, что отложено и того, что уже проходило проверку, либо заводите доолнительный несериализуемый элемент данных в классе CTransaction, в котором всё что нужно и храните. Изменять те данные, которые сериализуются, я бы не советовал, так как в случае некорректного восстановления их исходных значений транзакция перестанет быть валидной в подавляющем большинстве случаев.
спасибо
я уже решил этот вопрос
я создал map в котором в оперативке храниться обработанные транзакции
в этом регистре и будут храниться данные не включаемые в сериализуемые элементы
таким образом нода жертвуя памятью сортирует для себя и присваивает транзакциям некие свойства нужные мне не затрагивая CTransaction.