-
Notifications
You must be signed in to change notification settings - Fork 5
/
docker-compose.yml
122 lines (116 loc) · 3.34 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
services:
mainchain:
# 38333 = P2P, 38332 = RPC
ports: ["38333:38333", "38332:38332"]
healthcheck:
test:
[
"CMD",
"curl",
"--fail",
"-X",
"POST",
"-u",
"user:password",
"http://localhost:38332",
]
# https://github.com/barebitcoin/bitcoin-patched
image: barebitcoin/bitcoin-patched:2024-09-29-signet
volumes: [mainchain-data:/root/drivechain]
restart: unless-stopped
command:
- drivechaind
- -rpcuser=user
- -rpcpassword=password
- -server
- -signet
- -signetblocktime=60
- -signetchallenge=00141f61d57873d70d28bd28b3c9f9d6bf818b5a0d6a
- -listen
- -rpcbind=0.0.0.0
- -rpcallowip=0.0.0.0/0
- -debug=rpc
- -debug=net
- -txindex
- -fallbackfee=0.00021
- -zmqpubsequence=tcp://0.0.0.0:29000
- -addnode=drivechain.live:8383
zside:
image: barebitcoin/zside:latest
depends_on:
mainchain:
condition: service_healthy
healthcheck:
# This doesn't verify that' we're able to query the JSON-RPC interface,
# but merely that the container is listening on the RPC port.
test: ["CMD", "curl", "http://localhost:20000"]
interval: 1s
start_interval: 20s
volumes:
- $PWD/zcash.conf:/root/.zcash/zcash.conf
# for some reason zcash requires the conf file, unable to pass as CLI opts
environment:
RUST_LOG: info # logs from the Rust Drivechain lib is controlled here
ports:
- 20000:20000
command:
- -regtest
- -printtoconsole
- -mainhost=mainchain
- -rpcuser=user
- -rpcpassword=password
- -rpcallowip=0.0.0.0/0
- -rpcbind=0.0.0.0:20000
- -rpcport=20000
testchain:
image: barebitcoin/testchain:latest
healthcheck:
# This doesn't verify that' we're able to query the JSON-RPC interface,
# but merely that the container is listening on the RPC port.
test: ["CMD", "curl", "http://localhost:19000"]
interval: 1s
start_interval: 20s
depends_on:
mainchain:
condition: service_healthy
volumes: [$HOME/.testchain:/testchain]
ports: ["19000:19000"]
command:
- testchaind
- -printtoconsole
- -slot=0
- -rpcallowip=0.0.0.0/0
- -rpcbind=0.0.0.0:19000
- -rpcport=19000
- -rpcuser=user
- -rpcpassword=password
- -mainchainrpcport=18443
- -mainchainrpchost=mainchain
- -mainchainrpcuser=user
- -mainchainrpcpassword=password
- -txindex
- -regtest
- -datadir=/testchain
ethside:
image: barebitcoin/ethside # TODO: change this once the image is pushed somewhere
depends_on:
mainchain:
condition: service_healthy
entrypoint: geth
ports:
- 8545:8545 # HTTP RPC
- 8551:8551 # Authenticated RPC
command:
- --http # enable HTTP RPC
# 'personal' API is needed for replicating the old ETH tutorial
# made by Paul. Think it's some sort of wallet functionality? Not sure,
# tbh. Went looking for a list of available APIs, without finding
# anything.
- --http.api=eth,web3,personal,admin,jeth,miner,net,txpool
- --http.addr=0.0.0.0
- --main.host=mainchain
- --main.password=password
- --main.user=user
- --main.port=18443
volumes:
mainchain-data: