Вырашэнне імя
Вырашэнне імя
Вырашае імя PIVX, вяртаючы звязаны з ім адрас PIVX, дэталі доказу, кантрольныя пункты сінхранізацыі і даныя рэгістрацыі.
Пункт доступу
GET https://indexer.pivx.name/v1.0/resolve/{name} (толькі вырашэнне імя)
POST https://indexer.pivx.name/v1.0/resolve/{name} (калі патрэбны дадатковыя параметры)
Параметры шляху
| Параметр | Тып | Абавязковы | Апісанне |
|---|---|---|---|
{name} | string | Так | Імя PIVX, якое трэба вырашыць (напрыклад, richard.pivx). |
Цела запыту
Цела запыту мусіць быць аб'ектам JSON з наступнымі параметрамі:
| Параметр | Тып | Па змаўчанні | Апісанне |
|---|---|---|---|
extended | boolean | false | Калі true, дадаткова вяртае domain_tx (хэш транзакцыі рэгістрацыі дамена). |
with_checkpoint | boolean | false | Калі true, вяртае бягучы кантрольны пункт, да якога сінхранізаваны індэксатар. |
Прыклады кода
- cURL
- JavaScript
- Python
- PHP
curl -X POST https://indexer.pivx.name/v1.0/resolve/richard.pivx \
-H "Content-Type: application/json" \
-d '{
"extended": true,
"with_checkpoint": true
}'
const url = 'https://indexer.pivx.name/v1.0/resolve/richard.pivx';
const data = {
extended: true,
with_checkpoint: true
};
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error('Error:', error));
import requests
url = "https://indexer.pivx.name/v1.0/resolve/richard.pivx"
payload = {
"extended": True,
"with_checkpoint": True
}
headers = {
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php
$url = 'https://indexer.pivx.name/v1.0/resolve/richard.pivx';
$data = [
'extended' => true,
'with_checkpoint' => true
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
print_r($result);
?>
Прыклад адказу
{
"response": {
"domain_name": "bob.pivx",
"target_address": "ps12qtzaw6x3dh35xuukrqgk06e9ffx8szg2n2huqncwjsnj3ajczmklqgcx97kn63vwlge6gj2cmn",
"owner_pubkey": "1111111111111111111111111111111111111111111111111111111111111111",
"price": 250000000,
"nonce": 1780000002,
"smt_root": "5892c31e50ad3a4cf0407b91b3012a196d60c4e4f53e37261ac6747dea180eea",
"merkle_proof": [
"29bc98ae3a939618e50ba72e11a25ba30b37bb53a168a17463b9ef3fe90495d8",
"0000000000000000000000000000000000000000000000000000000000000000"
],
"proof_depth": 2,
"proof_terminal": "Occupied"
}
}
| Поле | Тып | Апісанне |
|---|---|---|
domain_name | string | Зарэгістраванае імя |
target_address | string | Мэтавы адрас PIVX |
owner_pubkey | string | Публічны ключ уладальніка імя |
price | int | Цана (выкарыстоўваецца на Маркетплейсе) |
nonce | int | Узрастаючы nonce |
smt_root | string | Бягучы корань дрэва Меркла (hex) |
| (калі with_checkpoint:false, інакш гл. корань SMT у "checkpoint") | ||
merkle_proof | string[] | Суседнія хэшы ў hex; [0] — самы глыбокі. Даўжыня роўная proof_depth |
proof_depth | int | Колькасць суседзяў — праверце, што яна роўная merkle_proof.length |
proof_terminal | string | object | "Occupied", "Vacant" або {"Blocked":{…}} — гл. ніжэй |
| extended: | ||
created_block_id | int | block_id блока PIVX, у якім створаны дамен |
updated_block_id | int | block_id блока PIVX апошняга змянення дамена |
domain_tx | string | Хэш транзакцыі PIVX з рэгістрацыяй імя |
| with_checkpoint: | Палі ўнутры "checkpoint": | |
idx | int | Пазіцыя ў масіве rootChain якарнага кантракта; курсор аднаўлення пры атрыманні чэкпоінтаў |
block_id | int | block_id блока PIVX апошняга згенераванага доказу SMT |
smt_root | string | Бягучы корань дрэва Меркла (hex) |
proof_terminal
Апісвае, што знаходзіцца ў канцы шляху доказу. Менавіта гэта робіць адсутнасць даказальнай, а не проста заяўленай:
| Значэнне | Сэнс |
|---|---|
"Occupied" | там уласны ліст імя — паспяховае вырашэнне. Адхіляйце любое вырашэнне, тэрмінал якога адрозніваецца ад гэтага. |
"Vacant" | там пустое паддрэва — імя не зарэгістравана |
{"Blocked": {"record": {…}}} | гэтую пазіцыю займае ліст іншага імя, значыць, запытанае імя не зарэгістравана. Блакіруючы запіс уключаны цалкам, так што вы можаце праверыць гэта сцвярджэнне, а не давяраць яму. |
Код праверкі ўсяго пералічанага на Python, PHP і JavaScript прыведзены ў раздзеле Праверка доказаў.
Адваротнае вырашэнне імя
Укажыце адрас PIVX, каб выканаць адваротнае вырашэнне:
GET/POST https://indexer.pivx.name/v1.0/resolve/reverse/{address}
Параметры POST апісаны вышэй.
Імёны па ўладальніку
Усе імёны, якімі валодае зададзены публічны ключ Ed25519.
GET/POST https://indexer.pivx.name/v1.0/resolve/owner/{Ed25519_public_key}
Параметры POST апісаны вышэй.