Compare commits

..

15 Commits

Author SHA1 Message Date
f4dec3520f Add op-node --log.level 2024-09-06 20:01:17 +08:00
96d05aee9c Enable granite 2024-09-06 20:01:17 +08:00
c91620421d Configure rpc kind from env 2024-09-06 20:01:15 +08:00
defe41869f Update readme 2024-09-06 20:00:14 +08:00
14642b1174 Config L1, L2 block time, set poll intervals 2024-09-06 20:00:12 +08:00
e9131dc98f Fix docs 2024-09-06 19:59:14 +08:00
114963d57c Script clean up 2024-09-06 19:59:12 +08:00
189ae577c4 Exec services in containers
allows forwarding of signals
2024-09-06 19:58:08 +08:00
846655837f op-geth needs state.scheme=hash for archive 2024-09-06 19:58:08 +08:00
5ac0518c27 Fix L2 alloc state dump
runWithStateDump instead of runWithAllUpgrades
2024-09-06 19:58:08 +08:00
2939d549cd Use optimism contracts image 2024-09-06 19:58:08 +08:00
44ed6708d0 Optimism script update 2024-09-06 19:58:08 +08:00
2ba7045792 Add missing packages to images
op-plasma => op-alt-da
2024-09-06 19:58:08 +08:00
ab0e42a54b Add extra_hosts for l2 config generation service (#5)
Part of [Create bridge channel in go-nitro](https://www.notion.so/Create-bridge-channel-in-go-nitro-22ce80a0d8ae4edb80020a8f250ea270)

Co-authored-by: Adw8 <adwaitgharpure@gmail.com>
Reviewed-on: #5
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-09-04 14:04:26 +00:00
c5f97dda13 Add configuration for L1 beacon endpoint and funding amounts for Optimism accounts (#4)
Part of [Create a public laconicd testnet](https://www.notion.so/Create-a-public-laconicd-testnet-896a11bdd8094eff8f1b49c0be0ca3b8)

Co-authored-by: Adw8 <adwaitgharpure@gmail.com>
Reviewed-on: #4
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-09-03 09:42:08 +00:00
7 changed files with 58 additions and 22 deletions

View File

@ -10,14 +10,16 @@ services:
- ../config/fixturenet-optimism/l1-params.env - ../config/fixturenet-optimism/l1-params.env
- ../config/fixturenet-optimism/l2-params.env - ../config/fixturenet-optimism/l2-params.env
environment: environment:
- CERC_SCRIPT_DEBUG CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
- CERC_L1_CHAIN_ID CERC_L1_CHAIN_ID: ${CERC_L1_CHAIN_ID}
- CERC_L1_RPC CERC_L1_RPC: ${CERC_L1_RPC}
- CERC_L1_ACCOUNTS_CSV_URL CERC_L1_ACCOUNTS_CSV_URL: ${CERC_L1_ACCOUNTS_CSV_URL}
- CERC_L1_ADDRESS CERC_L1_ADDRESS: ${CERC_L1_ADDRESS}
- CERC_L1_PRIV_KEY CERC_L1_PRIV_KEY: ${CERC_L1_PRIV_KEY}
- CERC_L1_BLOCK_TIME CERC_L1_BLOCK_TIME: ${CERC_L1_BLOCK_TIME}
- CERC_L2_BLOCK_TIME CERC_L2_BLOCK_TIME: ${CERC_L2_BLOCK_TIME}
CERC_PROPOSER_AMOUNT: ${CERC_PROPOSER_AMOUNT}
CERC_BATCHER_AMOUNT: ${CERC_BATCHER_AMOUNT}
volumes: volumes:
- ../config/network/wait-for-it.sh:/wait-for-it.sh - ../config/network/wait-for-it.sh:/wait-for-it.sh
- ../config/fixturenet-optimism/optimism-contracts/deploy-contracts.sh:/deploy-contracts.sh - ../config/fixturenet-optimism/optimism-contracts/deploy-contracts.sh:/deploy-contracts.sh
@ -49,6 +51,8 @@ services:
- l2_config:/l2-config - l2_config:/l2-config
entrypoint: "bash" entrypoint: "bash"
command: "/generate-l2-config.sh" command: "/generate-l2-config.sh"
extra_hosts:
- "host.docker.internal:host-gateway"
# Initializes and runs the L2 execution client (outputs to volume l2_geth_data) # Initializes and runs the L2 execution client (outputs to volume l2_geth_data)
op-geth: op-geth:
@ -89,10 +93,11 @@ services:
env_file: env_file:
- ../config/fixturenet-optimism/l1-params.env - ../config/fixturenet-optimism/l1-params.env
environment: environment:
- CERC_SCRIPT_DEBUG CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
- CERC_L1_RPC CERC_L1_RPC: ${CERC_L1_RPC}
- CERC_L1_RPC_KIND CERC_L1_RPC_KIND: ${CERC_L1_RPC_KIND}
- CERC_L1_BLOCK_TIME CERC_L1_BLOCK_TIME: ${CERC_L1_BLOCK_TIME}
CERC_L1_BEACON: ${CERC_L1_BEACON}
volumes: volumes:
- ../config/fixturenet-optimism/run-op-node.sh:/run-op-node.sh - ../config/fixturenet-optimism/run-op-node.sh:/run-op-node.sh
- l1_deployment:/l1-deployment:ro - l1_deployment:/l1-deployment:ro
@ -152,10 +157,10 @@ services:
env_file: env_file:
- ../config/fixturenet-optimism/l1-params.env - ../config/fixturenet-optimism/l1-params.env
environment: environment:
- CERC_SCRIPT_DEBUG CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
- CERC_L1_RPC CERC_L1_RPC: ${CERC_L1_RPC}
- CERC_L1_CHAIN_ID CERC_L1_CHAIN_ID: ${CERC_L1_CHAIN_ID}
- CERC_L1_BLOCK_TIME CERC_L1_BLOCK_TIME: ${CERC_L1_BLOCK_TIME}
volumes: volumes:
- ../config/network/wait-for-it.sh:/wait-for-it.sh - ../config/network/wait-for-it.sh:/wait-for-it.sh
- ../config/fixturenet-optimism/run-op-proposer.sh:/run-op-proposer.sh - ../config/fixturenet-optimism/run-op-proposer.sh:/run-op-proposer.sh

View File

@ -14,6 +14,13 @@ l1_deployment_file="/l1-deployment/$DEPLOYMENT_CONTEXT-deploy.json"
l2_allocs_file="/l2-config/allocs-l2.json" l2_allocs_file="/l2-config/allocs-l2.json"
genesis_outfile="/l2-config/genesis.json" genesis_outfile="/l2-config/genesis.json"
rollup_outfile="/l2-config/rollup.json" rollup_outfile="/l2-config/rollup.json"
jwt_file="/l2-config/l2-jwt.txt"
# Create a JWT secret at shared path if not found
if [ ! -f "$jwt_file" ]; then
openssl rand -hex 32 > $jwt_file
echo "Generated JWT secret at $jwt_file"
fi
# Check if genesis.json and rollup.json already exist # Check if genesis.json and rollup.json already exist
if [ -f "$genesis_outfile" ] && [ -f "$rollup_outfile" ]; then if [ -f "$genesis_outfile" ] && [ -f "$rollup_outfile" ]; then

View File

@ -16,3 +16,6 @@ DEFAULT_CERC_L1_RPC_KIND=standard
# that are used to send balance to Optimism Proxy contract # that are used to send balance to Optimism Proxy contract
# (enables them to do transactions on L2) # (enables them to do transactions on L2)
DEFAULT_CERC_L1_ACCOUNTS_CSV_URL="http://fixturenet-eth-bootnode-geth:9898/accounts.csv" DEFAULT_CERC_L1_ACCOUNTS_CSV_URL="http://fixturenet-eth-bootnode-geth:9898/accounts.csv"
DEFAULT_CERC_PROPOSER_AMOUNT="0.2ether"
DEFAULT_CERC_BATCHER_AMOUNT="0.1ether"
DEFAULT_CERC_L1_BEACON=http://fixturenet-eth-lighthouse-1:8001

View File

@ -9,6 +9,9 @@ CERC_L1_RPC="${CERC_L1_RPC:-${DEFAULT_CERC_L1_RPC}}"
CERC_L1_ACCOUNTS_CSV_URL="${CERC_L1_ACCOUNTS_CSV_URL:-${DEFAULT_CERC_L1_ACCOUNTS_CSV_URL}}" CERC_L1_ACCOUNTS_CSV_URL="${CERC_L1_ACCOUNTS_CSV_URL:-${DEFAULT_CERC_L1_ACCOUNTS_CSV_URL}}"
CERC_PROPOSER_AMOUNT="${CERC_PROPOSER_AMOUNT:-${DEFAULT_CERC_PROPOSER_AMOUNT}}"
CERC_BATCHER_AMOUNT="${CERC_BATCHER_AMOUNT:-${DEFAULT_CERC_BATCHER_AMOUNT}}"
export DEPLOYMENT_CONTEXT="$CERC_L1_CHAIN_ID" export DEPLOYMENT_CONTEXT="$CERC_L1_CHAIN_ID"
# Optional create2 salt for deterministic deployment of contract implementations # Optional create2 salt for deterministic deployment of contract implementations
export IMPL_SALT=$(openssl rand -hex 32) export IMPL_SALT=$(openssl rand -hex 32)
@ -16,7 +19,7 @@ export IMPL_SALT=$(openssl rand -hex 32)
echo "Using L1 RPC endpoint ${CERC_L1_RPC}" echo "Using L1 RPC endpoint ${CERC_L1_RPC}"
# Exit if a deployment already exists (on restarts) # Exit if a deployment already exists (on restarts)
if [ -d "/l1-deployment/$DEPLOYMENT_CONTEXT-deploy.json" ]; then if [ -f "/l1-deployment/$DEPLOYMENT_CONTEXT-deploy.json" ]; then
echo "Deployment directory /l1-deployment/$DEPLOYMENT_CONTEXT-deploy.json, checking OptimismPortal deployment" echo "Deployment directory /l1-deployment/$DEPLOYMENT_CONTEXT-deploy.json, checking OptimismPortal deployment"
OPTIMISM_PORTAL_ADDRESS=$(cat /l1-deployment/$DEPLOYMENT_CONTEXT-deploy.json | jq -r .OptimismPortal) OPTIMISM_PORTAL_ADDRESS=$(cat /l1-deployment/$DEPLOYMENT_CONTEXT-deploy.json | jq -r .OptimismPortal)
@ -68,9 +71,8 @@ if [ -n "$CERC_L1_ADDRESS" ] && [ -n "$CERC_L1_PRIV_KEY" ]; then
echo "Funding accounts." echo "Funding accounts."
wait_for_block 1 300 wait_for_block 1 300
cast send --from $ADMIN --rpc-url $CERC_L1_RPC --value 5ether $PROPOSER --private-key $ADMIN_KEY cast send --from $ADMIN --rpc-url $CERC_L1_RPC --value $CERC_PROPOSER_AMOUNT $PROPOSER --private-key $ADMIN_KEY
cast send --from $ADMIN --rpc-url $CERC_L1_RPC --value 10ether $BATCHER --private-key $ADMIN_KEY cast send --from $ADMIN --rpc-url $CERC_L1_RPC --value $CERC_BATCHER_AMOUNT $BATCHER --private-key $ADMIN_KEY
cast send --from $ADMIN --rpc-url $CERC_L1_RPC --value 2ether $SEQ --private-key $ADMIN_KEY
else else
curl -o accounts.csv $CERC_L1_ACCOUNTS_CSV_URL curl -o accounts.csv $CERC_L1_ACCOUNTS_CSV_URL
# Admin # Admin
@ -176,6 +178,5 @@ echo "Copying deployment artifacts volume l1_deployment and deploy-config to vol
cp /opt/optimism/packages/contracts-bedrock/deployments/$DEPLOYMENT_CONTEXT-deploy.json /l1-deployment cp /opt/optimism/packages/contracts-bedrock/deployments/$DEPLOYMENT_CONTEXT-deploy.json /l1-deployment
cp /opt/optimism/packages/contracts-bedrock/deploy-config/$DEPLOYMENT_CONTEXT.json /l2-config cp /opt/optimism/packages/contracts-bedrock/deploy-config/$DEPLOYMENT_CONTEXT.json /l2-config
cp allocs-l2.json /l2-config cp allocs-l2.json /l2-config
openssl rand -hex 32 > /l2-config/l2-jwt.txt
echo "Deployment successful, exiting." echo "Deployment successful, exiting."

View File

@ -7,6 +7,7 @@ fi
CERC_L1_RPC="${CERC_L1_RPC:-${DEFAULT_CERC_L1_RPC}}" CERC_L1_RPC="${CERC_L1_RPC:-${DEFAULT_CERC_L1_RPC}}"
CERC_L1_RPC_KIND="${CERC_L1_RPC_KIND:-${DEFAULT_CERC_L1_RPC_KIND}}" CERC_L1_RPC_KIND="${CERC_L1_RPC_KIND:-${DEFAULT_CERC_L1_RPC_KIND}}"
CERC_L1_BLOCK_TIME="${CERC_L1_BLOCK_TIME:-$DEFAULT_CERC_L1_BLOCK_TIME}" CERC_L1_BLOCK_TIME="${CERC_L1_BLOCK_TIME:-$DEFAULT_CERC_L1_BLOCK_TIME}"
CERC_L1_BEACON="${CERC_L1_BEACON:-${DEFAULT_CERC_L1_BEACON}}"
log_level=INFO log_level=INFO
if [ -n "$CERC_LOG_LEVEL" ]; then if [ -n "$CERC_LOG_LEVEL" ]; then
@ -33,7 +34,7 @@ exec op-node \
--p2p.sequencer.key="${SEQ_KEY#0x}" \ --p2p.sequencer.key="${SEQ_KEY#0x}" \
--l1=$CERC_L1_RPC \ --l1=$CERC_L1_RPC \
--l1.rpckind=$CERC_L1_RPC_KIND \ --l1.rpckind=$CERC_L1_RPC_KIND \
--l1.beacon=http://fixturenet-eth-lighthouse-1:8001 \ --l1.beacon=$CERC_L1_BEACON \
--l1.http-poll-interval="${CERC_L1_BLOCK_TIME}s" \ --l1.http-poll-interval="${CERC_L1_BLOCK_TIME}s" \
--l1.epoch-poll-interval="$((CERC_L1_BLOCK_TIME * 32))s" \ --l1.epoch-poll-interval="$((CERC_L1_BLOCK_TIME * 32))s" \
--log.level="$log_level" --log.level="$log_level"

View File

@ -112,6 +112,15 @@ Inside the `fixturenet-eth-deployment` deployment directory, open `config.env` f
CERC_ALLOW_UNPROTECTED_TXS=true CERC_ALLOW_UNPROTECTED_TXS=true
``` ```
Inside the `fixturenet-optimism-deployment` deployment directory, open `config.env` file and set following env variables:
```bash
# Optional
# Funding amounts for proposer and batcher accounts on L1
CERC_PROPOSER_AMOUNT= # Default 0.2ether
CERC_BATCHER_AMOUNT= # Default 0.1ether
```
## Start the stack ## Start the stack
Start the deployment: Start the deployment:

View File

@ -64,6 +64,9 @@ Inside the deployment directory, open the file `config.env` and add the followin
CERC_L1_HOST= CERC_L1_HOST=
CERC_L1_PORT= CERC_L1_PORT=
# External L1 Beacon node endpoint
CERC_L1_BEACON=
# URL to get CSV with credentials for accounts on L1 # URL to get CSV with credentials for accounts on L1
# that are used to send balance to Optimism Proxy contract # that are used to send balance to Optimism Proxy contract
# (enables them to do transactions on L2) # (enables them to do transactions on L2)
@ -74,6 +77,13 @@ Inside the deployment directory, open the file `config.env` and add the followin
# Other generated accounts will be funded from this account, so it should contain ~20 Eth # Other generated accounts will be funded from this account, so it should contain ~20 Eth
CERC_L1_ADDRESS= CERC_L1_ADDRESS=
CERC_L1_PRIV_KEY= CERC_L1_PRIV_KEY=
# Optional
# Funding amounts for proposer and batcher accounts on L1
# (Accounts funded using the Admin account)
CERC_PROPOSER_AMOUNT=
CERC_BATCHER_AMOUNT=
``` ```
* NOTE: If L1 is running on the host machine, use `host.docker.internal` as the hostname to access the host port, or use the `ip a` command to find the IP address of the `docker0` interface (this will usually be something like `172.17.0.1` or `172.18.0.1`) * NOTE: If L1 is running on the host machine, use `host.docker.internal` as the hostname to access the host port, or use the `ip a` command to find the IP address of the `docker0` interface (this will usually be something like `172.17.0.1` or `172.18.0.1`)