System Flow
Users send preconfirmation requests to the preconfer
Preconfirmers review, accept, or reject requests based on the conditions and potential profitability.
The preconfer simulates the
tipTx
by calling a designated function on the LubanCore contract to check if the user has sufficient locked funds in the LubanEscrow.The preconfer assesses the risk and profitability based on the base fee forecast algorithm and the requested block number.
The preconfer forwards the preconf request, along with other metadata, to the opt-in proposer via Commit-Boost to request proposer signature.
If accepted, the preconfer signs the
initSignature
and populates thepreconferSignature
field to signal commitment. The proposer also signs theinitSignature
and populates theproposerSignature
field:Before the specified block number, the preconfer can call the
exhaust()
function to void the commitment and protect against user griefing or transactions exceeding the gas limit.The
exhaust()
function iteratively burns the gas that would have been required to execute the user's transaction.Calling
exhaust()
only allows the preconfer to receive theprePayment
, forgoing theafterPayment
.Users should ideally share the
preconfTx
with the preconfer sufficiently early to avoid the preconfer calling theexhaust()
function6 seconds into the block, the preconfer should share the entire list of
preconfTx
for the current block to a Commit-Boost aware relay:With the full list of
preconfTx
, the relay should only accept blocks that contain thepreconfTx
.The challenge mechanism works as before, with the exception that calling the
exhaust()
function exempts a preconfer from being slashed.
Sample PreconfRequest
Smart Contract Interface
Last updated