Skip to content

Commit 62b02b7

Browse files
committed
feat: add l1 anvil for shadow fork
1 parent b8b4c6b commit 62b02b7

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ target/
2626
docker-compose/grafana_data/
2727
docker-compose/l2reth/
2828
docker-compose/prometheus_data/
29+
docker-compose/l1devnet/

docker-compose/docker-compose.yml

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,35 @@
11
version: '3'
22

33
services:
4+
l1-devnet:
5+
image: scrolltech/l1-devnet:v0.0.4
6+
container_name: l1-devnet
7+
entrypoint: ["bash", "-c"]
8+
command: >
9+
'
10+
EXTRA_PARAMS="";
11+
if [ "$${FORK_BLOCK_NUMBER}" != "" ]; then
12+
EXTRA_PARAMS="--fork-block-number $${FORK_BLOCK_NUMBER}";
13+
fi;
14+
if [ "$${ENV:-}" = "sepolia" ]; then
15+
anvil --fork-url http://l1reth-rpc.sepolia.scroll.tech:8545 --chain-id 11155111 --block-time 12 $EXTRA_PARAMS
16+
elif [ "$${ENV:-}" = "mainnet" ]; then
17+
anvil --fork-url http://l1geth-rpc.mainnet.scroll.tech:8545/l1 --chain-id 1 --block-time 12 $EXTRA_PARAMS
18+
fi
19+
'
20+
profiles:
21+
- shadow-fork
22+
environment:
23+
- ENV=${ENV}
24+
- FORK_BLOCK_NUMBER=${FORK_BLOCK_NUMBER}
25+
ports:
26+
- "8543:8545" # JSON-RPC
27+
- "8544:8546" # WebSocket
28+
volumes:
29+
- ./l1devnet:/l1devnet
30+
networks:
31+
- scroll-network
32+
433
rollup-node:
534
image: scrolltech/rollup-node:v0.0.1-rc9
635
container_name: rollup-node
@@ -10,21 +39,32 @@ services:
1039
if [ "$${ENV:-}" = "dev" ]; then
1140
exec rollup-node node --chain dev --datadir=/l2reth --metrics=0.0.0.0:6060 --disable-discovery --http --http.addr=0.0.0.0 --http.port=8545 --http.corsdomain "*" --http.api admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,miner,mev --ws --ws.addr 0.0.0.0 --ws.port 8546 --ws.api admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,miner,mev --log.stdout.format log-fmt -vvv --sequencer.enabled --sequencer.block-time 250 --builder.deadline 250ms --sequencer.payload-building-duration 230 --txpool.pending-max-count=1000000 --builder.gaslimit=10000000000 --rpc.max-connections=5000
1241
elif [ "$${ENV:-}" = "sepolia" ]; then
42+
if [ "$SHADOW_FORK" = "true" ]; then
43+
URL_PARAMS="--l1.url l1-devnet:8545";
44+
else
45+
URL_PARAMS="--l1.url http://l1reth-rpc.sepolia.scroll.tech:8545";
46+
fi
1347
exec rollup-node node --chain scroll-sepolia --datadir=/l2reth --metrics=0.0.0.0:6060 --disable-discovery \
1448
--http --http.addr=0.0.0.0 --http.port=8545 --http.corsdomain "*" --http.api admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,miner,mev \
1549
--ws --ws.addr 0.0.0.0 --ws.port 8546 --ws.api admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,miner,mev \
16-
--log.stdout.format log-fmt -vvv --l1.url http://l1reth-rpc.sepolia.scroll.tech:8545 --beacon.url http://l1reth-cl.sepolia.scroll.tech:5052 --network.scroll-wire --network.bridge
50+
--log.stdout.format log-fmt -vvv $URL_PARAMS --beacon.url http://l1reth-cl.sepolia.scroll.tech:5052 --network.scroll-wire --network.bridge
1751
--trusted-peers "enode://29cee709c400533ae038a875b9ca975c8abef9eade956dcf3585e940acd5c0ae916968f514bd37d1278775aad1b7db30f7032a70202a87fd7365bd8de3c9f5fc@44.242.39.33:30303,enode://ceb1636bac5cbb262e5ad5b2cd22014bdb35ffe7f58b3506970d337a63099481814a338dbcd15f2d28757151e3ecd40ba38b41350b793cd0d910ff0436654f8c@35.85.84.250:30303,enode://dd1ac5433c5c2b04ca3166f4cb726f8ff6d2da83dbc16d9b68b1ea83b7079b371eb16ef41c00441b6e85e32e33087f3b7753ea9e8b1e3f26d3e4df9208625e7f@54.148.111.168:30303"
1852
elif [ "$${ENV:-}" = "mainnet" ]; then
53+
if [ "$SHADOW_FORK" = "true" ]; then
54+
URL_PARAMS="--l1.url l1-devnet:8545 --beacon.url l1-devnet:8545";
55+
else
56+
URL_PARAMS="--l1.url http://l1geth-rpc.mainnet.scroll.tech:8545/l1 --beacon.url http://l1reth-cl.mainnet.scroll.tech:5052";
57+
fi
1958
exec rollup-node node --chain scroll --datadir=/l2reth --metrics=0.0.0.0:6060 --disable-discovery \
2059
--http --http.addr=0.0.0.0 --http.port=8545 --http.corsdomain "*" --http.api admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,miner,mev
2160
--ws --ws.addr 0.0.0.0 --ws.port 8546 --ws.api admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,miner,mev \
22-
--log.stdout.format log-fmt -vvv --l1.url http://l1geth-rpc.mainnet.scroll.tech:8545/l1 --beacon.url http://l1reth-cl.mainnet.scroll.tech:5052 --network.scroll-wire --network.bridge \
61+
--log.stdout.format log-fmt -vvv $URL_PARAMS --beacon.url http://l1reth-cl.mainnet.scroll.tech:5052 --network.scroll-wire --network.bridge \
2362
--trusted-peers "enode://c6ac91f43df3d63916ac1ae411cdd5ba249d55d48a7bec7f8cd5bb351a31aba437e5a69e8a1de74d73fdfeba8af1cfe9caf9846ecd3abf60d1ffdf4925b55b23@54.186.123.248:30303,enode://fdcc807b5d1353f3a1e98b90208ce6ef1b7d446136e51eaa8ad657b55518a2f8b37655e42375d61622e6ea18f3faf9d070c9bbdf012cf5484bcbad33b7a15fb1@44.227.91.206:30303,enode://6beb5a3efbb39be73d17630b6da48e94c0ce7ec665172111463cb470197b20c12faa1fa6f835b81c28571277d1017e65c4e426cc92a46141cf69118ecf28ac03@44.237.194.52:30303,enode://7cf893d444eb8e129dca0f6485b3df579911606e7c728be4fa55fcc5f155a37c3ce07d217ccec5447798bde465ac2bdba2cb8763d107e9f3257e787579e9f27e@52.35.203.107:30303,enode://c7b2d94e95da343db6e667a01cef90376a592f2d277fbcbf6e9c9186734ed8003d01389571bd10cdbab7a6e5adfa6f0c7b55644d0db24e0b9deb4ec80f842075@54.70.236.187:30303"
2463
fi
2564
'
2665
environment:
2766
- ENV=${ENV:-dev}
67+
- SHADOW_FORK=${SHADOW_FORK:-false}
2868
- RUST_LOG=sqlx=off,info
2969
ports:
3070
- "8545:8545" # JSON-RPC

0 commit comments

Comments
 (0)