Skip to content

Instantly share code, notes, and snippets.

@theStack
Last active March 27, 2024 14:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save theStack/d5e40876d6a60bb423c5379ad6d24911 to your computer and use it in GitHub Desktop.
Save theStack/d5e40876d6a60bb423c5379ad6d24911 to your computer and use it in GitHub Desktop.
PR28970 review notes
summary for #28970:
let's assume we have a 1p1c-package consisting of low-feerate parent tx_p
and high-feerate child tx_c. a node receives this package in form of two
single tx messages, tx_p and then tx_c.
to my current understanding, the following happens on this receiving node:
on master:
1) tx_p is received -> rejected with state TX_RECONSIDERABLE (fee-rate too low)
2) tx_p is added to the recent_rejects filter
3) tx_c is received -> rejected with state TX_MISSING_INPUTS, kept in orphanage
4) tx_p is NOT requested, as it's considered as "already have" (due to being in the recent_rejects filter) /o\
on #28970:
1) tx_p is received -> rejected with state TX_RECONSIDERABLE (fee-rate too low)
2) tx_p is added to the (newly introduced) recent_rejects_reconsiderable filter
3) tx_c is received -> rejected with state TX_MISSING_INPUTS, kept in orphanage
4) tx_p *IS* requested, as the new request logic doesn't consider txs in the
recent_rejects_reconsiderable filter as "already have"
5) tx_p is received -> tx_p is found to be in the recent_rejects_reconsiderable filter,
look for a matching child in the orphanage (call MaybeProcess1P1CPackage)
6) tx_p and tx_c are evaluated as a package \o/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment