Coder Social home page Coder Social logo

martonlederer / ans Goto Github PK

View Code? Open in Web Editor NEW

This project forked from decentldotland/ans

0.0 0.0 0.0 339 KB

a Domain Names Service - Gravatar hybrid on the Arweave network

License: MIT License

JavaScript 94.86% Python 2.86% TypeScript 2.28%

ans's Introduction

Arweave Names Service

a Domain Names Service & De-Gravatar hybrid on the Arweave network

Motivation

Using and adopting names service accross Arweave ecosystem has several benefits:

  • faciliate of sharing addresses and sending AR/PSTs
  • create an economic cycle through domains financial activities (trading)
  • the ability to be used as social profiles contructors in Arweave based social networks (e.g. decent.land users)
  • a decentralized gravatar-like use-case

Terminology

  • label: equivalent to domain's name in DNS, such as "decent" in decent.ar
  • user: the controller of the label
  • name: full ANS identifier such as "decent.ar" (label and 'ar' TLD sepperated by a dot)

Label'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 allowed unicodes that are predefined in the contract. Then, the label get minted and stored according to its processed format (after normalization), following a Nameprep-like methodology.

Allowed unicodes The allowed unicode are those of the lowercase alphabetical characters in addition to integers from 0 to 9. Thus, usernames as known as labels 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 to reduce the visual security issues like:

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

Available Labels

ANS labels minting is based and limited using the arrangement without repitition of the conditional probability

Knowing that p is that arbitrary label string entered by the user that may be alphanumerical, and n is the total number of allowed characters which is 36 (26 characters from alphabetical characters and 10 characters from the allowed integers). For a better UX, labels of length equal to one are disallowed and cannot be minted, hence, that total number of labels that can ever exist is more than 43B labels. Breakdown:

label length label supply
2 1260
3 42,840
4 1,413,720
5 45,239,040
6 1,402,410,240
7 42,072,307,200

Label scarcity is determined by its length, the lower length it has, the more scarce it is. No renewal fees.

Current implemented minting models:

This section discusses the possible option to be adopted for the label minting process

  • Model Alpha: minting using $DLT

Labels marketplace

Labels may be a new asset with new standars not compatible with PSTs or atomic NFTs standards, thus, that requires building a marketplace dedicted for ANS labels.

characteristics

  • main currency: $DLT
  • create an economical experience and new opportunities
  • incentives for $DLT holders through marketplace earned fees

Label Asset Type

ANS labels are digital properties fully owned and managed by the user (aka label's owner post-minting). ANS spec introduces a new asset / tokenized mechanism to the Arweave ecosystem that applies the profit sharing concept introduced in PSCs and PSTs.

ANS-labels are Profit Sharing Domains (PSD) for having the following features:

  • Basic token functionalities: ownership, transferability, & trade-ability.
  • The first in-contract, on-chain profit sharing mechanism through the PoR incentives model.
  • Domain Name Service: address resolving & DeGravatar.

License

The project is licensed under the MIT license.

ans's People

Contributors

charmful0x avatar martonlederer avatar xylophonez avatar

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.