You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since IntersectMBO/ouroboros-consensus#1175, the Mempool needs to be able to run all size-related checks (tx byte size, execution units, ref scripts) separately from (namely before) regular tx validation. Currently, this logic is implemented in Consensus (in Ouroboros.Consensus.Shelley.Ledger.Mempool, but this rather belongs into the Ledger, where it can be shared with the regular tx validation.
The text was updated successfully, but these errors were encountered:
)
With the previous logic, a tx that has less than `perTxOverhead = 4`
bytes less than the max tx size will be rejected by the mempool even
though it is perfectly valid. This bug was introduced in #1175.
This behavior could be rather surprising for users who create a big (but
not too big) tx and then can't submit it to any node.
The fix is to use the "raw" size (without adding `perTxOverhead`) for
the check, but to still add `perTxOverhead` when returning the
`TxMeasure`.
Related: This code shouldn't live in Consensus (also see the module
header), cf IntersectMBO/cardano-ledger#4820.
Since IntersectMBO/ouroboros-consensus#1175, the Mempool needs to be able to run all size-related checks (tx byte size, execution units, ref scripts) separately from (namely before) regular tx validation. Currently, this logic is implemented in Consensus (in
Ouroboros.Consensus.Shelley.Ledger.Mempool
, but this rather belongs into the Ledger, where it can be shared with the regular tx validation.The text was updated successfully, but these errors were encountered: