Phân giải tên
Phân giải một tên
Phân giải một tên PIVX để lấy địa chỉ PIVX tương ứng, chi tiết bằng chứng, các điểm kiểm tra đồng bộ và dữ liệu đăng ký.
Điểm cuối
GET https://indexer.pivx.name/v1.0/resolve/{name} (chỉ phân giải tên)
POST https://indexer.pivx.name/v1.0/resolve/{name} (nếu cần thêm tham số)
Tham số đường dẫn
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
{name} | string | Có | Tên PIVX cần phân giải (ví dụ richard.pivx). |
Thân yêu cầu
Thân yêu cầu phải là một đối tượng JSON gồm các tham số sau:
| Tham số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
extended | boolean | false | Nếu true, trả về thêm domain_tx (băm giao dịch của lần đăng ký tên miền). |
with_checkpoint | boolean | false | Nếu true, trả về điểm kiểm tra hiện tại mà trình lập chỉ mục đã đồng bộ tới. |
Ví dụ mã
- 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);
?>
Ví dụ phản hồi
{
"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"
}
}
| Trường | Kiểu | Mô tả |
|---|---|---|
domain_name | string | Tên đã đăng ký |
target_address | string | Địa chỉ PIVX đích |
owner_pubkey | string | Khóa công khai của chủ sở hữu tên |
price | int | Mức giá (dùng cho Chợ) |
nonce | int | Nonce tăng dần |
smt_root | string | Gốc cây Merkle hiện tại (hex) |
| (nếu with_checkpoint:false, ngược lại xem gốc SMT trong "checkpoint") | ||
merkle_proof | string[] | Các băm anh em ở dạng hex; [0] là sâu nhất. Độ dài bằng proof_depth |
proof_depth | int | Số lượng anh em — hãy kiểm tra rằng nó bằng merkle_proof.length |
proof_terminal | string | object | "Occupied", "Vacant" hoặc {"Blocked":{…}} — xem bên dưới |
| extended: | ||
created_block_id | int | block_id PIVX khi tên miền được tạo |
updated_block_id | int | block_id PIVX của lần cập nhật tên miền gần nhất |
domain_tx | string | Băm giao dịch PIVX của lần đăng ký tên |
| with_checkpoint: | Các trường bên trong "checkpoint": | |
idx | int | Vị trí trong mảng rootChain của hợp đồng neo; con trỏ tiếp tục khi khám phá checkpoint |
block_id | int | block_id PIVX của bằng chứng SMT được tạo gần nhất |
smt_root | string | Gốc cây Merkle hiện tại (hex) |
proof_terminal
Mô tả thứ nằm ở cuối đường đi của bằng chứng. Chính điều này khiến sự vắng mặt trở nên chứng minh được thay vì chỉ được khẳng định:
| Giá trị | Ý nghĩa |
|---|---|
"Occupied" | ở đó là lá của chính cái tên — một lần phân giải thành công. Hãy từ chối mọi kết quả phân giải có terminal khác giá trị này. |
"Vacant" | ở đó là một cây con rỗng — tên chưa được đăng ký |
{"Blocked": {"record": {…}}} | vị trí đó bị lá của một tên khác chiếm giữ, nên tên được hỏi chưa được đăng ký. Bản ghi chặn được đưa vào đầy đủ để bạn kiểm chứng lời khẳng định thay vì tin nó. |
Mã kiểm chứng cho tất cả những điều này, bằng Python, PHP và JavaScript, có tại Kiểm chứng bằng chứng.
Tra cứu tên ngược
Cung cấp một địa chỉ PIVX để phân giải ngược:
GET/POST https://indexer.pivx.name/v1.0/resolve/reverse/{address}
Các tham số POST được mô tả ở trên.
Tên theo chủ sở hữu
Mọi tên thuộc về một khóa công khai Ed25519 cho trước.
GET/POST https://indexer.pivx.name/v1.0/resolve/owner/{Ed25519_public_key}
Các tham số POST được mô tả ở trên.