forked from molla202/go-quai
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
135 lines (119 loc) · 7.48 KB
/
Makefile
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
# This Makefile is meant to be used by people that do not usually work
# with Go source code. If you know what GOPATH is then you probably
# don't need to bother with make.
.PHONY: go-quai all clean
GOBIN = ./build/bin
GO ?= latest
GORUN = env GO111MODULE=on go run
go-quai:
$(GORUN) build/ci.go install ./cmd/go-quai
@echo "Done building."
@echo "Run \"$(GOBIN)/quai\" to launch go-quai."
bootnode:
$(GORUN) build/ci.go install ./cmd/bootnode
@echo "Done building."
@echo "Run \"$(GOBIN)/bootnode\" to launch bootnode binary."
debug:
go build -gcflags=all="-N -l" -v -o build/bin/go-quai ./cmd/go-quai
all:
$(GORUN) build/ci.go install
test: all
$(GORUN) build/ci.go test
lint: ## Run linters.
$(GORUN) build/ci.go lint
clean:
env GO111MODULE=on go clean -cache
rm -fr build/_workspace/pkg/ $(GOBIN)/*
include network.env
# Build the base command
# WARNING: WS_ADDR is a sensitive interface and should only be exposed to trusted networks
BASE_CMD = ./build/bin/go-quai --$(NETWORK) --syncmode full --verbosity 3
BASE_CMD += --http --http.vhosts=* --http.addr $(HTTP_ADDR) --http.api $(HTTP_API)
BASE_CMD += --ws --ws.addr $(WS_ADDR) --ws.api $(WS_API)
ifeq ($(ENABLE_ARCHIVE),true)
BASE_CMD += --gcmode archive
endif
ifeq ($(ENABLE_UNLOCK),true)
BASE_CMD += --allow-insecure-unlock
endif
ifeq ($(BOOTNODE),true)
BASE_CMD += --nodekey bootnode.key --ws.origins=$(WS_ORIG) --http.corsdomain=$(HTTP_CORSDOMAIN)
endif
ifeq ($(CORS),true)
BASE_CMD += --ws.origins=$(WS_ORIG) --http.corsdomain=$(HTTP_CORSDOMAIN)
endif
ifeq ($(QUAI_MINING),true)
BASE_CMD += --mine --miner.threads $(THREADS)
endif
# Build suburl strings for slice specific subclient groups
# WARNING: Only connect to dom/sub clients over a trusted network.
ifeq ($(REGION),2)
PRIME_SUBS += ,,ws://127.0.0.1:$(REGION_$(REGION)_PORT_WS)
endif
ifeq ($(REGION),1)
PRIME_SUBS += ,ws://127.0.0.1:$(REGION_$(REGION)_PORT_WS),
endif
ifeq ($(REGION),0)
PRIME_SUBS += ws://127.0.0.1:$(REGION_$(REGION)_PORT_WS),,
endif
ifeq ($(ZONE),2)
REGION_SUBS =,,ws://127.0.0.1:$(ZONE_$(REGION)_$(ZONE)_PORT_WS)
endif
ifeq ($(ZONE),1)
REGION_SUBS =,ws://127.0.0.1:$(ZONE_$(REGION)_$(ZONE)_PORT_WS),
endif
ifeq ($(ZONE),0)
REGION_SUBS =ws://127.0.0.1:$(ZONE_$(REGION)_$(ZONE)_PORT_WS),,
endif
# Build specific prime, region, and zone commands for run-slice
PRIME_CMD = $(BASE_CMD) --miner.etherbase $(PRIME_COINBASE) --port $(PRIME_PORT_TCP)
PRIME_CMD += --http.port $(PRIME_PORT_HTTP)
PRIME_CMD += --ws.port $(PRIME_PORT_WS)
PRIME_CMD += --sub.urls "$(PRIME_SUBS)"
PRIME_LOG_FILE = nodelogs/prime.log
REGION_CMD = $(BASE_CMD) --region $(REGION) --miner.etherbase $(REGION_$(REGION)_COINBASE) --port $(REGION_$(REGION)_PORT_TCP)
REGION_CMD += --http.port $(REGION_$(REGION)_PORT_HTTP)
REGION_CMD += --ws.port $(REGION_$(REGION)_PORT_WS)
REGION_CMD += --dom.url ws://127.0.0.1:$(PRIME_PORT_WS)
REGION_CMD += --sub.urls "$(REGION_SUBS)"
REGION_LOG_FILE = nodelogs/region-$(REGION).log
ZONE_CMD = $(BASE_CMD) --region $(REGION) --zone $(ZONE) --miner.etherbase $(ZONE_$(REGION)_$(ZONE)_COINBASE) --port $(ZONE_$(REGION)_$(ZONE)_PORT_TCP)
ZONE_CMD += --http.port $(ZONE_$(REGION)_$(ZONE)_PORT_HTTP)
ZONE_CMD += --ws.port $(ZONE_$(REGION)_$(ZONE)_PORT_WS)
ZONE_CMD += --dom.url ws://127.0.0.1:$(REGION_$(REGION)_PORT_WS)
ZONE_LOG_FILE = nodelogs/zone-$(REGION)-$(ZONE).log
run-slice:
ifeq (,$(wildcard nodelogs))
mkdir nodelogs
endif
$(PRIME_CMD) >> $(PRIME_LOG_FILE) 2>&1 &
$(REGION_CMD) >> $(REGION_LOG_FILE) 2>&1 &
$(ZONE_CMD) >> $(ZONE_LOG_FILE) 2>&1 &
run-all:
ifeq (,$(wildcard nodelogs))
mkdir nodelogs
endif
@nohup $(BASE_CMD) --miner.etherbase $(PRIME_COINBASE) --port $(PRIME_PORT_TCP) --http.port $(PRIME_PORT_HTTP) --ws.port $(PRIME_PORT_WS) --sub.urls $(PRIME_SUB_URLS) >> nodelogs/prime.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(REGION_0_COINBASE) --port $(REGION_0_PORT_TCP) --http.port $(REGION_0_PORT_HTTP) --ws.port $(REGION_0_PORT_WS) --dom.url $(REGION_0_DOM_URL):$(PRIME_PORT_WS) --sub.urls $(REGION_0_SUB_URLS) --region 0 >> nodelogs/region-0.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(REGION_1_COINBASE) --port $(REGION_1_PORT_TCP) --http.port $(REGION_1_PORT_HTTP) --ws.port $(REGION_1_PORT_WS) --dom.url $(REGION_1_DOM_URL):$(PRIME_PORT_WS) --sub.urls $(REGION_1_SUB_URLS) --region 1 >> nodelogs/region-1.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(REGION_2_COINBASE) --port $(REGION_2_PORT_TCP) --http.port $(REGION_2_PORT_HTTP) --ws.port $(REGION_2_PORT_WS) --dom.url $(REGION_2_DOM_URL):$(PRIME_PORT_WS) --sub.urls $(REGION_2_SUB_URLS) --region 2 >> nodelogs/region-2.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(ZONE_0_0_COINBASE) --port $(ZONE_0_0_PORT_TCP) --http.port $(ZONE_0_0_PORT_HTTP) --ws.port $(ZONE_0_0_PORT_WS) --dom.url $(ZONE_0_0_DOM_URL):$(REGION_0_PORT_WS) --region 0 --zone 0 >> nodelogs/zone-0-0.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(ZONE_0_1_COINBASE) --port $(ZONE_0_1_PORT_TCP) --http.port $(ZONE_0_1_PORT_HTTP) --ws.port $(ZONE_0_1_PORT_WS) --dom.url $(ZONE_0_1_DOM_URL):$(REGION_0_PORT_WS) --region 0 --zone 1 >> nodelogs/zone-0-1.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(ZONE_0_2_COINBASE) --port $(ZONE_0_2_PORT_TCP) --http.port $(ZONE_0_2_PORT_HTTP) --ws.port $(ZONE_0_2_PORT_WS) --dom.url $(ZONE_0_2_DOM_URL):$(REGION_0_PORT_WS) --region 0 --zone 2 >> nodelogs/zone-0-2.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(ZONE_1_0_COINBASE) --port $(ZONE_1_0_PORT_TCP) --http.port $(ZONE_1_0_PORT_HTTP) --ws.port $(ZONE_1_0_PORT_WS) --dom.url $(ZONE_1_0_DOM_URL):$(REGION_1_PORT_WS) --region 1 --zone 0 >> nodelogs/zone-1-0.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(ZONE_1_1_COINBASE) --port $(ZONE_1_1_PORT_TCP) --http.port $(ZONE_1_1_PORT_HTTP) --ws.port $(ZONE_1_1_PORT_WS) --dom.url $(ZONE_1_1_DOM_URL):$(REGION_1_PORT_WS) --region 1 --zone 1 >> nodelogs/zone-1-1.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(ZONE_1_2_COINBASE) --port $(ZONE_1_2_PORT_TCP) --http.port $(ZONE_1_2_PORT_HTTP) --ws.port $(ZONE_1_2_PORT_WS) --dom.url $(ZONE_1_2_DOM_URL):$(REGION_1_PORT_WS) --region 1 --zone 2 >> nodelogs/zone-1-2.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(ZONE_2_0_COINBASE) --port $(ZONE_2_0_PORT_TCP) --http.port $(ZONE_2_0_PORT_HTTP) --ws.port $(ZONE_2_0_PORT_WS) --dom.url $(ZONE_2_0_DOM_URL):$(REGION_2_PORT_WS) --region 2 --zone 0 >> nodelogs/zone-2-0.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(ZONE_2_1_COINBASE) --port $(ZONE_2_1_PORT_TCP) --http.port $(ZONE_2_1_PORT_HTTP) --ws.port $(ZONE_2_1_PORT_WS) --dom.url $(ZONE_2_1_DOM_URL):$(REGION_2_PORT_WS) --region 2 --zone 1 >> nodelogs/zone-2-1.log 2>&1 &
@nohup $(BASE_CMD) --miner.etherbase $(ZONE_2_2_COINBASE) --port $(ZONE_2_2_PORT_TCP) --http.port $(ZONE_2_2_PORT_HTTP) --ws.port $(ZONE_2_2_PORT_WS) --dom.url $(ZONE_2_2_DOM_URL):$(REGION_2_PORT_WS) --region 2 --zone 2 >> nodelogs/zone-2-2.log 2>&1 &
stop:
ifeq ($(shell uname -s), $(filter $(shell uname -s), Darwin Linux))
@-pkill -f ./build/bin/go-quai;
@while pgrep quai >/dev/null; do \
echo "Stopping all Quai Network nodes, please wait until terminated."; \
sleep 3; \
done;
else
@echo "Stopping all Quai Network nodes, please wait until terminated.";
@if pgrep quai; then killall -w quai; fi
endif