-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Expand file tree
/
Copy pathconsensus-entrypoint
More file actions
executable file
·64 lines (53 loc) · 1.5 KB
/
consensus-entrypoint
File metadata and controls
executable file
·64 lines (53 loc) · 1.5 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
#!/bin/bash
set -eu
get_public_ip() {
local PROVIDERS=(
"http://ifconfig.me"
"http://api.ipify.org"
"http://ipecho.net/plain"
"http://v4.ident.me"
)
for provider in "${PROVIDERS[@]}"; do
local IP
IP=$(curl -s --max-time 10 --connect-timeout 5 "$provider")
if [[ $IP =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "$IP"
return 0
fi
done
return 1
}
if [[ -z "${BASE_NODE_NETWORK:-}" ]]; then
echo "expected BASE_NODE_NETWORK to be set" 1>&2
exit 1
fi
if [[ -z "${BASE_NODE_L2_ENGINE_RPC:-}" ]]; then
echo "expected BASE_NODE_L2_ENGINE_RPC to be set" 1>&2
exit 1
fi
if [[ -z "${BASE_NODE_L2_ENGINE_AUTH:-}" ]]; then
echo "expected BASE_NODE_L2_ENGINE_AUTH to be set" 1>&2
exit 1
fi
if [[ -z "${BASE_NODE_L2_ENGINE_AUTH_RAW:-}" ]]; then
echo "expected BASE_NODE_L2_ENGINE_AUTH_RAW to be set" 1>&2
exit 1
fi
until [ "$(curl -s --max-time 10 --connect-timeout 5 -w '%{http_code}' -o /dev/null "${BASE_NODE_L2_ENGINE_RPC/ws/http}")" -eq 401 ]; do
echo "waiting for execution client to be ready"
sleep 5
done
if PUBLIC_IP=$(get_public_ip); then
echo "fetched public IP is: $PUBLIC_IP"
else
echo "Could not retrieve public IP."
exit 8
fi
export BASE_NODE_P2P_ADVERTISE_IP=$PUBLIC_IP
echo "$BASE_NODE_L2_ENGINE_AUTH_RAW" > "$BASE_NODE_L2_ENGINE_AUTH"
if [[ -n "${BASE_NODE_SOURCE_L2_RPC:-}" ]]; then
echo "Running base-consensus in follow mode because BASE_NODE_SOURCE_L2_RPC is set"
exec ./base-consensus follow
else
exec ./base-consensus node
fi