Skip to content

Commit

Permalink
v4.ident.me is down, add alternatives (#210)
Browse files Browse the repository at this point in the history
  • Loading branch information
mdehoog authored Mar 1, 2024
1 parent 8b82985 commit 63cae33
Showing 1 changed file with 29 additions and 3 deletions.
32 changes: 29 additions & 3 deletions op-node-entrypoint
Original file line number Diff line number Diff line change
@@ -1,9 +1,30 @@
#!/bin/bash
set -eu

get_public_ip() {
# Define a list of HTTP-based providers
local PROVIDERS=(
"http://ifconfig.me"
"http://api.ipify.org"
"http://ipecho.net/plain"
"http://v4.ident.me"
)
# Iterate through the providers until an IP is found or the list is exhausted
for provider in "${PROVIDERS[@]}"; do
local IP
IP=$(curl -s "$provider")
# Check if IP contains a valid format (simple regex for an IPv4 address)
if [[ $IP =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "$IP"
return 0
fi
done
return 1
}

if [[ -z "$OP_NODE_NETWORK" ]]; then
echo "expected OP_NODE_NETWORK to be set" 1>&2
exit 1
echo "expected OP_NODE_NETWORK to be set" 1>&2
exit 1
fi

# wait until local geth comes up (authed so will return 401 without token)
Expand All @@ -13,7 +34,12 @@ until [ "$(curl -s -w '%{http_code}' -o /dev/null "${OP_NODE_L2_ENGINE_RPC/ws/ht
done

# public-facing P2P node, advertise public IP address
PUBLIC_IP=$(curl -s v4.ident.me)
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 OP_NODE_P2P_ADVERTISE_IP=$PUBLIC_IP

echo "$OP_NODE_L2_ENGINE_AUTH_RAW" > "$OP_NODE_L2_ENGINE_AUTH"
Expand Down

0 comments on commit 63cae33

Please sign in to comment.