-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Producer incoming-transaction-queue-size-mb #7380
Conversation
…ming transaction queue and throw tx_resource_exhaustion if exceeded.
deadline = block_deadline; | ||
} | ||
const auto& id = trx->id(); | ||
if( fc::time_point( trx->packed_trx()->expiration()) < block_time ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we used to do this check first, is there concern that block_time
may move backwards? otherwise this seems like it may store an expired transaction in the _pending_incoming_transaction
queue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh, I'm incorrect it was always in this order. But perhaps we should swap these now such that we check expiration before storing on the pending list.
Same with other early outs like is_known_unexpired_transaction
. I am relatively sure that even when faced with forking conditions any transaction that returns true
will end up on the unapplied transactions list and therefore not need to be duplicated in our pending queue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left it that way because pending_block_time
is not available if !chain.is_building_block()
. Changed it to use either pending block time or head block time.
Change Description
producer_plugin
incoming-transaction-queue-size-mb
so that incoming transactions can be rejected withtx_resource_exhaustion exception
when queue is full.Consensus Changes
API Changes
Documentation Additions