Registry vs Resolver
ENS Architecture Overview
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ ENS Registry │───▶│ Resolver │───▶│ Target Data │
│ │ │ │ │ │
│ - Domain Owner │ │ - ETH Address │ │ - IPFS Hash │
│ - Resolver │ │ - IPFS Hash │ │ - Website URL │
│ - TTL │ │ - TXT Records │ │ - Email │
└─────────────────┘ └─────────────────┘ └─────────────────┘The ENS Registry
Registry Functions
interface ENSRegistry {
// Core domain management
function setOwner(bytes32 node, address owner) external;
function setResolver(bytes32 node, address resolver) external;
function setTTL(bytes32 node, uint64 ttl) external;
// Subdomain management
function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external;
function setSubnodeRecord(bytes32 node, bytes32 label, address owner, address resolver, uint64 ttl) external;
// Query functions
function owner(bytes32 node) external view returns (address);
function resolver(bytes32 node) external view returns (address);
function ttl(bytes32 node) external view returns (uint64);
}Registry Data Structure
Registry Operations
1. Domain Registration
2. Setting a Resolver
3. Transferring Ownership
The Resolver
Standard Resolver Interface
Public Resolver Implementation
Registry vs Resolver: Key Differences
Aspect
Registry
Resolver
How They Work Together
Resolution Process
Example: Setting Up a dWebsite
Advanced Resolver Patterns
1. Custom Resolvers
2. Multi-Signature Resolvers
3. Time-Based Resolvers
Gas Optimization Strategies
1. Batch Operations
2. Proxy Resolvers
Security Considerations
Registry Security
Resolver Security
Monitoring and Analytics
Registry Events
Resolver Events
Best Practices
1. Registry Management
2. Resolver Configuration
3. Testing
Tools and Resources
Development Tools
Documentation
Next Steps
Last updated