multiaddr.resolvers package¶
Submodules¶
multiaddr.resolvers.base module¶
Base resolver interface for multiaddr.
- class multiaddr.resolvers.base.Resolver(*args, **kwargs)[source]¶
Bases:
ProtocolProtocol for multiaddr resolvers.
- async resolve(maddr: Multiaddr) list[Multiaddr][source]¶
Resolve a multiaddr to its final form.
Parameters¶
- maddr~multiaddr.multiaddr.Multiaddr
The multiaddr to resolve.
Returns¶
- list[~multiaddr.multiaddr.Multiaddr]
The resolved multiaddrs.
Raises¶
- ~multiaddr.exceptions.ResolveError
If the multiaddr cannot be resolved.
multiaddr.resolvers.dns module¶
DNS resolver implementation for multiaddr.
This module provides DNS resolution for multiaddrs, supporting the following protocols: - /dns, /dns4, /dns6: Standard DNS resolution for IPv4 and IPv6 - /dnsaddr: Recursive TXT record resolution for libp2p bootstrap nodes
Features: - Recursive resolution for /dnsaddr, /dns4, and /dns6 - Peer ID preservation during resolution - Timeout and cancellation support (Trio) - Error handling for recursion limits and DNS failures
- Example usage:
from multiaddr import Multiaddr ma = Multiaddr(“/dns4/example.com/tcp/443”) resolved = await ma.resolve() print(resolved) # [Multiaddr(“/ip4/93.184.216.34/tcp/443”)]
- class multiaddr.resolvers.dns.DNSResolver[source]¶
Bases:
ResolverDNS resolver for multiaddr.
Resolves /dns, /dns4, /dns6, and /dnsaddr multiaddrs to their underlying IP addresses. Supports recursive resolution for DNSADDR records and protocol-specific resolution for DNS4/DNS6.
- DEFAULT_TIMEOUT = 5.0¶
- MAX_RECURSIVE_DEPTH = 32¶
- async resolve(maddr: Multiaddr, options: dict | None = None) list[Multiaddr][source]¶
Resolve a DNS multiaddr to its actual addresses.
- Args:
maddr: The multiaddr to resolve options: Optional configuration options (e.g., max_recursive_depth, signal)
- Returns:
A list of resolved multiaddrs
- Raises:
ResolutionError: If resolution fails RecursionLimitError: If maximum recursive depth is reached trio.Cancelled: If the operation is cancelled
Module contents¶
DNS resolution support for multiaddr.
- class multiaddr.resolvers.DNSResolver[source]¶
Bases:
ResolverDNS resolver for multiaddr.
Resolves /dns, /dns4, /dns6, and /dnsaddr multiaddrs to their underlying IP addresses. Supports recursive resolution for DNSADDR records and protocol-specific resolution for DNS4/DNS6.
- DEFAULT_TIMEOUT = 5.0¶
- MAX_RECURSIVE_DEPTH = 32¶
- async resolve(maddr: Multiaddr, options: dict | None = None) list[Multiaddr][source]¶
Resolve a DNS multiaddr to its actual addresses.
- Args:
maddr: The multiaddr to resolve options: Optional configuration options (e.g., max_recursive_depth, signal)
- Returns:
A list of resolved multiaddrs
- Raises:
ResolutionError: If resolution fails RecursionLimitError: If maximum recursive depth is reached trio.Cancelled: If the operation is cancelled
- class multiaddr.resolvers.Resolver(*args, **kwargs)[source]¶
Bases:
ProtocolProtocol for multiaddr resolvers.
- async resolve(maddr: Multiaddr) list[Multiaddr][source]¶
Resolve a multiaddr to its final form.
Parameters¶
- maddr~multiaddr.multiaddr.Multiaddr
The multiaddr to resolve.
Returns¶
- list[~multiaddr.multiaddr.Multiaddr]
The resolved multiaddrs.
Raises¶
- ~multiaddr.exceptions.ResolveError
If the multiaddr cannot be resolved.