Prathamesh Musale
002d334b98
Part of [Update Optimism stack to use Bedrock release](https://www.notion.so/Update-Optimism-stack-to-use-Bedrock-release-e44a490247724a6095a9fbc19fba3bcd) Requires [Add an option to allow unprotected txs in geth](cerc-io/fixturenet-eth-stacks#8) - Port over existing `fixturenet-optimism` stack components from SO - Use external [fixturenet-eth](https://git.vdb.to/cerc-io/fixturenet-eth-stacks/src/branch/main/stack-orchestrator/stacks/fixturenet-eth) stack for L1 - Use latest Optimism releases ([optimism@v1.7.4](https://github.com/ethereum-optimism/optimism/releases/tag/v1.7.4) and [op-geth@v1.101311.0](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101311.0)) - Update Optimism L1 contracts deployment script - Update L2 genesis generation - Remove override on L1 script to allow unprotected txs and unlock an account - `fixturenet-eth` stack itself now has an option to allow unprotected txs; the raw tx bytes for create2 proxy contract deployment from Optimism docs is not `EIP155` compatible - Use pk of funded account for txs instead of unlocking it - Add updated instructions - Use upstream [foundry](https://github.com/foundry-rs/foundry/pkgs/container/foundry/209507574?tag=nightly-267e14fab654d9ce955dce64c0eb09f01c8538ee) as base image for `cerc/optimism-contracts` container - Support for arm64/Apple Silicon to be handled in a follow-on PR Reviewed-on: cerc-io/fixturenet-optimism-stack#1 Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com> Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
57 lines
1.4 KiB
Bash
Executable File
57 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
|
|
set -x
|
|
fi
|
|
|
|
l2_genesis_file="/l2-config/genesis.json"
|
|
|
|
# Check for genesis file; if necessary, wait on op-node to generate
|
|
timeout=300 # 5 minutes
|
|
start_time=$(date +%s)
|
|
elapsed_time=0
|
|
echo "Checking for L2 genesis file at location $l2_genesis_file"
|
|
while [ ! -f "$l2_genesis_file" ] && [ $elapsed_time -lt $timeout ]; do
|
|
echo "Waiting for L2 genesis file to be generated..."
|
|
sleep 10
|
|
current_time=$(date +%s)
|
|
elapsed_time=$((current_time - start_time))
|
|
done
|
|
|
|
if [ ! -f "$l2_genesis_file" ]; then
|
|
echo "L2 genesis file not found after timeout of $timeout seconds. Exiting..."
|
|
exit 1
|
|
fi
|
|
|
|
# Initialize geth from our generated L2 genesis file (if not already initialized)
|
|
data_dir="/datadir"
|
|
if [ ! -d "$datadir/geth" ]; then
|
|
geth init --datadir=$data_dir $l2_genesis_file
|
|
fi
|
|
|
|
# Start op-geth
|
|
jwt_file="/l2-config/l2-jwt.txt"
|
|
|
|
geth \
|
|
--datadir=$data_dir \
|
|
--http \
|
|
--http.corsdomain="*" \
|
|
--http.vhosts="*" \
|
|
--http.addr=0.0.0.0 \
|
|
--http.api=web3,debug,eth,txpool,net,engine \
|
|
--ws \
|
|
--ws.addr=0.0.0.0 \
|
|
--ws.port=8546 \
|
|
--ws.origins="*" \
|
|
--ws.api=debug,eth,txpool,net,engine \
|
|
--syncmode=full \
|
|
--gcmode=archive \
|
|
--nodiscover \
|
|
--maxpeers=0 \
|
|
--networkid=42069 \
|
|
--authrpc.vhosts="*" \
|
|
--authrpc.addr=0.0.0.0 \
|
|
--authrpc.port=8551 \
|
|
--authrpc.jwtsecret=$jwt_file \
|
|
--rollup.disabletxpoolgossip=true
|