The lifecycle of a preconf transaction on Taiyi
PreconfRequest
PreconfRequest
to the Preconfirmer
. This request can be either complete (with transaction calldata) or partial (without calldata).
Preconfirmer
validates requestPreconfirmer
checks the validity of the received request, including verifying the user’s balance in the escrow contract.
Preconfirmer
signs PreconfRequest
Preconfirmer
signs the PreconfRequest
to indicate its approval.
Preconfirmer
waits until the specified target slot is reached, then perform the following steps, depending on whether the user has supplied transaction calldata:
PreconfRequest
, the following steps occur:
Preconfirmer
calls batchSettleRequest
Preconfirmer
calls the batchSettleRequest
function on the LubanCore
contract to process the complete request.
batchSettleRequest() function
Preconfirmer
submits transaction calling batchSettleRequest
Preconfirmer
submits the transaction that calls batchSettleRequest
to the Relay
for inclusion in a block.
PreconfRequest
without transaction calldata, the process differs:
Preconfirmer
calls exhaust
functionPreconfirmer
calls the exhaust
function on the LubanCore
contract to process the partial request.
exhaust() function
Preconfirmer
submits transaction calling exhaust
functionPreconfirmer
submits the transaction that calls the exhaust
function to the Relay
.
Relay
broadcasts the transaction constraints to Block Builder
s. This step is part of the Ethereum consensus mechanism.
Block Builder
s attempt to construct a block that satisfies the given constraints. This is part of the Ethereum block production process.
Block Builder
s submit their constructed blocks as bids to the Relay
. This is part of the competitive block production process in Ethereum.
Relay
chooses the most profitable block bid from the submitted bids. This selection process ensures the most economically viable block is chosen.
Relay
shares the selected block header with the Validator
for signing.
Validator
signs the block header, validating its contents.
Relay
proposes the selected and signed block to be added to the blockchain. This completes the block production process and adds the preconf transaction to the Ethereum blockchain.