Pregunta 7

p2p: Replace per-peer transaction rate-limiting with global rate li...

> 17/04/2026 15:41
Pregunta 7 -> Cuando una transacción llega, el código decide si va por “immediate relay” o al backlog global. ¿Cómo funciona ese backlog? ¿Qué pasa con una transacción que cae en el backlog? ¿Cuándo y cómo se drena?
24/04/2026 16:55
💯
Kepler 24/04/2026 16:55
Si no hay nada en el backlog y los buckets tienen margen, o sea: total-size bucket (cunatos bytes puedes enviar, puede llegar a -50kB) is >= 0 y per-tx bucket (cuantas tx puedes enviar. Por cada una se resta 1 hasta llegar a 0) is >= 1 se hace “inmediate relay”.
kruxelizea 24/04/2026 16:55
Si Tockens > 0 este va automáticamente a inmediate relay de otro modo va al backlog es como una lista de espera tengo entendido que es FIFO, mientras llega token van respondiendo las transacciones, tengo entendido que se drena por antigüedad/menor fee ¿correcto?
Kepler 24/04/2026 16:56
Yo entiendo que se drenan cuando se van de la mempool. no?
24/04/2026 16:56
Porque simepre estamos ordenando por prioridad de minado
Pol Espinasa 24/04/2026 16:57
Para no ir al backlog e ir directamente a los m_tx_inventory_to_send el backlog debe estar vacio. Para no adelantar a transacciones que ya estan esperando. Tambien debe haber almenos un token y el tamaño del bucket no debe ser 0.
Kepler 24/04/2026 16:57
Yo entiendo que en el backlog iteramos y si tx no es duplicada añadimos la tx a las invtosend queues, la eliminamos del backlog y restamos del total size bucket el tx size. Si cae por debajo de -50kB paramos
👍 1
Pol Espinasa 24/04/2026 16:58
Si hay suficientes tokens se ordena el backlog por feerate y se seleccionan las N mejores. Si alguna tx ya no esta en la mempool se ignora y se borra del backlog. Si no se pueden procesar todas las transacciones, el restante vuelve al backlog.
👍 2
24/04/2026 16:58
Y creo que se hace por batches y no 1 a 1
arejula27 24/04/2026 16:58
si, es por batches
👍 1
Pol Espinasa 24/04/2026 16:58
pero no estoy seguro jeje no he tenido tiempo a hacer un review muy extenso
> 24/04/2026 16:59
se drenan en CatchupRelayTransactions
👍 1
24/04/2026 16:59
que se llama en SendMessages al principio
👍 1
24/04/2026 17:01
y no es FIFO, se ordena con SortMiningScoreWithTopology
🫡 1
24/04/2026 17:02
Y puede pasar que immediate_relay te va a devolver false aun si tokens > 0
24/04/2026 17:03
Bueno avancemos a la ultima pregunta chicos!!
👍 2