From ff2d165c2808a0f329313ce0980f22d71cd0bf11 Mon Sep 17 00:00:00 2001 From: Alexander Chuprov Date: Fri, 27 Sep 2024 17:51:29 +0300 Subject: [PATCH] [#114] nns: Add docs Signed-off-by: Alexander Chuprov --- docs/globally-unique-domain-zone.md | 160 ++++++++++++++++++++++++++++ docs/img/GUDZ.drawio | 139 ++++++++++++++++++++++++ docs/img/GUDZ.png | Bin 0 -> 70951 bytes nns/README.md | 46 ++++++++ 4 files changed, 345 insertions(+) create mode 100644 docs/globally-unique-domain-zone.md create mode 100644 docs/img/GUDZ.drawio create mode 100644 docs/img/GUDZ.png create mode 100644 nns/README.md diff --git a/docs/globally-unique-domain-zone.md b/docs/globally-unique-domain-zone.md new file mode 100644 index 0000000..25872cc --- /dev/null +++ b/docs/globally-unique-domain-zone.md @@ -0,0 +1,160 @@ +# Globally unique domain zone + +**Make sure you understand the [basic concepts](../nns/README.md) of `NNS`.** + +`Globally Unique Domains Zone` (`GUDZ`) is an extension of `NNS` that ensures unique names across multiple domain zones. When this option is enabled, all newly created domains will automatically receive a corresponding alias in the designated global zone. Deleting a domain will also remove its alias from the global zone. + +It's important to note that this feature is not retroactive: domains created before this option is enabled will not receive a global alias. Likewise, if the option is later disabled, domains that already have a `GUDZ` alias will retain their records. To fully disable `GUDZ`, all domains must be recreated with the option turned off. + +To enable `GUDZ`, add a `cnametgt=$(global domain)` `TXT` record that specifies the global zone. + +**Example:** + +Domains: +- `poland` +- `sweden` +- `animals.org` + +It is necessary to associate the domain zones `.poland` and `.sweden` into the global zone `.animals`. + +![](img/GUDZ.png) + +Create domains: + +``` +frostfs-adm morph nns register --name="poland" --email="email@email.email" +frostfs-adm morph nns register --name="sweden" --email="email@email.email" +frostfs-adm morph nns register --name="org" --email="email@email.email" +frostfs-adm morph nns register --name="animals.org" --email="email@email.email" +``` + +Add the `cnametgt` records: + +``` +frostfs-adm morph nns add-record --name="poland" --data="cnametgt=animals.org" --type="txt" +frostfs-adm morph nns add-record --name="sweden" --data="cnametgt=animals.org" --type="txt" +``` + +Create a domain with mapping to the global zone: + +``` +frostfs-adm morph nns register --name="bober.poland" --email="email@email.email" +``` + +Add any `TXT` record + +``` +frostfs-adm morph nns add-record --name="bober.poland" --data="CID" --type="txt" +``` + +Verify that the created domain has alias in the global zone + +``` +frostfs-adm morph nns tokens -v + +balance.frostfs +animals.org +group.frostfs +container +org +container.frostfs +proxy.frostfs +policy.frostfs +alphabet0.frostfs +sweden +frostfsid.frostfs +bober.animals.org (CNAME: bober.poland) +netmap.frostfs +frostfs +poland +bober.poland +``` + +Create of a conflicting domain +``` +frostfs-adm morph nns register --name="bober.sweden" --email="email@email.email" + +unable to register domain: script failed (FAULT state) due to an error: at instruction 1263 (THROW): unhandled exception: "global domain is already taken: bober.animals.org. Domain: bober.poland +``` + +**Disable GUDZ** +Delete `cnametgt` records + +``` +frostfs-adm morph nns delete-records --type=txt --name=poland +``` +Create `hamster.poland` and `hamster.sweden` +``` +frostfs-adm morph nns register --name="hamster.poland" --email="email@email.email" +frostfs-adm morph nns register --name="hamster.sweden" --email="email@email.email" +``` +`hamster.poland` and `hamster.sweden` does not have alias +``` +frostfs-adm morph nns tokens -v +balance.frostfs +animals.org +group.frostfs +container +org +container.frostfs +proxy.frostfs +policy.frostfs +alphabet0.frostfs +sweden +frostfsid.frostfs +bober.animals.org (CNAME: bober.poland) +netmap.frostfs +frostfs +poland +bober.poland +hamster.poland +``` +Delete global alias of `bober.poland` + +``` + frostfs-adm morph nns delete-records --name="bober.poland" --type="txt" +``` + + +``` +frostfs-adm morph nns tokens -v +balance.frostfs +animals.org +group.frostfs +container +org +container.frostfs +proxy.frostfs +policy.frostfs +alphabet0.frostfs +sweden +frostfsid.frostfs +netmap.frostfs +frostfs +poland +bober.poland +hamster.poland +``` +Delete `bober.poland` +``` + frostfs-adm morph nns delete --name="bober.poland" +``` + +``` +frostfs-adm morph nns tokens -v +balance.frostfs +animals.org +group.frostfs +container +org +container.frostfs +proxy.frostfs +policy.frostfs +alphabet0.frostfs +sweden +frostfsid.frostfs +netmap.frostfs +frostfs +poland +hamster.poland +``` \ No newline at end of file diff --git a/docs/img/GUDZ.drawio b/docs/img/GUDZ.drawio new file mode 100644 index 0000000..13ddf92 --- /dev/null +++ b/docs/img/GUDZ.drawio @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/img/GUDZ.png b/docs/img/GUDZ.png new file mode 100644 index 0000000000000000000000000000000000000000..6d1057d2f99dac54e442683fffe0794c80a97d0b GIT binary patch literal 70951 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. + +Supported record types: + +| Type | Description | +|-------|-------------------------------------------| +| A | Represents address record type | +| AAA | Represents IPv6 address record type | +| TXT | Represents text record type | +| CNAME | Represents canonical name record type | +| SOA | Represents start of authority record type | + +### Owner + +An owner is a wallet that has the right to manage this NFT (domain). + +### Committee + +The committee makes new tokens (domains), sets, and charges a fee for issuance. + +## Globally Unique Domain Zone + +For more information, see [here](../docs/globally-unique-domain-zone.md).