forked from tloriato/docker-multichain
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
158 lines (155 loc) · 6.12 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
version: '2'
services:
# basenode:
# build: ./base
# stdin_open: true
# tty: true
masternode:
build: ./master
stdin_open: true
expose:
- 7557
- 2750
- 8002
ports:
- "8001:8002"
environment:
CHAINNAME: MyChain
NETWORK_PORT: 7557
RPC_PORT: 8002
RPC_USER: multichainrpc
RPC_PASSWORD: this-is-insecure-change-it
RPC_ALLOW_IP: 0.0.0.0/0
# Basic Chain Parameters
PARAM_CHAIN_PROTOCOL: chain-protocol|multichain
PARAM_CHAIN_DESCRIPTION: chain-description|SDECv0.1
PARAM_CHAIN_IS_TESTNET: chain-is-testnet|true
PARAM_TARGET_BLOCK_TIME: target-block-time|30
PARAM_MAX_BLOCK_SIZE: maximum-block-size|2097152
PARAM_MAX_CHUNK_SIZE: maximum-chunk-size|10486
PARAM_MAX_CHUNK_COUNT: maximum-chunk-count|1024
PARAM_ROOT_STREAM_NAME: root-stream-name|events
# Global Permissions
PARAM_ANYONE_CAN_CONNECT: anyone-can-connect|true
PARAM_ANYONE_CAN_RECEIVE: anyone-can-receive|true
PARAM_ANYONE_CAN_SEND: anyone-can-send|true
PARAM_ANYONE_CAN_RECEIVE_EMPTY: anyone-can-receive-empty|true
PARAM_ANYONE_CAN_CREATE: anyone-can-create|false
PARAM_ANYONE_CAN_ISSUE: anyone-can-issue|true
PARAM_ANYONE_CAN_MINE: anyone-can-mine|false
PARAM_ANYONE_CAN_ACTIVATE: anyone-can-activate|false
PARAM_ANYONE_CAN_ADMIN: anyone-can-admin:false
PARAM_SUPPORT_MINER_PRECHECK: support-miner-precheck|true
PARAM_ALLOW_ARBITRARY_OUTPUTS: allow-arbitrary-outputs|false
PARAM_ALLOW_P2SH_OUTPUTS: allow-p2sh-outputs|true
PARAM_ALLOW_MULTISIG_OUTPUTS: allow-multisig-outputs|true
# Consensus Requirements
PARAM_SETUP_FIRST_BLOCKS: setup-first-blocks|5
PARAM_ADMIN_CONSENSUS_UPGRADE: admin-consensus-upgrade|1
PARAM_ADMIN_CONSENSUS_TXFILTER: admin-consensus-txfilter|1
PARAM_ADMIN_CONSENSUS_ADMIN: admin-consensus-admin|1
PARAM_ADMIN_CONSENSUS_ACTIVATE: admin-consensus-activate|1
PARAM_ADMIN_CONSENSUS_MINE: admin-consensus-mine|1
PARAM_ADMIN_CONSENSUS_CREATE: admin-consensus-create|1
PARAM_ADMIN_CONSENSUS_ISSUE: admin-consensus-issue|1
# Defaults for Consensus Related Runtime Parameters
PARAM_LOCK_ADMIN_MINE_ROUNDS: lock-admin-mine-rounds|10
PARAM_MINING_REQUIRES_PEERS: mining-requires-peers|true
PARAM_MINE_EMPTY_ROUNDS: mine-empty-rounds|-1
PARAM_MINING_TURNOVER: mining-turnover|1
# Native Blockchain Currency:
PARAM_INITIAL_BLOCK_REWARD: initial-block-reward|0 # Remove later
PARAM_FIRST_BLOCK_REWARD: first-block-reward|-1 # Remove later
PARAM_REWARD_HALVING_INTERVAL: reward-halving-interval|52560
PARAM_REWARD_SPENDABLE_DELAY: reward-spendable-delay|5
PARAM_MINIMUM_PER_OUTPUT: minimum-per-output|0
PARAM_MAX_PERPOUTPUT: maximum-per-output|100000000000000
PARAM_MINIMUM_OFFCHAIN_FEE: minimum-offchain-fee|0
PARAM_MINIMUM_RELAY_FEE: minimum-relay-fee|0 #
PARAM_NATIVE_CURRENCY_MULTIPLE: native-currency-multiple|1000
# Advanced Mining Parametrs
PARAM_SKIP_POW_CHECK: skip-pow-check|false
PARAM_POW_MIN_BITS: pow-minimum-bits|10
PARAM_TARGET_ADJUST_FREQ: target-adjust-freq|300 # 5min
PARAM_ALLOW_MIN_DIFFICULTY_BLOCKS: allow-min-difficulty-blocks|false
# Transaction Limits
PARAM_ONLY_ACCEPT_STD_TXS: only-accept-std-txs|true
PARAM_MAX_STD_TX_SIZE: max-std-tx-size|4194304 # Largest Transaction Ever in Bitcoin
PARAM_MAX_STD_OP_RETURNS_COUNT: max-std-op-returns-count|32
PARAM_MAX_STD_OP_RETURNS_SIZE: max-std-op-return-size|2097152
PARAM_MAX_STD_OP_DROPS_COUNT: max-std-op-drops-count|5
PARAM_MAX_STD_ELEMENT_SIZE: max-std-element-size|40000
slavenode:
build: ./node
stdin_open: true
expose:
- 7557
- 8002
ports:
- "8002:8002"
environment:
CHAINNAME: MyChain
NETWORK_PORT: 7557
RPC_PORT: 8002
RPC_USER: multichainrpc
RPC_PASSWORD: this-is-insecure-change-it
RPC_ALLOW_IP: 0.0.0.0/0.0.0.0
MASTER_NODE: masternode
links:
- masternode
depends_on:
- masternode
explorernode:
build: ./explorer
stdin_open: true
expose:
- 7557
- 8002
environment:
CHAINNAME: MyChain
NETWORK_PORT: 7557
RPC_PORT: 8002
RPC_USER: multichainrpc
RPC_PASSWORD: this-is-insecure-change-it
RPC_ALLOW_IP: 0.0.0.0/0.0.0.0
MASTER_NODE: masternode
REDIS_PORT: 6379
REDIS_HOST: redis-db
REDIS_DB: 0
links:
- masternode
- mysqldb
- redis-db
depends_on:
- masternode
- mysqldb
- redis-db
mysqldb:
image: mysql:5.7
restart: always
ports:
# <Port exposed> : < MySQL Port running inside container>
- '4306:3306'
expose:
# Opens port 3306 on the container
- '3306'
environment:
MYSQL_DATABASE: 'abe'
# So you don't have to use root, but you can if you like
MYSQL_USER: 'abe'
# You can use whatever password you like
MYSQL_PASSWORD: 'PASSWORD'
# Password for root access
MYSQL_ROOT_PASSWORD: 'PASSWORD'
redis-db:
image: redis:5.0-alpine
restart: always
ports:
- '6379:6379'
expose:
- '6379'
# Where our data will be persisted
# volumes:
# - my-db:/var/lib/mysql
# volumes:
# my-db: