-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdocker-compose.yml
172 lines (165 loc) · 5.68 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
version: '3'
x-resident: &resident
restart: unless-stopped
user: nobody
logging:
driver: json-file
options:
max-size: 128m
max-file: 4
services:
op-geth:
<<: *resident
image: ghcr.io/oasysgames/oasys-op-geth:v1.1.1
entrypoint: geth
environment:
GETH_DATADIR: /data
GETH_HTTP: 'true'
GETH_HTTP_CORSDOMAIN: '*'
GETH_HTTP_VHOSTS: '*'
GETH_HTTP_ADDR: 0.0.0.0
GETH_HTTP_PORT: 8545
GETH_HTTP_API: net,eth,web3
GETH_WS: 'true'
GETH_WS_ORIGINS: '*'
GETH_WS_ADDR: 0.0.0.0
GETH_WS_PORT: 8546
GETH_WS_API: net,eth,web3
GETH_SYNCMODE: full
GETH_GCMODE: archive
GETH_CACHE: 4096
GETH_NODISCOVER: 'true'
GETH_MAXPEERS: 0
GETH_NETWORKID: $OP_CHAIN_ID
GETH_AUTHRPC_VHOSTS: '*'
GETH_AUTHRPC_ADDR: 0.0.0.0
GETH_AUTHRPC_PORT: 8551
GETH_AUTHRPC_JWTSECRET: /assets/jwt.txt
GETH_TXPOOL_PRICELIMIT: 0
GETH_ROLLUP_SUPERCHAIN_UPGRADES: 'false'
GETH_OVERRIDE_CANYON: null # null = no fork
volumes:
- ./assets:/assets
- ./data/op-geth:/data
ports:
- $OP_ETH_RPC_HTTP_PORT:8545/tcp
- $OP_ETH_RPC_WS_PORT:8546/tcp
op-node:
<<: *resident
image: ghcr.io/oasysgames/oasys-opstack/op-node:v1.1.0
entrypoint: op-node
environment:
OP_NODE_L1_ETH_RPC: $L1_ETH_RPC_HTTP
OP_NODE_L1_RPC_KIND: basic
OP_NODE_L1_EPOCH_POLL_INTERVAL: 0
OP_NODE_L1_HTTP_POLL_INTERVAL: 6s
OP_NODE_L2_ENGINE_RPC: $OP_ENGINE_RPC
OP_NODE_L2_ENGINE_AUTH: /assets/jwt.txt
OP_NODE_ROLLUP_CONFIG: /assets/rollup.json
OP_NODE_SEQUENCER_ENABLED: 'true'
OP_NODE_SEQUENCER_L1_CONFS: 5
OP_NODE_VERIFIER_L1_CONFS: 5
OP_NODE_RPC_ENABLE_ADMIN: 'true'
OP_NODE_RPC_ADDR: 0.0.0.0
OP_NODE_RPC_PORT: 8547
OP_NODE_RPC_ADMIN_STATE: /data/admin-state
OP_NODE_SNAPSHOT_LOG: /data/snapshotlog
OP_NODE_P2P_SEQUENCER_KEY: $P2P_SEQUENCER_KEY
OP_NODE_P2P_PRIV_PATH: /data/p2p_priv.txt
OP_NODE_P2P_LISTEN_TCP_PORT: $OP_ROLLUP_P2P_PORT
OP_NODE_P2P_LISTEN_UDP_PORT: $OP_ROLLUP_P2P_PORT
OP_NODE_P2P_DISCOVERY_PATH: memory
OP_NODE_P2P_PEERSTORE_PATH: memory
OP_NODE_P2P_NO_DISCOVERY: 'true'
volumes:
- ./assets:/assets
- ./data/op-node:/data
ports:
- $OP_ROLLUP_P2P_PORT:$OP_ROLLUP_P2P_PORT/tcp
- $OP_ROLLUP_P2P_PORT:$OP_ROLLUP_P2P_PORT/udp
links:
- op-geth
op-batcher:
<<: *resident
image: ghcr.io/oasysgames/oasys-opstack/op-batcher:v1.1.0
entrypoint: op-batcher
environment:
OP_BATCHER_L1_ETH_RPC: $L1_ETH_RPC_HTTP
OP_BATCHER_L2_ETH_RPC: $OP_ETH_RPC_WS
OP_BATCHER_ROLLUP_RPC: $OP_ROLLUP_RPC
OP_BATCHER_PRIVATE_KEY: $OP_BATCHER_KEY
OP_BATCHER_MAX_CHANNEL_DURATION: 1
OP_BATCHER_MAX_PENDING_TX: 4
OP_BATCHER_NUM_CONFIRMATIONS: 4
OP_BATCHER_RESUBMISSION_TIMEOUT: 60s
OP_BATCHER_TXMGR_RECEIPT_QUERY_INTERVAL: 5s
links:
- op-geth
- op-node
op-proposer:
<<: *resident
image: ghcr.io/oasysgames/oasys-opstack/op-proposer:v1.1.0
entrypoint: op-proposer
environment:
OP_PROPOSER_L1_ETH_RPC: $L1_ETH_RPC_HTTP
OP_PROPOSER_ROLLUP_RPC: $OP_ROLLUP_RPC
OP_PROPOSER_L2OO_ADDRESS: $OP_L2OO_ADDR
OP_PROPOSER_PRIVATE_KEY: $OP_PROPOSER_KEY
OP_PROPOSER_ALLOW_NON_FINALIZED: 'true'
OP_PROPOSER_NUM_CONFIRMATIONS: 2
OP_PROPOSER_RESUBMISSION_TIMEOUT: 60s
OP_PROPOSER_TXMGR_RECEIPT_QUERY_INTERVAL: 5s
links:
- op-node
op-message-relayer:
<<: *resident
image: ghcr.io/oasysgames/opstack-message-relayer:v1.0.3
command: ['./node_modules/.bin/tsx', './src/service.ts']
stop_grace_period: 2m30s # wait for all the multi-call transactions to be processed
environment:
MESSAGE_RELAYER__LOG_LEVEL: info
MESSAGE_RELAYER__LOOP_INTERVAL_MS: 5000
MESSAGE_RELAYER__L1_RPC_PROVIDER: $L1_ETH_RPC_HTTP
MESSAGE_RELAYER__L2_RPC_PROVIDER: $OP_ETH_RPC_HTTP
MESSAGE_RELAYER__L1_BLOCK_TIME_SECONDS: 6
MESSAGE_RELAYER__ADDRESS_MANAGER: $OP_AM_ADDR
MESSAGE_RELAYER__L1_CROSS_DOMAIN_MESSENGER: $OP_L1CDM_ADDR
MESSAGE_RELAYER__L1_STANDARD_BRIDGE: $OP_L1BRIDGE_ADDR
MESSAGE_RELAYER__PORTAL_ADDRESS: $OP_PORTAL_ADDR
MESSAGE_RELAYER__OUTPUT_ORACLE: $OP_L2OO_ADDR
MESSAGE_RELAYER__MULTICALL_ADDRESS: 0x5200000000000000000000000000000000000022
MESSAGE_RELAYER__PROVER_PRIVATE_KEY: $MR_PROVER_KEY
MESSAGE_RELAYER__FINALIZER_PRIVATE_KEY: $MR_FINALIZER_KEY
MESSAGE_RELAYER__STATE_FILE_PATH: /app/state/state.json
MESSAGE_RELAYER__QUEUE_PATH: /app/store
volumes:
- ./data/message-relayer/state:/app/state
- ./data/message-relayer/store:/app/store
ports:
- $RELAYER_HTTP_PORT:7300/tcp
verse-verifier:
<<: *resident
image: ghcr.io/oasysgames/verse-verifier:v1.2.7
entrypoint: >
oasvlfy
--config.cli
--config.datastore=/data
--config.hub.chain_id=$L1_CHAIN_ID
--config.hub.rpc=$L1_ETH_RPC_HTTP
--config.p2p.listens=/ip4/0.0.0.0/tcp/$VERIFIER_P2P_PORT
--config.p2p.listens=/ip4/0.0.0.0/udp/$VERIFIER_P2P_PORT/quic
--config.verse
--config.verse.chain_id=$OP_CHAIN_ID
--config.verse.rpc=$OP_ETH_RPC_WS
--config.verse.l2oo=$OP_L2OO_ADDR
--config.submitter
--config.submitter.targets=$OP_CHAIN_ID
--config.submitter.wallet.address=$VERIFY_SUBMITTER_ADDR
--config.submitter.wallet.plain=$VERIFY_SUBMITTER_KEY
$VERIFIER_EXTRA_ARGS
command: start
volumes:
- ./data/verse-verifier:/data
ports:
- $VERIFIER_P2P_PORT:$VERIFIER_P2P_PORT/tcp
- $VERIFIER_P2P_PORT:$VERIFIER_P2P_PORT/udp