Nimi Server-protokolli

Jami käyttää nimen kyselyyn ja rekisteröintiin HTTP [REST] (https://en.wikipedia.org/wiki/Representational_state_transfer) API:n avulla, joka vastaa pyyntöihin JSON-asiakirjoilla ja säännöllisin HTTP-tilassa.

Julkinen nimeserveri on isännöity ns.jami.net ja käyttää blockchainia sen taustana.

Jos käytät omia nimispalveluja, käyttäjänimestä username@example.com muodossa etsit nimestä username nimispalvelulla example.com. (Ei tarvitse lisätä @ns.jami.net oletusarvoista nimispalvelinta.)

Nimien muotoiluun liittyvät säännöt

Käyttäjänimiä tarkistaa regex, jotta voidaan varmistaa, että niiden muoto on varsin tiettyä:

  • Pitkäys on oltava 3-32 merkkiä

  • Those characters must be alphanumerical with dashes - being also accepted.

Kysyn nimeä

Tämä on nimispalvelin tarjoama pääpalvelu, jonka avulla saat Jami-tunnuksen, joka vastaa käyttäjänimestä.

Pyyntö

foobar* on GET-pyyntö, jossa /name/foobar on URI.

Vastaus (suoritus)

Jos nimi löytyy, vastaus, jossa on tilakoodi 200 OK, on lähetettävä asiakkaalle Content-type kenttä, joka on määritetty application/json.

JSON-dokumentti on kaksi sarjaa: name ja addr. name on yhtä suuri kuin pyydetty ja addr on Jami ID:n kuusi-kymmeninen esittely, jossa on 0x.

Esimerkkeessä JSON-vastaus olisi:

{
    "name":"foobar",
    "addr":"0x29347542eb07159f316577e1ae16243d152f6b7b"
}

Vastaus (Ei löytynyt)

Jos nimi ei löydy, vastaus, jossa on tilakoodi 404 Not Found, on lähetettävä asiakkaalle Content-type kenttä, joka on määritetty application/json.

JSON-dokumentti on JSON-dokumentti, jossa on 1 sarjan ominaisuus: error. Tämä ominaisuus on täynnä virheen viestiä, joka selittää virheen (ja se voi näkyä asiakkaan kohdalla tulevaisuudessa).

Viite täytäntöönpanoon palautetun asiakirjan on:

{
    "error":"name not registred"
}

Osoitteen kysely

Tämä palvelu on käänteinen hakemus. Kysyt osoitteesta ja käyttäjänimi palautetaan, jos nimi on rekisteröity nimispalvelin.

Pyyntö

ID jami:29347542eb07159f316577e1ae16243d152f6b7b on GEThakemus, jossa /addr/29347542eb07159f316577e1ae16243d152f6b7b on URI.

Vastaus (suoritus)

Jos osoite vastaa käyttäjänimeä, vastaus, jossa on tilakoodi 200 OK, on lähetettävä asiakkaalle Content-type kenttä, joka on määritetty application/json.

JSON-dokumentti on JSON-dokumentti, jossa on 1 sarjan ominaisuus: name. Tämän kentän arvo on tähän osoitteeseen rekisteröity nimi

Esimerkkeessä JSON-vastaus olisi:

{
    "name":"foobar"
}

Vastaus (Ei löytynyt)

Jos osoite ei löydy, vastaus, jossa on tilakoodi 404 Not Found, on lähetettävä asiakkaalle Content-type kenttä, joka on määritetty application/json.

JSON-dokumentti on JSON-dokumentti, jossa on 1 sarjan ominaisuus: error. Tämä ominaisuus on täynnä virheen viestiä, joka selittää virheen (ja se voi näkyä asiakkaan kohdalla tulevaisuudessa).

Viite täytäntöönpanoon palautetun asiakirjan on:

{
    "error":"address not registred"
}

Nimen rekisteröinti

Tätä protokollan osaa käytetään uuden nimik/osoitteen parin rekisteröintiin.

Pyyntö

foobar nimen rekisteröintihakemus on POSThakemus, jossa /name/foobar on URI.

Hakemuksen kokonaisuus on JSON-asiakirja, jossa on kaksi sarjaa: addr ja owner. addr sisältää Jami ID:n, jossa on ennennätys 0x ja owner on rekisteröidyt nimi.

foobar:n esimerkki voisi olla:

{
    "addr":"0x29347542eb07159f316577e1ae16243d152f6b7b",
    "owner":"foobar"
}

Vastaus (suoritus)

Jos nimi-/osoitteen pari on onnistuneesti rekisteröity, vastaus, jossa on tilakoodi 200 OK, on lähetettävä asiakkaalle Content-type kenttä, joka on määritetty application/json.

Kehossa on JSON-asiakirja, jossa on 1 boolean-attribuutti success, joka on asetettu true.

Esimerkkinä:

{
    "success":true
}

Jälkimmäiset yritykset kysyä nimeä tai osoitetta olisivat sitten onnistuneet.

Vastaus (huonollinen pyyntö)

Jos rekisteröinti ei voida tehdä pyynnön virheiden vuoksi (muodostus, puuttuva ominaisuus jne.), vastaus, jossa on tilakoodi 400 Bad Request, on lähetettävä asiakkaalle Content-type kenttä, joka on määritetty application/json.

JSON-dokumentti on JSON-dokumentti, jossa on kaksi ominaisuutta: success, joka on booleaninen ja error, joka on sarja. success on asetettu false ja error on täynnä virheen viestiä, joka selittää virheen (ja se voi näkyä asiakkaan kohdalla tulevaisuudessa).

Käyttäjänimen väärän muotoilun osalta keho voi olla:

{
    "success": false,
    "error": "invalid name"
}

Vastaus (kielletty)

Jos rekisteröinti ei voida tehdä, koska nimi on jo otettu, vastaus, jossa on tilakoodi 403 Forbidden, on lähetettävä asiakkaalle Content-type kenttä, joka on määritetty application/json.

JSON-dokumentti on JSON-dokumentti, jossa on 3 ominaisuutta: success, joka on boolin asetus false, name ja addr, jotka ovat molemmat alkuperäisestä pyynnöstä toistettuja sarjoja.

Jos rekisteröinti on jo rekisteröity, se johtaa seuraaviin vastauksiin:

{
    "success": false,
    "name":"foobar",
    "addr":"0x29347542eb07159fdeadbeefae16243d152f6b7b"
}