Estimación de tiempo negativo a partir de las tarifas estimadas + datos de mempool

Actualmente estoy escribiendo una herramienta de estimación de tiempo para Bitcoin, y me da estimaciones incorrectas, por lo que no estoy seguro de si es precisa y si no estoy cometiendo algún error en la lógica.

Por ejemplo, tengo esta transacción.

https://blockchain.info/tx/388f99d51cfce4f18f0c76257fff7666ffd272394ee0316df529383c6d22ed66

  • Dispone de 10 sat/B (tanto en tamaño virtual como en tamaño real). Tiene 0 ancestros en mempool, todas sus entradas están confirmadas. (todo de getmempoolentryla llamada)

  • Quotesmartfee ​​devuelve 11.089 sat/B para 192 bloques, es decir, 1 día y 8 horas.

  • La transacción se vio hace unos 4 días (nuevamente, según timesu entrada en mempool) y aún no está confirmada.

Eso significa que debería haber sido confirmado hace 3 días. Por lo que su tiempo estimado de confirmación es de -3 días, lo cual es imposible.

¿Qué estoy haciendo mal?

Mis propios candidatos para errores lógicos: podría estar en "revertir" el tiempo atrás desde estimatesmartfee, o mirando timeen la entrada de mempool

Respuestas (1)

La estimación de tarifas es en su mayoría libre de progreso, de la misma manera que esperar bloques de Bitcoin, es decir, la estimación de cuánto tiempo llevará confirmarse a partir de ahora no está relacionada con cuánto tiempo ha estado esperando. Digo principalmente, porque claramente hay ciclos diarios y semanales en la actividad de transacciones que resultan en el hecho de que durante la noche o durante el fin de semana hay mayores posibilidades de ser confirmado.

Aparte de eso, la estimación de tarifas en Core es puramente retrospectiva y solo puede decirle lo que sucedió en el pasado reciente con las transacciones de una tarifa determinada. No puede predecir el futuro. Si 2/3 de la tasa de hash desaparece, como es el caso de la transacción que presentó, entonces es de esperar que podría tomar muchos más bloques de los que la estimación había predicho previamente.

Además, la estimación de la tarifa principal intenta dar una estimación bastante conservadora, por lo que, en teoría, la mayoría de las veces debería confirmarse en menos del número objetivo de bloques. Por lo tanto, puede solicitar estimaciones actuales hasta que encuentre una que sea más baja que la tarifa en cuestión y esto debería darle una idea de cuánto tiempo más podría necesitar esperar, pero nuevamente no puede predecir el futuro.

Lo único definitivo que podría obtener es si sabe que realizó la transacción hace X bloques y si solicita una tarifa estimada para X/2 bloques ahora y la respuesta es menor que la tasa de tarifa que puso en el transacción, entonces es razonable preguntarse por qué su transacción aún no ha sido confirmada.