stack-orchestrator/app/data/stacks/fixturenet-optimism
prathamesh0 1881554ae0 Add Optimism Fixturenet stack (#266)
* Initial version

* Update readme

* Build op-geth container

* Add optimism go code containers

* Add optimism contracts container

* Update optimism contracts container build

* Add fixturenet-optimism-contracts service to deploy L1 contracts

* Add fixturenet-optimism op-node and op-geth

* Avoid reading addresses from a file when sending balances

* Fixes for running op-geth container

* Fix image name and command in optimism-contracts service

* Add a healthcheck to lighthouse bootnode to avoid failing eth txs

* Avoid using hardhat ethers to send balances from an account

* Update script to send balance to L1 bridge proxy contract

* Implement op-node container

* Wait for a finalized L1 block to exist

* Fix for running op-batcher

* Add a todo for restart support

* Integrate optimism-contracts service and update instructions

* Update clean-up to remove docker volumes

* Update volume access permissions

* Add a todo to replace foundry usage with web3 js

* Add known issues

* Fix README

* Fix indentation

* Update known issues

---------

Co-authored-by: David Boreham <david@bozemanpas.com>
Co-authored-by: David Boreham <david@bozemanpass.com>
Co-authored-by: nabarun <nabarun@deepstacksoft.com>
Former-commit-id: fc522140ba
2023-04-03 12:33:47 +05:30
..
README.md Add Optimism Fixturenet stack (#266) 2023-04-03 12:33:47 +05:30
stack.yml Add Optimism Fixturenet stack (#266) 2023-04-03 12:33:47 +05:30

fixturenet-optimism

Instructions to setup and deploy an end-to-end L1+L2 stack with fixturenet-eth (L1) and Optimism (L2)

Setup

Clone required repositories:

laconic-so --stack fixturenet-optimism setup-repositories

Checkout to the required versions and branches in repos:

# optimism
cd ~/cerc/optimism
git checkout @eth-optimism/sdk@0.0.0-20230329025055

Build the container images:

laconic-so --stack fixturenet-optimism build-containers

This should create the required docker images in the local image registry:

  • cerc/go-ethereum
  • cerc/lighthouse
  • cerc/fixturenet-eth-geth
  • cerc/fixturenet-eth-lighthouse
  • cerc/foundry
  • cerc/optimism-contracts
  • cerc/optimism-l2geth
  • cerc/optimism-op-batcher
  • cerc/optimism-op-node

Deploy

Deploy the stack:

laconic-so --stack fixturenet-optimism deploy up

To list down the running containers:

laconic-so --stack fixturenet-optimism deploy ps

# With status
docker ps

Clean up

Stop all services running in the background:

laconic-so --stack fixturenet-optimism deploy down

Remove volumes created by this stack:

docker volume ls

docker volume rm laconic-d527651bba3cb61886b36a7400bd2a38_fixturenet-geth-accounts
docker volume rm laconic-d527651bba3cb61886b36a7400bd2a38_l1-deployment
docker volume rm laconic-d527651bba3cb61886b36a7400bd2a38_l2-accounts
docker volume rm laconic-d527651bba3cb61886b36a7400bd2a38_op_node_data

Known Issues

  • Currently not supported:
    • Stopping and restarting the stack from where it left off; currently starts fresh on a restart
    • Pointing Optimism (L2) to external L1 endpoint to allow running only L2 services
  • Resource requirements (memory + time) for building cerc/foundry image are on the higher side
    • cerc/optimism-contracts image is currently based on cerc/foundry (Optimism requires foundry installation)