Optimistic Rollups - lukso-network/network-optimism-integration-test GitHub Wiki

General description

Optimistic rollup works as follows: Anyone may commit to a side chain block permissionlessly, posting the entire block on-chain as calldata to be authenticated (i.e., Merkleized) and a bond. A new side chain block can only extend the tip of the side chain, which the on-chain contract keeps track of (in simplest terms, the contract runs a light client of the side chain, keeping side chain block header hashes in storage). Side chain blocks are finalized after a long delay (a system parameter, but should be quite long e.g., a week or two), which returns the bond. Withdrawals are initiated on the side chain, and can be completed through a non-interactive inclusion proof against a finalized side chain block. If a side chain block is invalid and not finalized, it, and all subsequent blocks, can be orphaned by submitting a non-interactive fraud proof, rolling back the tip of the chain and burning half the bonds and rewarding the other half to the fraud prover. All together, this allows a trust-minimized two-way bridge of funds.

Docker-compose

  1. Deployer: https://github.com/ethereum-optimism/contracts-v2
  2. Batch submitter: /packages/batch-submitter/exec/run-batch-submitter.js from https://github.com/ethereum-optimism/optimism-monorepo
  3. Geth L2: https://github.com/ethereum-optimism/go-ethereum
  4. Hardhat: https://github.com/silesiacoin/hardhat

Full contracts list to run Optimistic Rollups

deployer_1         | {
deployer_1         |   "AddressManager": "0x3e4CFaa8730092552d9425575E49bB542e329981",
deployer_1         |   "OVM_Sequencer": "0x0E0E05Cf14349469ee3B45dc2fcE50E11B9449B8",
deployer_1         |   "Deployer": "0x023fFdC1530468eb8c8EEbC3e38380b5bc19Cc5d",
deployer_1         |   "OVM_L1CrossDomainMessenger": "0x3C67B82D67B4f31A54C0A516dE8d3e93D010EDb3",
deployer_1         |   "Proxy__OVM_L1CrossDomainMessenger": "0xE08570AF306057221ed7F377a10009a111396748",
deployer_1         |   "OVM_CanonicalTransactionChain": "0x6418E5Da52A3d7543d393ADD3Fa98B0795d27736",
deployer_1         |   "OVM_StateCommitmentChain": "0x9934FC453d11334e6bFbE5D3856A2c0E917D26f1",
deployer_1         |   "OVM_DeployerWhitelist": "0x6F239103bD7d869FE983215B009A3544C9640b60",
deployer_1         |   "OVM_L1MessageSender": "0x16Af4Db6548234c6463Ad6F0cf355260E96E741b",
deployer_1         |   "OVM_L2ToL1MessagePasser": "0x5736b4030Dc0A2aEC72c42C5f1b937E8CAFe46CE",
deployer_1         |   "OVM_SafetyChecker": "0xa45cE0Ea52b81c2e578A70f8417f066B6903b5E7",
deployer_1         |   "OVM_ExecutionManager": "0xcdB44B1EC9F2aDd7740EeAc4701c928B80727469",
deployer_1         |   "OVM_StateManager": "0x5bD12f0B56C8973ac98446435E07Df8311Aa362c",
deployer_1         |   "OVM_StateManagerFactory": "0xA6404B184Ad3f6F41b6472f02ba45f25C6A66d49",
deployer_1         |   "OVM_FraudVerifier": "0xcF76fd262F9105a69A2AFe66aE11fc6930A267e7",
deployer_1         |   "OVM_StateTransitionerFactory": "0xeB4cbbCE5B52ca1b167898dac418da2C68ca9c01",
deployer_1         |   "OVM_ECDSAContractAccount": "0x50Ec78369D8C391b1e8e636680f5B240921408B7",
deployer_1         |   "OVM_SequencerEntrypoint": "0x7C9b37e50Ea69eB033216A3dce5e758Af086c2b4",
deployer_1         |   "OVM_ProxySequencerEntrypoint": "0x16aB7a77057AaF5ac5dAC5Fc8CC1F19A89F20d33",
deployer_1         |   "mockOVM_ECDSAContractAccount": "0xB0DA7F0a2F77C49e874FAB35533537c978A661E8"
deployer_1         | }

LUKSO RPC + BATCH SUBMITTER + GETH_L2 (with DEPLOYER)

batch_submitter_1  | Connected to L1 Node at https://rpc.l14.lukso.network
deployer_1         | Connected to L1 Node at https://rpc.l14.lukso.network

Issues: https://github.com/silesiacoin/optimism-integration/wiki/Optimistic-Rollups:-Contracts-in-general#known-issues