About
The sig0namectl project allows decentralised DNS updates by communicating directly with the DNS infrastructure itself.
sig0namectl allows open requests to claim update rights of an unused DNS domain on a “first come, first served” basis.
Once a domain is successfully claimed, a claimant can add, update or delete any DNS records at or below the claimed domain.
A claimant can choose to share this update capability fully with any other key holders or choose to share update rights only to just a portion of names (a sub-domain) below their claimed domain.
Technical Details
To achieve this, sig0namectl uses DNS SIG(0) cryptographic key pairs.
To receive update permissions, public keys are embedded within the DNS fabric at the fully qualified domain name of any domain. Private keys are generated by and kept with the claimant.
To submit DNS updates, sig0namectl locally signs and sends DNS update requests using the private key generated by the claimant.
The project consists of a number of different component types:
🌐 Web Browser Applications
sig0namectl web browser applications provide easy-to-use way to discover, browse and access local network services and resources.
Browser applications can also assist in claiming a new domain key which unlocks the ability to add and publish a set of new local resources and services to contribute to local communities.
Web browser applications offer the ability to:
- browse & access up-to-date local community services and resources;
- claim a new key to create, update & share your own new services & resources; and,
- optionally render location mapping of local community services & resources in real time.
🧰 Command Line Tools
⌨️ Command Line Utilities
Command Line Utilities offer intermediate users more flexible options than the browser applications may offer. They provide more complex options for once-off DNS updates or for combining to form custom workflow automation tools.
Command Line Utilities provide custom DNS update options for intermediate and expert users:
- a golang sig0namectl command line utility that uses the sig0namectl DNS library module available for development of custom workflows ; and,
- a set of tools designed for resource-constrained devices such as WiFi routers or single board computers or IoT devices.
🤖 Workflow Automation Tools
Workflow Automation Tools are scripts that allow continuous automated DNS updates based on changes of a host’s configuration or other detected changes in its environment.
Existing Workflow Automation Tools allow automatic:
- new key claim request processing
- DNS updates to reflect any network IP address changes; and,
- geolocation updates from connected GPS devices.
⚙ Javascript API
The sig0namectl Javascript API provides a standard interface to the sig0namectl DNS Library. Golang module transpiles to WASM and exports functions available to Javascript in popular web browsers. The set of functions exported defines a Javascript API to ease development of custom DNS web applications.
📚 sig0namectl library
The sig0namectl Library provides developers a standard library in the form of a golang module to develop further custom tools that can be compiled for a variety of target host platforms or to produce wasm binaries to be executed in web browser environments.