Име Протокол сервера
The protocol used by Jami to query and register a name is based on an HTTP REST API answering requests with JSON documents and regular HTTP status codes.
Јавни именски сервер је хостиран на ns.jami.net
и користи блокчејн као своју позадину.
Ако покретите свој имена сервер, пребацивши корисничко име у облику употребилосно име@example.com
, пребацићете име употребилосно име
са именским сервером на example.com
. (Нема потребе да додате @ns.jami.net
да бисте користили дефолт именски сервер.)
Правила о форматисању имена
Имена корисника проверља регекс како би се осигурало неке правила о њиховом форматисању:
Дужина мора бити између 3 и 32 знака
Those characters must be alphanumerical with dashes
-
being also accepted.
Питање имена
Ово је главни сервис који пружа сервер имена. То омогућава добијање ИД Џами одговарајућег корисничком имену.
Задатак
Зајава за име `ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо
Одговор (успех)
Ако се пронађе име, одговор са кодом статуса 200
OK
мора бити послат клијенту са Тентент-Тип
пољом постављеном као апликација/json
.
Тело је JSON документ са 2 атрибуте струјеве: name
и addr
. name
је једнако захтев и addr
је шесдецимална репрезентација ИД Џами префиксирана са 0x
.
У нашем примери, одговор JSON би био:
{
"name":"foobar",
"addr":"0x29347542eb07159f316577e1ae16243d152f6b7b"
}
Одговор (Не пронађен)
Ако се име не пронађе, одговор са кодом статуса 404
Not
Found
мора бити послат клијенту са Content-type
пољом постављеном као application/json
.
Тело је JSON документ са 1 струна атрибута: error
. Овај атрибут је испуњен грешком која објашњава грешку (и може се приказивати у клијенту у будућности).
У вези са референтном спроводом, враћен документ је:
{
"error":"name not registred"
}
Поиштање адресе
Ова услуга је обратна трага. Попитате адресу и корисничко име се враћа ако је регистровано на серверу имена.
Задатак
Зајава за идентификацију jami:29347542eb07159f316577e1ae16243d152f6b7b
је GET
захтев са /addr/
29347542eb07159f316577e1ae16243d152f6b7b
као УРИ.
Одговор (успех)
Ако адреса одговара корисничком имену, одговор са кодом статуса 200
OK
мора се послати клијенту са пољом Content-type
постављеном као application/json
.
Тело је JSON документ са 1 струна атрибута: name
. Значење овог поља је име регистровано на ову адресу
У нашем примери, одговор JSON би био:
{
"name":"foobar"
}
Одговор (Не пронађен)
Ако адреса није пронађена, одговор са кодом статуса 404
Not
Found
мора се послати клијенту са Тентент-Тип
пољом постављеном као апликација/json
.
Тело је JSON документ са 1 струна атрибута: error
. Овај атрибут је испуњен грешком која објашњава грешку (и може се приказивати у клијенту у будућности).
У вези са референтном спроводом, враћен документ је:
{
"error":"address not registred"
}
Регистрација имена
Овај део протокола се користи за регистрацију новог пар имена/адреса.
Задатак
Задатак за регистрацију имена foobar
је POST
захтев са /name/
foobar
као УРИ.
Тело захтева је JSON документ са 2 атрибуте струје: addr
и owner
. addr
садржи ИД Џами префиксиран са 0x
и owner
је име које се региструје.
Пример за foobar
може бити:
{
"addr":"0x29347542eb07159f316577e1ae16243d152f6b7b",
"owner":"foobar"
}
Одговор (успех)
Ако је пар имена/адреса успешно регистровано, одговор са кодом статуса 200
OK
мора се послати клијенту са Тентент-Тип
пољом постављеном као апликација/json
.
Тело садржи JSON документ са 1 булеански атрибут success
постављен на true
.
На пример:
{
"success":true
}
У овом случају, уколико се настави да се тражи име или адреса, биће успешни.
Одговор (недобар захтев)
Ако регистрација не може бити остварена због грешке у захтеву (форматовање, недостатак атрибута итд.), одговор са кодом статуса 400
Bad
Request
мора бити послат клијенту са Content-type
пољом постављеном као application/json
.
Тело је JSON документ са 2 атрибута: success
који је булеански и error
који је рад. success
је постављен на false
и error
је испуњен грешком која објашњава грешку (и може се приказивати у клијенту у будућности).
За неважни форматирање корисничког имена, тело би могло бити:
{
"success": false,
"error": "invalid name"
}
Одговор (забрани)
Ако регистрација не може бити остварена јер је име већ преузето, одговор са кодом статуса 403
Запрет
мора се послати клијенту са Татк-тип
пољом постављеном као задатак/json
.
Тело је JSON документ са 3 атрибута: success
који је булеански скуп на false
, name
и addr
који су оба струна репликација из оригиналне траге.
Регистрација foobar
, пошто је већ регистрована, довела би до следећег одговора:
{
"success": false,
"name":"foobar",
"addr":"0x29347542eb07159fdeadbeefae16243d152f6b7b"
}
Неке везе
gitlab:jami-nameservice: референтна имплементација NodeJS која се користи од стране
ns.jami.net
и питања за Етериумски вуз.