forked from cerc-io/stack-orchestrator
7f3a33564a
* Use the latest stable optimism release
* Remove unnecessary repos from repo-list
* Add op-proposer service to fixturenet-optimism stack
* Add jq and bash to op-proposer image
* Update instructions
* Update op-batcher and op-geth commands
Former-commit-id: 988be0ef9a
2.8 KiB
2.8 KiB
fixturenet-optimism
Instructions to setup and deploy L2 fixturenet using Optimism
Setup
Prerequisite: An L1 Ethereum RPC endpoint
Clone required repositories:
laconic-so --stack fixturenet-optimism setup-repositories --exclude cerc-io/go-ethereum
# If this throws an error as a result of being already checked out to a branch/tag in a repo, remove the repositories mentioned below and re-run the command
Checkout to the required versions and branches in repos:
# Optimism
cd ~/cerc/optimism
git checkout v1.0.3
Build the container images:
laconic-so --stack fixturenet-optimism build-containers --include cerc/foundry,cerc/optimism-contracts,cerc/optimism-op-node,cerc/optimism-l2geth,cerc/optimism-op-batcher,cerc/optimism-op-proposer
This should create the required docker images in the local image registry:
cerc/foundry
cerc/optimism-contracts
cerc/optimism-l2geth
cerc/optimism-op-node
cerc/optimism-op-batcher
cerc/optimism-op-proposer
Deploy
Create and update an env file to be used in the next step (defaults):
# External L1 endpoint
CERC_L1_CHAIN_ID=
CERC_L1_RPC=
CERC_L1_HOST=
CERC_L1_PORT=
# URL to get CSV with credentials for accounts on L1
# that are used to send balance to Optimism Proxy contract
# (enables them to do transactions on L2)
CERC_L1_ACCOUNTS_CSV_URL=
# OR
# Specify the required account credentials
CERC_L1_ADDRESS=
CERC_L1_PRIV_KEY=
CERC_L1_ADDRESS_2=
CERC_L1_PRIV_KEY_2=
- NOTE: If L1 is running on the host machine, use
host.docker.internal
as the hostname to access the host port
Deploy the stack:
laconic-so --stack fixturenet-optimism deploy --include fixturenet-optimism --env-file <PATH_TO_ENV_FILE> up
The fixturenet-optimism-contracts
service may take a while (~15 mins
) to complete running as it:
- waits for the 'Merge' to happen on L1
- waits for a finalized block to exist on L1 (so that it can be taken as a starting block for roll ups)
- deploys the L1 contracts
To list down and monitor the running containers:
laconic-so --stack fixturenet-optimism deploy --include fixturenet-optimism ps
# With status
docker ps
# Check logs for a container
docker logs -f <CONTAINER_ID>
Clean up
Stop all services running in the background:
laconic-so --stack fixturenet-optimism deploy --include fixturenet-optimism down
Clear volumes created by this stack:
# List all relevant volumes
docker volume ls -q --filter "name=.*l1_deployment|.*l2_accounts|.*l2_config|.*l2_geth_data"
# Remove all the listed volumes
docker volume rm $(docker volume ls -q --filter "name=.*l1_deployment|.*l2_accounts|.*l2_config|.*l2_geth_data")
Troubleshooting
See Troubleshooting