Pregunta 4

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

> 17/04/2026 15:39
Pregunta 4 -> En el commit 94d2027 se cambia m_tx_inventory_to_send de std::set<Wtxid> a std::vector<Wtxid>. ¿Qué se gana y qué se pierde? ¿Cómo se manejan los duplicados ahora?
24/04/2026 16:29
Continuamos!
arejula27 24/04/2026 16:29

La inserción de transacciones es mas rápida o(1) frente a un set o(logn), cuando queremos iterar en el vector es gratis, el el set es mas costos.

No veo como se maneja los duplicados

👍🏻 1
Kepler 24/04/2026 16:30
Los duplicado se manejan cuando se llama a SortMiningScoreWithTopology
24/04/2026 16:30
creo que ahi se eliminan si hay algun duplicado
👍 1
arejula27 24/04/2026 16:31
si, eso intuyo, los duplicado estaran juntos
Pol Espinasa 24/04/2026 16:32
+1 a @arejula27
en cuanto a duplicados creo que se manejan de dos formas distintas.
Cuando se va a insertar sin pasar por el backlog hay un filtro para ver si estamos añadiendo transacciones que ya conocidas pro el peer.
En el ciclo de “send” hay un condicional para evitar duplicaods en caso que SortMiningScoreWithTopology devuelva el mismo wtxid. Lo cual creo que solo puede pasar si se inserto dos veces pasando por el backlog. Quizas @aj puede confirmar esto ultimo.
❤️ 2
aj 24/04/2026 16:34
Solo añades a la lista cuando aceptas un mensaje en el mempool, que solo se hace una vez, así que no hay duplicados de esa manera; o cuando manualmente “sendrawtransactions” por RPC — en cuyo caso los duplicados son algo culpa tuya. Así que solo intenta evitar enviar los duplicados realmente, en lugar de preocuparte demasiado por tener entradas duplicadas en el backlog.
👍 3
> 24/04/2026 16:35
se eliminan mas adelante cuado estás armando el vInv que es el vector que finalmente se pushea al peer
👍 1
aj 24/04/2026 16:36
(esta parte del código es complicada y puede que no sea la mejor forma de hacerlo)
> 24/04/2026 16:38
Perfecto
24/04/2026 16:38
Creo que esta acá quedó clara, avanzamos a la siguiente!
🔥 3
Pol Espinasa 24/04/2026 16:38
yep, go next 🙂