pr-34075
fees: Introduce Mempool Based Fee Estimation to reduce overestimation
- Introducción
- Pregunta 1¿Qué problemas tiene la manera actual en que calculamos las fees con
CBlockPolicyEstimator? - Pregunta 2En el commit e61ffe0 se limita el uso del struct
FeeCalculationy se introduce el structGetMinimumFeeRateResult. ¿Por qué este cambio? ¿Qué información faltaba o sobraba? - Pregunta 3En el commit 579261c se crea
FeeSource. ¿Por qué es necesario ese struct y cuál es la diferencia conFeeReason? - Pregunta 4¿Por qué en el commit 04aae1e se evita que el test utilice la mempool?
- Pregunta 5En el commit d53001e se introduce la clase
FeeRateEstimatorManager. ¿Cuál es el papel de esta clase? ¿Por qué esta clase heredaCValidationInterface? - Pregunta 6En el commit db99be se introduce el nuevo estimator:
MemPoolFeeRateEstimator. ¿Cómo calcula la fee este nuevo estimator? ¿En qué casoCalculatePercentilesno puede calcular la fee? ¿Qué se hace entonces? - Pregunta 7En el commit ff51bb2 se añade una caché para el
mempoolfeerateestimator. ¿Por qué es importante tener esta caché? ¿Qué condiciones hacen que se vuelva a calcular de nuevo? - Pregunta 8En el commit 2303657 se modifica
MempoolTransactionsRemovedForBlockenvalidationinterfacepara incluir también las transacciones del propio bloque. ¿Por qué elMemPoolFeeRateEstimatornecesita las transacciones del bloque y no solo las de la mempool? - Pregunta 9¿Qué está mirando la función
IsMempoolHealthy? ¿Qué pasa cuando hay un fork? - Pregunta 10En
FeeRateEstimatorManager::GetFeeRateEstimatese combina el estimate delCBlockPolicyEstimatorcon el delMemPoolFeeRateEstimator. ¿En qué condiciones se devuelve cada estimador? ¿Qué pasa si el mempool estimator retorna un error o la mempool no está sana?