-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
117 lines (84 loc) · 3.56 KB
/
Makefile
File metadata and controls
117 lines (84 loc) · 3.56 KB
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
include .env
# Store the value of JWT_SECRET_FILE from .env
JWT_SECRET_FILE_MAINNET := $(JWT_SECRET_FILE)
include .env_holesky
include .env_hoodi
# Store the value of JWT_SECRET_FILE from .env_holesky
JWT_SECRET_FILE_HOLESKY := $(JWT_SECRET_FILE)
JWT_SECRET_FILE_HOODI := $(JWT_SECRET_FILE)
include .env_mpt
generate-jwt:
@[ -f $(JWT_SECRET_FILE_MAINNET) ] || (echo "Generating $(JWT_SECRET_FILE_MAINNET)..." && openssl rand -hex 32 > $(JWT_SECRET_FILE_MAINNET) && echo "$(JWT_SECRET_FILE_MAINNET) created.")
generate-jwt-holesky:
@[ -f $(JWT_SECRET_FILE_HOLESKY) ] || (echo "Generating $(JWT_SECRET_FILE_HOLESKY)..." && openssl rand -hex 32 > $(JWT_SECRET_FILE_HOLESKY) && echo "$(JWT_SECRET_FILE_HOLESKY) created.")
generate-jwt-hoodi:
@[ -f $(JWT_SECRET_FILE_HOODI) ] || (echo "Generating $(JWT_SECRET_FILE_HOODI)..." && openssl rand -hex 32 > $(JWT_SECRET_FILE_HOODI) && echo "$(JWT_SECRET_FILE_HOODI) created.")
## node management
run-node: generate-jwt
docker-compose --env-file .env up node &
run-holesky-node: generate-jwt-holesky
docker-compose --env-file .env_holesky up node &
run-hoodi-node: generate-jwt-hoodi
docker-compose --env-file .env_hoodi up node &
run-hoodi-mpt-node: generate-jwt-hoodi
docker-compose --env-file .env_hoodi --env-file .env_mpt up node &
run-mainnet-mpt-node: generate-jwt
docker-compose --env-file .env --env-file .env_mpt up node &
stop-node:
docker stop morph-node morph-geth
rm-node:
docker rm morph-node morph-geth
## validator management
run-validator: generate-jwt
docker-compose --env-file .env up validator &
run-holesky-validator: generate-jwt-holesky
docker-compose --env-file .env_holesky up validator &
run-hoodi-validator: generate-jwt-hoodi
docker-compose --env-file .env_hoodi up validator &
run-hoodi-mpt-validator: generate-jwt-hoodi
docker-compose --env-file .env_hoodi --env-file .env_mpt up validator &
run-mainnet-mpt-validator: generate-jwt
docker-compose --env-file .env --env-file .env_mpt up validator &
stop-validator:
docker stop validator-node morph-geth
rm-validator:
docker rm validator-node morph-geth
# Common function for download and decompress
define download-and-decompress
@echo "Checking for required tools (wget, tar)..."; \
if ! command -v wget > /dev/null; then \
echo "Error: wget is not installed."; \
exit 1; \
fi; \
if ! command -v tar > /dev/null; then \
echo "Error: tar is not installed."; \
exit 1; \
fi; \
echo "Tools are available."; \
echo "Downloading $(1).tar.gz from $(2)..."; \
if wget -q --show-progress -O $(1).tar.gz $(2)/$(1).tar.gz; then \
echo "$(1).tar.gz downloaded successfully."; \
else \
echo "Error downloading $(1).tar.gz."; \
exit 1; \
fi; \
echo "Decompressing $(1).tar.gz..."; \
if tar -xzvf $(1).tar.gz; then \
echo "$(1).tar.gz decompressed successfully."; \
else \
echo "Error decompressing $(1).tar.gz."; \
exit 1; \
fi; \
rm -rf $(1).tar.gz;
endef
# Targets
download-and-decompress-holesky-snapshot:
$(call download-and-decompress,$(HOLESKY_SNAPSHOT_NAME),https://snapshot.morphl2.io/holesky)
download-and-decompress-hoodi-snapshot:
$(call download-and-decompress,$(HOODI_SNAPSHOT_NAME),https://snapshot.morphl2.io/hoodi)
download-and-decompress-mainnet-snapshot:
$(call download-and-decompress,$(MAINNET_SNAPSHOT_NAME),https://snapshot.morphl2.io/mainnet)
download-and-decompress-hoodi-mpt-snapshot:
$(call download-and-decompress,$(HOODI_MPT_SNAPSHOT_NAME),https://snapshot.morphl2.io/hoodi)
download-and-decompress-mainnet-mpt-snapshot:
$(call download-and-decompress,$(MAINNET_MPT_SNAPSHOT_NAME),https://snapshot.morphl2.io/mainnet)