ciXnetNETWORK ENGINEERINGGitHub ↗

retdns

Names for Reticulum destinations

retdns associates a readable name with a Reticulum destination address. Applications can look up a name, obtain the address and connect using the destination’s own protocol.

Python 3.11 or newer · MIT licence · Experimental release

Finding a service by name

Destination hashes identify services on Reticulum, but they are awkward to share and recognise. retdns provides a registry of names and their corresponding destination addresses, with forward and reverse lookups.

REQUESThome.cixA name entered by a user
↔
RESOLUTIONretdns registryThe selected name server
→
CONNECTIONDestinationNomadPL or another application

Each registry maintains one name for each address and one address for each name. Clients select the server whose records they want to use. The .cix suffix is used for ciXnet names; the software also accepts other domain-style names.

Discovery & caching

Name servers announce themselves under retdns.server. Discovery lets clients find available services; clients query a selected server by its destination address.

Successful lookups are stored locally until their TTL expires. The cache survives application restarts and stores both the forward and reverse mapping. Server records remain registered until changed or removed.

Configuration & getting started

Download a release or clone the repository. From its source directory, install the package in a Python 3.11 or newer environment with Reticulum connectivity.

INSTALL FROM SOURCE
python -m pip install .

Register a name

Replace APPLICATION_DESTINATION with the actual application destination hash. For a NomadPL site, use the address printed by its serve command.

SERVER COMPUTER
retdns records add home.cix APPLICATION_DESTINATION
retdns records list
retdns serve --name "Community DNS"

The server prints its own destination address. Use that address as DNS_SERVER_DESTINATION in client queries.

Look up a destination

CLIENT COMPUTER
retdns discover --seconds 15
retdns lookup home.cix --server DNS_SERVER_DESTINATION

Queries return the name, destination address and TTL. To look up the name assigned to an address, use a reverse query.

REVERSE LOOKUP
retdns reverse APPLICATION_DESTINATION --server DNS_SERVER_DESTINATION
Full configuration & library examples ↗

Support & development

Please use GitHub Issues for support questions and bug reports.

retdns issue tracker ↗