Таким образом, вы хотели бы показать сделки, которые не были валидацию для пользователя, прежде чем они будут проверены?
Сделка не является действительной, если его не имеет в качестве своих входов ссылки на действительные неизрасходованные результаты предшествующих операций. Вы не можете проверить, что предыдущие выходы существуют и неизрасходованные, пока вы не убедитесь, что они существуют в предыдущем блоке, и они не были израсходованы в предыдущем блоке.
Пока здесь, я не согласен, клиента, в отличие от полного узла, не должен проверить, если предыдущий TxOut существует.
Я считаю, что он может просто доверять то, что блоки отправляется к нему, если он принадлежит к самой длинной цепи. (Делает более длинную цепь с поддельными сделками слишком трудно слишком отставать очень долго)
Но я согласен, что это не приемлемо для полного узла.
Таким образом, вы могли бы начать с вершины вниз, но это не было бы быстрее, требует меньше обработки, или использовать меньшую пропускную способность. Также возможно вредоносные узлы кормить вас короткой (меньше работы) цепью. Они не могут украсть у вас, но это возможный способ DOS сети. Клиенты закалены против что закодированных контрольно-пропускных пунктов, что ограничивает количество ресурсов, которые могут быть потрачены впустую. Однако работать с конца цепи в обратном направлении будет удалить эту защиту. Если мой узел объявляет I моей длинная цепь имеет высоту 9873972139821378923728932738912 блоков, которые вы собираетесь делать много поддельных подтверждать.
Правда, я не думаю об этом случае, это, кажется, ответить на мой вопрос.
Единственное, что можно было бы сделать, чтобы сделать полные узлы также действуют (по желанию) в качестве SPV узла во время начальной загрузки. Таким образом, в то время как вы строите и проверку blockchain в фоновом режиме, вы по-прежнему иметь баланс, уведомление ОГО, а также возможность проводить как SPV клиента очень быстро (просто нужно blockheaders).
Я думал, что Merkle фильтр просто ретранслировать фильтрация транзакций. После прочтения вашего ответа, я снова проверил BIP37, и заметил, "merkleblock" сообщение, которое окончательно предложить хорошее решение.
Я только слышал, что напротив клиент (сервер) может дать вам совершенно иной blockchain и вы не в состоянии проверить его, пока вы не загрузите весь blockchain, чтобы соответствовать первому блоку генеза. С другой стороны, вам не нужно загружать все осиротевшие блоки.
Да это вектор DOS, что DeathAndTaxes говорить, я не ожидал, что.