From c3fdeccbbfe05af6973aaabc1ad998f93be6c493 Mon Sep 17 00:00:00 2001 From: snowtiger Date: Sun, 12 Nov 2023 17:26:07 +0800 Subject: [PATCH] Add ARC0137 - Aleo Domain Name Service (ANS) --- arc-0137/README.md | 363 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 363 insertions(+) create mode 100644 arc-0137/README.md diff --git a/arc-0137/README.md b/arc-0137/README.md new file mode 100644 index 0000000..017a8be --- /dev/null +++ b/arc-0137/README.md @@ -0,0 +1,363 @@ +--- +arc: 137 +title: Aleo Domain Name Service (ANS) - Specification +authors: snowtigersoft +discussion: https://github.com/AleoHQ/ARCs/discussions/45 +topic: Application +status: Draft +created: 2023-11-12 +--- + +## Abstract + +This ARC proposes the Aleo Name Service (ANS), a protocol and program definition designed to resolve short, human-readable names to service and resource identifiers on the Aleo network. + +ANS aims to simplify the interaction with Aleo's resources by allowing memorable and updatable human-readable identifiers. + +It supports public and private domain names, each serving distinct use cases and privacy needs. + +The goal of public domain names is to provide stable, human-readable identifiers that can be used to specify network resources. In this way, users can enter a memorable string, such as ‘snowtiger.ans’ or ‘wallet.leo’, and be directed to the appropriate resource. + +For a private domain name, users can transfer Aleo Credits(ACs) to a ANS domain, and the holder can claim the ACs without let others know the real aleo address. + +ANS + +## Specification + +### Overview + +The ANS protocol comprises three primary components: + +- **ANS Registry Program**: Manages the domain name system, mapping names to resolvers and allowing updates to these mappings. +- **Registrars**: Assign domain names within the ANS, ensuring efficient and secure name distribution. +- **Resolvers**: Retrieve resource information associated with a name, such as contract addresses, content hashes, or IP addresses. + +### ANS Registry + +- **Functionality**: Enables domain owners to set resolver addresses and create subdomains. +- **Administration**: Includes a `register_tld` method to assign TLDs to registrars. + +### ANS Resolvers + +- **Purpose**: Handle resource lookups for names, returning the requested data. +- **Flexibility**: Different resolver types can be implemented for varied resources. + +### ANS Registrars + +- **Domain Allocation**: Distribute domain names to users. +- **TLD Management**: Specific TLDs can be managed by designated registrars. + +### Name Syntax + +ANS names adhere to the following syntax: + +``` + ::=