Initialize your L2
Create the environment needed to setup the L2 and use it to initialize L2 state. Generate secrets, keypairs, set environment variables, update configuration files, and then create initial balance.
Generate JWT secret
Generate a JWT secret that will be used by Geth. Store this secret securely.
Example value below.
Generate Solana keypairs
Generate two new Solana keypairs in rome-apps/docker/keys, called Rhea keypair and Proxy keypair. These keypairs will be used by the Rhea and Light Client services (explained on the next page) to sign and pay for Solana transactions.
Set environment variables
Set Chain ID, Genesis address, and Genesis balance below.
GENESIS_PRIVATE_KEY corresponds to the GENESIS_ADDRESS.
GETH_HOST defines the URL at which the airdrop server will be started.
If you are running on a remote server, set GETH_HOST to your domain name e.g. rollup.testnet.romeprotocol.xyz instead of localhost:3000.
Update Configuration Files
Note: We use the terms "Proxy" and "Light Client" interchangeably.
Check Solana Slot
Check the Solana slot, and update start_slot in proxy-config.yml and rhea-config.yml (located in rome-setup/docker/cfg) with current slot.
This slot will be used by Rhea and Light Client (i.e. Proxy) to determine the rollup's current state based on Solana transaction history beginning from the start slot.
Update Rhea Config
Update rhea-config.yml to set chain_id, start_slot, solana_url, geth_engine_secret, and payers.
solana rpc_url is for submitting transactions to Solana. solana_indexer rpc_url is for indexing transactions from Solana.
Update Proxy Config
Update proxy-config.yml to set chain_id, start_slot, solana_url, and payers.
Specifying payers
Specify multiple payers to increase throughput as more transactions can be executed in parallel by having more payers.
Specifying fee_recipients
Specify fee_recipients as Ethereum addresses that will receive L2 native tokens as compensation for executing Solana transactions.
If fee_recipient is not specified, then no L2 native tokens are transferred for compensation.
Specify multiple fee_recipients to increase throughput as more transactions can be executed in parallel by having more fee recipients.
Create Initial Balance
This step synchronizes initial balances of EVM contract with initial balances of OP Geth. Only the rollup owner is able to invoke this step.
Airdrop SOLs to rollup owner using https://faucet.solana.com so it can execute this transaction. If you are having problems with airdrop, contact us on our Discord or Telegram.
Then, run the following command:
If you see an error saying "Error: RomeEvmError: Signer not found, or more than one signer was found", then make sure the airdrop worked and rollup owner keypair has sufficient balance.
Last updated