add op-bnb
This commit is contained in:
60
op-bnb.yml
Normal file
60
op-bnb.yml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
op-bnb:
|
||||||
|
image: ghcr.io/bnb-chain/op-geth:${OPBNB_GETH_IMAGE_TAG:-v0.3.0}
|
||||||
|
restart: unless-stopped
|
||||||
|
stop_grace_period: 5m
|
||||||
|
entrypoint: /scripts/op-geth-start.sh
|
||||||
|
environment:
|
||||||
|
BEDROCK_DATADIR: /geth
|
||||||
|
CHAIN_ID: 204
|
||||||
|
L2_RPC: https://opbnb-mainnet-rpc.bnbchain.org
|
||||||
|
NETWORK_NAME: mainnet
|
||||||
|
ports:
|
||||||
|
- ${PORT__OP_GETH:-8545}:8545
|
||||||
|
volumes:
|
||||||
|
- ./op-bnb/scripts/:/scripts
|
||||||
|
- .jwtsecret:/jwtsecret
|
||||||
|
- op-bnb-geth:/geth
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.middlewares.op-bnb-stripprefix.stripprefix.prefixes=/opbnb"
|
||||||
|
- "traefik.http.services.op-bnb.loadbalancer.server.port=8545"
|
||||||
|
- "traefik.http.routers.op-bnb.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.op-bnb.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.op-bnb.rule=Host(`$DOMAIN`) && PathPrefix(`/opbnb`)"
|
||||||
|
- "traefik.http.routers.op-bnb.middlewares=op-bnb-stripprefix, ipwhitelist"
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
|
||||||
|
|
||||||
|
op-bnb-node:
|
||||||
|
image: ghcr.io/bnb-chain/op-node:${OPBNB_NODE_IMAGE_TAG:-v0.3.0}
|
||||||
|
depends_on:
|
||||||
|
- op-bnb
|
||||||
|
restart: unless-stopped
|
||||||
|
stop_grace_period: 5m
|
||||||
|
entrypoint: /scripts/op-node-start.sh
|
||||||
|
environment:
|
||||||
|
OP_NODE__RPC_ENDPOINT: ${OPBNB_BSC_ENDPOINT}
|
||||||
|
NETWORK_NAME: mainnet
|
||||||
|
expose:
|
||||||
|
- 3074
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
ports:
|
||||||
|
- ${PORT__OP_NODE_P2P:-3074}:3074
|
||||||
|
- ${PORT__OP_NODE:-8546}:8546
|
||||||
|
volumes:
|
||||||
|
- ./op-bnb/scripts/:/scripts
|
||||||
|
- .jwtsecret:/jwtsecret
|
||||||
|
- op-bnb-node:/op_node
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
op-bnb-geth:
|
||||||
|
op-bnb-node:
|
||||||
63
op-bnb/scripts/op-geth-start.sh
Normal file
63
op-bnb/scripts/op-geth-start.sh
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eou
|
||||||
|
apk add wget
|
||||||
|
if [ "$NETWORK_NAME" == "testnet" ]; then
|
||||||
|
if [ ! -f $BEDROCK_DATADIR/genesis.json ]; then
|
||||||
|
wget -O $BEDROCK_DATADIR/genesis.json https://raw.githubusercontent.com/bnb-chain/opbnb/develop/assets/testnet/genesis.json
|
||||||
|
else
|
||||||
|
echo "genesis.json exists."
|
||||||
|
fi
|
||||||
|
export P2P_BOOTNODES="enr:-KO4QKFOBDW--pF4pFwv3Al_jiLOITj_Y5mr1Ajyy2yxHpFtNcBfkZEkvWUxAKXQjWALZEFxYHooU88JClyzA00e8YeGAYtBOOZig2V0aMfGhE0ZYGqAgmlkgnY0gmlwhDREiqaJc2VjcDI1NmsxoQM8pC_6wwTr5N2Q-yXQ1KGKsgz9i9EPLk8Ata65pUyYG4RzbmFwwIN0Y3CCdl-DdWRwgnZf,enr:-KO4QFJc0KR09ye818GT2kyN9y6BAGjhz77sYimxn85jJf2hOrNqg4X0b0EsS-_ssdkzVpavqh6oMX7W5Y81xMRuEayGAYtBSiK9g2V0aMfGhE0ZYGqAgmlkgnY0gmlwhANzx96Jc2VjcDI1NmsxoQPwA1XHfWGd4umIt7j3Fc7hKq_35izIWT_9yiN_tX8lR4RzbmFwwIN0Y3CCdl-DdWRwgnZf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$NETWORK_NAME" == "mainnet" ]; then
|
||||||
|
if [ ! -f $BEDROCK_DATADIR/genesis.json ]; then
|
||||||
|
wget -O $BEDROCK_DATADIR/genesis.json https://raw.githubusercontent.com/bnb-chain/opbnb/develop/assets/mainnet/genesis.json
|
||||||
|
else
|
||||||
|
echo "genesis.json exists."
|
||||||
|
fi
|
||||||
|
export P2P_BOOTNODES="enr:-KO4QHs5qh_kPFcjMgqkuN9dbxXT4C5Cjad4SAheaUxveCbJQ3XdeMMDHeHilHyqisyYQAByfdhzyKAdUp2SvyzWeBqGAYvRDf80g2V0aMfGhHFtSjqAgmlkgnY0gmlwhDaykUmJc2VjcDI1NmsxoQJUevTL3hJwj21IT2GC6VaNqVQEsJFPtNtO-ld5QTNCfIRzbmFwwIN0Y3CCdl-DdWRwgnZf,enr:-KO4QKIByq-YMjs6IL2YCNZEmlo3dKWNOy4B6sdqE3gjOrXeKdNbwZZGK_JzT1epqCFs3mujjg2vO1lrZLzLy4Rl7PyGAYvRA8bEg2V0aMfGhHFtSjqAgmlkgnY0gmlwhDbjSM6Jc2VjcDI1NmsxoQNQhJ5pqCPnTbK92gEc2F98y-u1OgZVAI1Msx-UiHezY4RzbmFwwIN0Y3CCdl-DdWRwgnZf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d $BEDROCK_DATADIR/geth ]; then
|
||||||
|
exec geth --datadir $BEDROCK_DATADIR init $BEDROCK_DATADIR/genesis.json
|
||||||
|
else
|
||||||
|
echo "$BEDROCK_DATADIR/geth exists."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start op-geth.
|
||||||
|
exec geth \
|
||||||
|
--datadir="$BEDROCK_DATADIR" \
|
||||||
|
--verbosity=3 \
|
||||||
|
--http \
|
||||||
|
--http.corsdomain="*" \
|
||||||
|
--http.vhosts="*" \
|
||||||
|
--http.addr=0.0.0.0 \
|
||||||
|
--http.port=8545 \
|
||||||
|
--http.api=net,eth,engine \
|
||||||
|
--ws \
|
||||||
|
--ws.addr=0.0.0.0 \
|
||||||
|
--ws.port=8545 \
|
||||||
|
--ws.origins="*" \
|
||||||
|
--ws.api=eth,engine \
|
||||||
|
--syncmode=full \
|
||||||
|
--maxpeers=10 \
|
||||||
|
--networkid=$CHAIN_ID \
|
||||||
|
--miner.gaslimit=150000000 \
|
||||||
|
--triesInMemory=32 \
|
||||||
|
--txpool.globalslots=10000 \
|
||||||
|
--txpool.globalqueue=5000 \
|
||||||
|
--cache 6000 \
|
||||||
|
--cache.preimages \
|
||||||
|
--allow-insecure-unlock \
|
||||||
|
--authrpc.addr="0.0.0.0" \
|
||||||
|
--authrpc.port="8551" \
|
||||||
|
--authrpc.vhosts="*" \
|
||||||
|
--authrpc.jwtsecret=./jwt.txt \
|
||||||
|
--gcmode=archive \
|
||||||
|
--metrics \
|
||||||
|
--metrics.port 6060 \
|
||||||
|
--metrics.addr 0.0.0.0 \
|
||||||
|
--syncmode=full \
|
||||||
|
--bootnodes=$P2P_BOOTNODES \
|
||||||
|
--rollup.sequencerhttp=$L2_RPC
|
||||||
43
op-bnb/scripts/op-node-start.sh
Normal file
43
op-bnb/scripts/op-node-start.sh
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eou
|
||||||
|
|
||||||
|
apk add wget
|
||||||
|
if [ "$NETWORK_NAME" == "testnet" ]; then
|
||||||
|
export NETWORK=opBNBTestnet
|
||||||
|
export P2P_BOOTNODES="enr:-J24QGQBeMsXOaCCaLWtNFSfb2Gv50DjGOKToH2HUTAIn9yXImowlRoMDNuPNhSBZNQGCCE8eAl5O3dsONuuQp5Qix2GAYjB7KHSgmlkgnY0gmlwhDREiqaHb3BzdGFja4PrKwCJc2VjcDI1NmsxoQL4I9wpEVDcUb8bLWu6V8iPoN5w8E8q-GrS5WUCygYUQ4N0Y3CCIyuDdWRwgiMr,enr:-J24QJKXHEkIhy0tmIk2EscMZ2aRrivNsZf_YhgIU51g4ZKHWY0BxW6VedRJ1jxmneW9v7JjldPOPpLkaNSo6cXGFxqGAYpK96oCgmlkgnY0gmlwhANzx96Hb3BzdGFja4PrKwCJc2VjcDI1NmsxoQMOCzUFffz04eyDrmkbaSCrMEvLvn5O4RZaZ5k1GV4wa4N0Y3CCIyuDdWRwgiMr"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$NETWORK_NAME" == "mainnet" ]; then
|
||||||
|
export NETWORK=opBNBMainnet
|
||||||
|
export P2P_BOOTNODES="enr:-J24QPSZMaGw3NhO6Ll25cawknKcOFLPjUnpy72HCkwqaHBKaaR9ylr-ejx20INZ69BLLj334aEqjNHKJeWhiAdVcn-GAYv28FmZgmlkgnY0gmlwhDTDWQOHb3BzdGFja4PMAQCJc2VjcDI1NmsxoQJ-_5GZKjs7jaB4TILdgC8EwnwyL3Qip89wmjnyjvDDwoN0Y3CCIyuDdWRwgiMs,enr:-J24QA9sgVxbZ0KoJ7-1gx_szfc7Oexzz7xL2iHS7VMHGj2QQaLc_IQZmFthywENgJWXbApj7tw7BiouKDOZD4noWEWGAYppffmvgmlkgnY0gmlwhDbjSM6Hb3BzdGFja4PMAQCJc2VjcDI1NmsxoQKetGQX7sXd4u8hZr6uayTZgHRDvGm36YaryqZkgnidS4N0Y3CCIyuDdWRwgiMs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start op-node.
|
||||||
|
exec op-node \
|
||||||
|
--l1.trustrpc \
|
||||||
|
--sequencer.l1-confs=15 \
|
||||||
|
--verifier.l1-confs=15 \
|
||||||
|
--l1.http-poll-interval 3s \
|
||||||
|
--l1.epoch-poll-interval 45s \
|
||||||
|
--l1.rpc-max-batch-size 20 \
|
||||||
|
--network=$NETWORK \
|
||||||
|
--rpc.addr=0.0.0.0 \
|
||||||
|
--rpc.port=8546 \
|
||||||
|
--p2p.sync.req-resp \
|
||||||
|
--p2p.listen.ip=0.0.0.0 \
|
||||||
|
--p2p.listen.tcp=9003 \
|
||||||
|
--p2p.listen.udp=9003 \
|
||||||
|
--snapshotlog.file=./snapshot.log \
|
||||||
|
--p2p.priv.raw=$P2P_PRIV_KEY \
|
||||||
|
--p2p.bootnodes=$P2P_BOOTNODES \
|
||||||
|
--metrics.enabled \
|
||||||
|
--metrics.addr=0.0.0.0 \
|
||||||
|
--metrics.port=7300 \
|
||||||
|
--pprof.enabled \
|
||||||
|
--rpc.enable-admin \
|
||||||
|
--l1=$OP_NODE__RPC_ENDPOINT \
|
||||||
|
--l2=http://op-geth:8551 \
|
||||||
|
--l2.jwt-secret=./jwt.txt \
|
||||||
|
--l2.engine-sync=true \
|
||||||
|
--l2.skip-sync-start-check=true \
|
||||||
|
--log.level=debug
|
||||||
@@ -14,7 +14,9 @@
|
|||||||
"https://ethereum-rpc.publicnode.com"
|
"https://ethereum-rpc.publicnode.com"
|
||||||
],
|
],
|
||||||
"default": [
|
"default": [
|
||||||
"erigon-fullnode"
|
"erigon-fullnode",
|
||||||
|
"nethermind-mainnet",
|
||||||
|
"geth-mainnet"
|
||||||
],
|
],
|
||||||
"archive": [
|
"archive": [
|
||||||
"reth-mainnet"
|
"reth-mainnet"
|
||||||
@@ -126,6 +128,9 @@
|
|||||||
],
|
],
|
||||||
"default": [
|
"default": [
|
||||||
"reth-sepolia"
|
"reth-sepolia"
|
||||||
|
],
|
||||||
|
"erchive": [
|
||||||
|
"reth-sepolia"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"holesky": {
|
"holesky": {
|
||||||
@@ -153,10 +158,10 @@
|
|||||||
"https://rpc.mantle.xyz"
|
"https://rpc.mantle.xyz"
|
||||||
],
|
],
|
||||||
"default": [
|
"default": [
|
||||||
"mantle-fullnode"
|
"op-mantle-fullnode"
|
||||||
],
|
],
|
||||||
"archive": [
|
"archive": [
|
||||||
"mantle"
|
"op-mantle"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"polygon": {
|
"polygon": {
|
||||||
@@ -198,5 +203,23 @@
|
|||||||
"bsc",
|
"bsc",
|
||||||
"bsc-erigon-fullnode"
|
"bsc-erigon-fullnode"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"opbnb": {
|
||||||
|
"id": 204,
|
||||||
|
"urls": [
|
||||||
|
"https://opbnb-mainnet-rpc.bnbchain.org"
|
||||||
|
],
|
||||||
|
"default": [
|
||||||
|
"op-bnb.yml"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"polygon-amoy": {
|
||||||
|
"id": 80002,
|
||||||
|
"urls": [
|
||||||
|
"https://rpc-amoy.polygon.technology/"
|
||||||
|
],
|
||||||
|
"default": [
|
||||||
|
"polygon-amoy-erigon-fullnode"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user