Bootloader
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.
View the source code for the bootloader
View the source code for each system contract.
ZK Stack Docs - Bootloader
View in-depth documentation on the Bootloader.
Bootloader Execution Flow
-
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.
BootloaderUtilities System Contract
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.
Was this page helpful?