right now we call chain.processExecutionPayload() in 3 places:
- when receiving an envelope
- when receiving a gloas DataColumnSidecar (and there could be 128 of them)
- when import block
and inside the queue, we ignore it if data is not complete, this is not idea
instead of that we can do similar flow to BlockInput
only call chain.processExecutionPayload() when we receive an envelope, no need to wait for all data in the queue
inside importExecutionPayload() we await for a new function verifyPayloadDataAvailability() similar to verifyBlocksDataAvailability()
this new function can then be used for sync services too
Originally posted by @twoeths in #8938 (review)
right now we call
chain.processExecutionPayload()in 3 places:and inside the queue, we ignore it if data is not complete, this is not idea
instead of that we can do similar flow to BlockInput
only call
chain.processExecutionPayload()when we receive an envelope, no need to wait for all data in the queueinside
importExecutionPayload()we await for a new functionverifyPayloadDataAvailability()similar toverifyBlocksDataAvailability()this new function can then be used for sync services too
Originally posted by @twoeths in #8938 (review)