Pregunta 2

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

> 17/04/2026 15:37
Pregunta 2 -> ¿Cómo es el flujo de relay de una transacción? ¿Podrías describir el camino que sigue una transacción desde que entra a la mempool hasta que se emite vía “INV”?
24/04/2026 16:10
🙂
arejula27 24/04/2026 16:10
  1. Se valida y entra en la mempool
    2. Se encolan en batches
    3. el hilo message handler envia mensajes periodicamente
    4. El peer devuelve las txid de las tx que no conoce
👍 1
24/04/2026 16:11
algo asi?
Pol Espinasa 24/04/2026 16:13

Se mira si se hara un relay inmediato de la transaccion. Se hara relay inmediato en caso que el backlog global este vacio, haya tokens suficientes y no se haya consumido la memoria reservada.
Relay inmediato significa decremantar el numero de tokens y reducir el tamaño de memoria disponible y hacer push de la transaccion al m_tx_inventory_to_send de cada peer. En caso que no se haga relay immediato se hace push de la transaccion al backlog global.

Cada ciclo se llama a CatchupRelayTransactions(), ahi se hace refill de tokens según el tiempo transcurrido. Si hay suficientes tokens, se hace push de las mejores transacciones ordenadas por feerate, teniendo en cuenta el AncestorSet, al m_tx_inventory_to_send de cada peer.

Cada N segundos (dependiendo de si es inbound o outbound) se ordena la m_tx_inventory_to_send de cada peer y se manda al peer.

👍🏻 3
arejula27 24/04/2026 16:13
entiendo que esto se hace por peer, y es e es el problema no?
Kepler 24/04/2026 16:14
Entonces entiendo que antes del pr se guardava un set m_tx_inventory_to_send por cada peer?
24/04/2026 16:15
pero ahora se limita que pones ahi dentro
24/04/2026 16:15
lo demas a la cola global
Kepler 24/04/2026 16:15
vale vale okey ahora lo voy entendiendo
🔥 1 ❤️ 1
> 24/04/2026 16:15
el filtro es el tokenbucket que ya vamos a hablar de ello en la siguiente pregunta 🙂
24/04/2026 16:17
Bueno si no hay nada más que hablar por acá avanzamos a la siguiente!
👍 4