Име Протокол сервера

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"
}