-
Notifications
You must be signed in to change notification settings - Fork 16
Add HyperSync DNS troubleshooting docs #860
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
JasoonS
wants to merge
1
commit into
main
Choose a base branch
from
docs/hypersync-dns-troubleshooting
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,142 @@ | ||
| --- | ||
| id: hypersync-troubleshooting | ||
| title: Troubleshooting | ||
| sidebar_label: Troubleshooting | ||
| slug: /troubleshooting | ||
| description: Solutions for common HyperSync and HyperRPC connectivity issues including DNS resolution failures. | ||
| --- | ||
|
|
||
| # HyperSync Troubleshooting | ||
|
|
||
| This guide covers common connectivity issues with HyperSync and HyperRPC endpoints. If you don't find a solution here, please join our [Discord community](https://discord.gg/DhfFhzuJQh) for additional support. | ||
|
|
||
| ## DNS Resolution Failures | ||
|
|
||
| ### Symptoms | ||
|
|
||
| - HyperSync or HyperRPC requests hang or timeout intermittently | ||
| - `curl` to HyperSync endpoints is slow on the first request but works after retrying | ||
| - Errors like `Could not resolve host` or `SERVFAIL` when querying `*.hypersync.xyz` or `*.rpc.hypersync.xyz` | ||
| - The issue appears on cold start (first request after a period of inactivity) but resolves after a successful lookup | ||
|
|
||
| ### Cause | ||
|
|
||
| HyperSync and HyperRPC endpoints use geographic load balancing (GSLB) with a multi-step DNS delegation chain. Some ISP and home router DNS resolvers — particularly in regions like South Africa, parts of Asia, and other areas far from US/EU — cannot follow this delegation chain correctly and return `SERVFAIL` instead of resolving the domain. | ||
|
|
||
| The issue is made worse by the low TTL (time-to-live) on DNS records, which means your resolver needs to re-resolve the full chain frequently rather than serving from cache. | ||
|
|
||
| **This is a client-side DNS resolver issue, not a HyperSync service outage.** Public DNS resolvers like Cloudflare and Google handle the resolution correctly. | ||
|
|
||
| ### How to verify | ||
|
|
||
| You can confirm this is a DNS issue by testing with different resolvers: | ||
|
|
||
| ```bash | ||
| # This will likely fail or be slow (your system/ISP resolver) | ||
| dig eth.hypersync.xyz A | ||
|
|
||
| # These should succeed immediately | ||
| dig eth.hypersync.xyz A @1.1.1.1 # Cloudflare | ||
| dig eth.hypersync.xyz A @8.8.8.8 # Google | ||
| ``` | ||
|
|
||
| If the first command returns `status: SERVFAIL` but the others return `status: NOERROR` with IP addresses, your system DNS resolver is the problem. | ||
|
|
||
| ### Solution | ||
|
|
||
| Configure your system to use public DNS resolvers (Cloudflare and Google) instead of your ISP/router DNS. | ||
|
|
||
| #### Linux (systemd-resolved — Ubuntu, Debian, Fedora, etc.) | ||
|
|
||
| ```bash | ||
| sudo mkdir -p /etc/systemd/resolved.conf.d | ||
|
|
||
| echo '[Resolve] | ||
| DNS=1.1.1.1 8.8.8.8 1.0.0.1 8.8.4.4 | ||
| FallbackDNS=9.9.9.9 | ||
| Cache=yes | ||
| CacheFromLocalhost=yes' | sudo tee /etc/systemd/resolved.conf.d/dns.conf | ||
|
|
||
| sudo systemctl restart systemd-resolved | ||
| ``` | ||
|
|
||
| To revert: | ||
|
|
||
| ```bash | ||
| sudo rm /etc/systemd/resolved.conf.d/dns.conf | ||
| sudo systemctl restart systemd-resolved | ||
| ``` | ||
|
|
||
| #### macOS | ||
|
|
||
| ```bash | ||
| # Replace Wi-Fi with your network interface name if different | ||
| sudo networksetup -setdnsservers Wi-Fi 1.1.1.1 8.8.8.8 1.0.0.1 8.8.4.4 | ||
| ``` | ||
|
|
||
| To revert: | ||
|
|
||
| ```bash | ||
| sudo networksetup -setdnsservers Wi-Fi Empty | ||
| ``` | ||
|
|
||
| #### Windows | ||
|
|
||
| 1. Open **Settings > Network & Internet > Wi-Fi > Hardware properties** | ||
| 2. Click **Edit** next to DNS server assignment | ||
| 3. Set to **Manual** and enter: | ||
| - Preferred DNS: `1.1.1.1` | ||
| - Alternate DNS: `8.8.8.8` | ||
|
|
||
| #### Docker containers | ||
|
|
||
| If running HyperSync clients inside Docker, add DNS configuration to your container or compose file: | ||
|
|
||
| ```yaml | ||
| # docker-compose.yml | ||
| services: | ||
| your-service: | ||
| dns: | ||
| - 1.1.1.1 | ||
| - 8.8.8.8 | ||
| ``` | ||
|
|
||
| ### DNS resolvers reference | ||
|
|
||
| | IP | Provider | Notes | | ||
| |---|---|---| | ||
| | `1.1.1.1` / `1.0.0.1` | Cloudflare DNS | Generally the fastest global resolver | | ||
| | `8.8.8.8` / `8.8.4.4` | Google Public DNS | Reliable with good global coverage | | ||
| | `9.9.9.9` | Quad9 | Privacy-focused, blocks known malicious domains | | ||
|
|
||
| ## Connection Timeouts | ||
|
|
||
| ### Symptoms | ||
|
|
||
| - Requests to HyperSync endpoints timeout after DNS resolves successfully | ||
| - `curl https://<chain>.hypersync.xyz/height` hangs or returns a connection error | ||
|
|
||
| ### Possible causes | ||
|
|
||
| 1. **Firewall or corporate network blocking:** Some corporate or university networks block non-standard traffic. Try from a different network to confirm. | ||
| 2. **Regional routing issues:** In rare cases, network routing between your region and the HyperSync servers may be degraded. This is typically transient. | ||
|
|
||
| ### How to verify | ||
|
|
||
| ```bash | ||
| # Check if the endpoint is reachable | ||
| curl -v --max-time 10 https://eth.hypersync.xyz/height | ||
|
|
||
| # Check latency to the resolved IP | ||
| ping -c 5 $(dig +short eth.hypersync.xyz A @1.1.1.1 | head -1) | ||
| ``` | ||
|
|
||
| If `curl` succeeds with a block height number, the service is healthy and the issue is likely on the network path between you and the server. | ||
|
|
||
| ## Getting Help | ||
|
|
||
| If you're still experiencing issues after trying the above solutions: | ||
|
|
||
| 1. Run the DNS check commands above and note the output | ||
| 2. Note your geographic location and ISP | ||
| 3. Share these details in our [Discord community](https://discord.gg/DhfFhzuJQh) so we can help debug further |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I should make this slightly less verbose and add a section on auth issues.