DNS System
The Gurted ecosystem features a custom DNS system that enables domain resolution for the gurt:// protocol. Unlike traditional DNS, Gurted DNS is designed specifically for the decentralized web ecosystem, providing:
- Domain registration with approval workflows
- DNS record management (A, AAAA, CNAME, TXT)
- Subdomain support with delegation
- CNAME chain resolution
- Nameserver delegation with glue records
DNS queries in Gurted are transmitted using the GURT protocol, which, similar to DNS over HTTPS (DoH), encrypts DNS resolution under TLS. This ensures that your DNS requests are private and secure, making it impossible for your internet provider to see which sites you visit unless they map the IP.
Record Types
A Records
- Purpose: Map domain names to IPv4 addresses
- Format:
example.web → 192.168.1.1
AAAA Records
- Purpose: Map domain names to IPv6 addresses
- Format:
example.web → 2001:db8::1
CNAME Records
- Purpose: Create aliases that point to other domain names
- Format:
www.example.web → example.web
- Chain Resolution: Supports up to 5 levels of CNAME chaining
TXT Records
- Purpose: Store arbitrary text data
- Format:
example.web → "v=spf1 include:_spf.example.web ~all"
DNS Resolution Flow
1. Basic Domain Resolution
Flumi follows a straightforward resolution process for domains like example.web
:
2. Subdomain Resolution
For queries like api.blog.example.web
:
- Exact Match Check: Look for specific records for
api.blog.example.web
- Parent Domain Check: If not found, check parent domains (
blog.example.web
, thenexample.web
)
3. CNAME Chain Resolution
API Endpoints
Domain Management
POST /domain
- Register a new domainGET /domain/{name}.{tld}
- Get domain detailsDELETE /domain/{name}/{tld}
- Delete domain
DNS Records
GET /domain/{name}.{tld}/records
- List all records for domainPOST /domain/{name}.{tld}/records
- Create new DNS recordDELETE /domain/{name}.{tld}/records/{id}
- Delete DNS record
DNS Resolution
POST /resolve
- Legacy resolution for simple domainsPOST /resolve-full
- Advanced resolution with subdomain support
Request
{
"domain": "api.blog.example.web",
"record_type": "A" // optional filter
}
Response
{
"name": "api.blog.example.web",
"tld": "web",
"records": [
{
"id": 123,
"type": "A",
"name": "api.blog",
"value": "192.168.1.100",
"ttl": 3600,
"priority": null
}
]
}
Error Handling
DNS Resolution Errors
ERR_NAME_NOT_RESOLVED
- Domain not found or not approvedERR_CONNECTION_TIMED_OUT
- DNS server timeoutERR_CONNECTION_REFUSED
- Cannot connect to target serverERR_INVALID_URL
- Malformed domain name
CNAME Specific Errors
CNAME chain too deep
- More than 5 CNAME redirectionsCNAME chain ended without A record
- Chain leads to non-resolvable targetFailed to resolve CNAME target
- Intermediate domain resolution failure