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 GET
hakemus, 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 POST
hakemus, 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"
}
Joitakin linkkejä
:
ns.jami.net
:n käyttämä NodeJS-käytäntö ja etereumin kytkö.