Giter Club home page Giter Club logo

ans's Introduction

@decentldotland/ANS

The Universal User Identifier ID for Arweave Network

Arweave Name Service

ANS is the first and only domain name service for the Arweave network. Created by the decent.land team, ANS provides readable names for the Arweave network addresses.

Domain's string handling

ANS registry contract uses the NFKC (Normalization Form Compatibility Composition) unicode normalization algorithm and case folding to normalize the label's string before comparing its length and allowing unicode that is predefined in the contract. Then, the label gets minted and stored according to its processed format (after normalization), following a Nameprep-like methodology.

Supported unicodes

The supported unicodes are those of the lowercase alphabetical characters in addition to integers from 0 to 9. Therefore, domains are alphanumeric. The supported UTF-16 code units range from 48 to 57 (0 -> 9) and from 27 to 122 (a -> z).

The usage of the NFKC algorithm allows reducing the visual security issues like:

  • visual spoofing
  • reduce visual confusion. examples
  • Punnycode and Script spoofing

Domains Supply

ANS domains supply is based and limited according to the permutation with repetition of the conditional probability. Domain's scarcity is determined by its length, the lower length it has, the more scarce it is.

label type label length label supply
Ār 2 1,296
Vix 3 46,656
Zūr 4 1,679,616
Yu 5 60,466,176
Yow 6 2,176,782,336
K'us 7 78,364,164,096
En 8 2,821,109,907,456
Pon 9 101,559,956,668,416
Pōr 10 3,656,158,440,062,976
Strād 11 131,621,703,842,267,136
12 4,738,381,338,321,616,896
Sān 13 170,581,728,179,578,208,256
Bōh 14 6,140,942,214,464,815,497,216
Kew 15 221,073,919,720,733,357,899,776

Alpha Launch

ANS testnet has been launched distributing domains for hundred of addresses during the Genesis phase. Learn more about the airdrop here.

Mainnet Contract Address

The mainnet smart contract of the ANS protocol is deployed on MEM.

ANS Related Repositories

ANS Resolver

ANS protocol has REST API resolver to resolve (or reverse resolve) identities. Check the API repository.

ANS Metrics API

The ans-metrics repository is an API for ANS protocol metrics.

ar.page

The ar.page web app is multichain ANS profile resolver that utilizes the Ark Protocol. Check ar.page repository.

ANS Gateways

The ANS protocol has two gateways (arweave.gg and arweave.bio) that resolves a domain's A record to the associated Arweave TXID and render it in-browser. Check the repository

ANS-FOR-ALL

ans-for-all is a drop in module to utilize the ANS protocol in React apps. Check the repository.

Tech-Stack

ANS Protocol utilizes cutting-edge technologies built on top of the Arweave network:

Contributing

If you have a suggestion that would add enhancements to the ANS protocol, please fork the repository and create a pull request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/xyz)
  3. Commit your Changes (git commit -m 'feat: abc-xyz')
  4. Push to the Branch (git push origin feature/xyz)
  5. Open a Pull Request

Contributions are greatly appreciated !

License

The project is licensed under the MIT license.

ans's People

Contributors

charmful0x avatar maxknivets avatar xylophonez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ans's Issues

shortlinks: ANS subdomains - URL shortener

Motivation

This feature request introduces new functionality for ANS domains: human-readable address for a permaweb-stored piece of data (Arweave TXID).

Details

  • subdomain's target: a valid Arweave TXID (43 chars Base64URL string).
  • subdomains limit per label: free 3 subdomains per label. Creating more than 3 subdomains request paying in DLT (cost: TBD).
  • subdomain string's validity is evaluated as same as ANS domains (labels) are validated.
  • created subdomains can be deleted.
  • deleting a subdomain does not increase back the free-subdomains limit.
  • subdomain's resolving TXID is configurable (subdomain's value is editable).

Example

creating a subdomain that redirects to a Permacast-hosted episode (Ethereum Cat Herder podcast) :

  • data TXID (audio/mpeg): 6tJmHUYSCG9KiWJeAtRSa_aBY_iWdnDnGgRDmG_yRJY
  • caller's label: darwin.ar
  • subdomain: ech

Therefore, ech.darwin.ar will resolve to data TXID serving as a human-readable permanent short link

Notes

While a subdomain can only redirect to an Arweave TXID, the main domain (darwin.ar) can also resolve to an Arweave TXID with a supported MIME type defined in the ANS contract. The main domain can also hold social links and web2 URL format.

TBDs - need discussion

  • free subdomains limit per label (if 3 is not the best)
  • enforce the MIME type of the subdomain's value (as same as applied to the main domain)

An alternative for `.ar` TLD

Introduction

The current ANS spec introduced the "label" + dot + "ar" format to label Arweave addresses. The reason to follow this format is to be compatible with other already-existing Domain Names Services protocols (e.g. ENS, PolkaDomains, UnstoppableDomains, etc).

Compatibility Possible Conflict

.ar already exists as a ccTLD for Argentina, the thing that can create conflicts in the future once ANS domains gain a big vast adoption and integrations. As well as labels resolving in web2 browsers for Arweave hosted content hash.

Not using .ar also give ANS a weird UX for its users because ANS is a public & open protocol for Arweave apps, not domain-limited (decent.land)

Issue's Proposal

TLD name proposal in this issue is .psd ; The "PSD" string is not registered yet in CANN TLDs ( see https://data.iana.org/TLD/tlds-alpha-by-domain.txt)

nomenclature

"PSD" refers to "Profit Sharing Domain". The nomenclature does also give a hint on how the ANS labels generate profit to its users through the PoR mechanism.

Also, this naming follows the standards used in the Arweave ecosystem either for PSTs (Profit Sharing Tokens) or PSCs (Profit Sharing Communities, equivalent to DAOs). Hence, .psd fits well in identifying the new asset type in the Arweave network that is introduced by ANS (labels are digital properties, assets).

UPDATE:

the .psd string may provoque another conflict with "Photoshop Document", thus the new suggested TLDs are: .ans and .arw

Author(s)

  • Charmful0x aka Darwin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.