-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathdocker-compose.rollkit.yml
132 lines (126 loc) · 4.31 KB
/
docker-compose.rollkit.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
services:
beacond:
image: ghcr.io/rollkit/beacon-kit:v0.1.3
container_name: beacond
volumes:
- ./testing/files:/beacon-kit/testing/files
- ./.tmp:/beacon-kit/.tmp
- /var/run/docker.sock:/var/run/docker.sock
entrypoint: /beacon-kit/testing/files/entrypoint.sh
depends_on:
celestia-network-validator:
condition: service_healthy
celestia-network-bridge:
condition: service_healthy
reth:
condition: service_started
networks:
- rollkit-network
reth:
image: ghcr.io/paradigmxyz/reth # Use the official Reth image
container_name: reth
ports:
- "30303:30303" # P2P port
- "8545:8545" # HTTP port
- "8551:8551" # Auth RPC port
volumes:
- ./testing/files:/testapp_files # Mount the directory for test app files
- ./.tmp:/.tmp # Mount a temporary directory for data
command: |
node
--chain /testapp_files/eth-genesis.json
--http
--http.addr 0.0.0.0
--http.api eth,net,debug
--authrpc.addr 0.0.0.0
--authrpc.jwtsecret /testapp_files/jwt.hex
--datadir /.tmp/eth-home
--ipcpath /.tmp/eth-home/eth-engine.ipc
networks:
- rollkit-network
celestia-network-validator:
image: ghcr.io/celestiaorg/celestia-app:v3.0.0-mocha
container_name: celestia-network-validator
volumes:
- ./.tmp/celestia-validator:/home/celestia
- ./testing/files/celestia-validator:/testapp_files
ports:
- "9090:9090"
- "26656:26656"
- "26657:26657"
entrypoint: /testapp_files/entrypoint.sh
healthcheck:
test:
[
"CMD-SHELL",
'/bin/sh -c ''BLOCK_HEIGHT=$(curl -sf http://localhost:26657/status | jq -r .result.sync_info.latest_block_height); if [ "$$BLOCK_HEIGHT" -gt 1 ]; then exit 0; else echo "Block height too low: $$BLOCK_HEIGHT"; exit 1; fi''',
]
interval: 1s
timeout: 5s
retries: 10
start_period: 5s
networks:
- rollkit-network
celestia-network-bridge:
image: ghcr.io/celestiaorg/celestia-node:v0.20.1-mocha
container_name: celestia-network-bridge
environment:
- P2P_NETWORK=private
- "CELESTIA_CUSTOM=private:BFCEC14C1A50F3549777ED9EF350A9D79BE826C7836CD4FBEFE9C9C4F61A111F"
volumes:
- ./testing/files/celestia-bridge:/testapp_files
- ./.tmp/celestia-bridge:/home/celestia
entrypoint: /testapp_files/entrypoint.sh
command: celestia bridge start --p2p.network private --core.ip celestia-network-validator --rpc.addr 0.0.0.0 --rpc.port 26658 --keyring.keyname bridge
ports:
- "26658:26658"
- "2121:2121"
depends_on:
celestia-network-validator:
condition: service_healthy
healthcheck:
test:
[
"CMD-SHELL",
'AUTH_TOKEN=$(celestia bridge auth read --node.store=/home/celestia 2>/dev/null | tail -n 1); OUTPUT=$(curl -sf --max-time 0.5 -X POST -H "Content-type: application/json" -H "Accept: application/json" -H "Authorization: Bearer $$AUTH_TOKEN" -d ''{"id":1,"jsonrpc":"2.0","method":"header.SyncWait","params":[]}'' http://0.0.0.0:26658); if [ $$? -eq 0 ]; then exit 0; else echo "Catching up. $$OUTPUT"; exit 1; fi ',
]
interval: 1s
timeout: 5s
retries: 10
start_period: 5s
networks:
- rollkit-network
simapp-validator:
image: ghcr.io/celestiaorg/celestia-zkevm-ibc-demo/simapp:latest
container_name: simapp-validator
volumes:
- ./.tmp/simapp-validator:/home/celestia
- ./testing/files/simapp-validator:/testapp_files
entrypoint: /testapp_files/entrypoint.sh
ports:
- "9190:9090"
- "5123:26657"
networks:
- rollkit-network
celestia-prover:
image: ghcr.io/celestiaorg/celestia-zkevm-ibc-demo/celestia-prover:latest
container_name: celestia-prover
environment:
# TENDERMINT_RPC_URL should be the SimApp which is acting as a substitute
# for Celestia (with IBC Eurekea enabled).
- TENDERMINT_RPC_URL=http://simapp-validator:26657
- RPC_URL=http://reth:8545
- PROTO_DESCRIPTOR_PATH=proto_descriptor.bin
ports:
- "50051:50051"
depends_on:
beacond:
condition: service_started
networks:
- rollkit-network
networks:
rollkit-network:
driver: bridge
ipam:
config:
- subnet: 172.16.0.0/24