Learn more about the Bootloader that processes all transactions on Abstract.
The bootloader system contract plays several vital roles on Abstract, responsible for:
Validating all transactions
Executing all transactions
Constructing new blocks for the L2
The bootloader processes transactions in batches that it
receives from the VM and puts
them all through the flow outlined in the
transaction flow section.
As the bootloader receives batches of transactions from the VM, it sends the information
about the current batch to the SystemContext system contract
before processing each transaction.
As each transaction is processed, it goes through the flow outlined
in the gas fees section.
At the end of each batch, the bootloader informs the L1Messenger system contract
for it to begin sending data to Ethereum about the transactions that were processed.
In addition to the bootloader itself, there is an additional
BootloaderUtilities system contract
that provides utility functions for the bootloader to use.This separation is simply because the bootloader itself is written in Yul
whereas the utility functions are written in Solidity.