Pular para o conteúdo principal

Resolução de nomes

Resolver um nome

Resolve um nome PIVX e devolve o endereço PIVX associado, os detalhes da sua prova, os pontos de controlo de sincronização e os dados de registo.

Ponto de acesso

GET https://indexer.pivx.name/v1.0/resolve/{name} (apenas resolução do nome)
POST https://indexer.pivx.name/v1.0/resolve/{name} (se forem precisos parâmetros adicionais)

Parâmetros de caminho

ParâmetroTipoObrigatórioDescrição
{name}stringSimO nome PIVX a resolver (por exemplo, richard.pivx).

Corpo do pedido

O corpo do pedido tem de ser um objeto JSON com os seguintes parâmetros:

ParâmetroTipoPredefiniçãoDescrição
extendedbooleanfalseSe for true, devolve também domain_tx (o hash da transação do registo do domínio).
with_checkpointbooleanfalseSe for true, devolve o ponto de controlo atual a que o indexador está sincronizado.

Exemplos de código

curl -X POST https://indexer.pivx.name/v1.0/resolve/richard.pivx \
-H "Content-Type: application/json" \
-d '{
"extended": true,
"with_checkpoint": true
}'

Exemplo de resposta

{
"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"
}
}
CampoTipoDescrição
domain_namestringO nome registado
target_addressstringEndereço PIVX de destino
owner_pubkeystringChave pública do titular do nome
priceintPreço indicado (usado no Mercado)
nonceintNonce incremental
smt_rootstringRaiz atual da árvore de Merkle (hex)
(se with_checkpoint:false; caso contrário, ver a raiz SMT em "checkpoint")
merkle_proofstring[]Hashes irmãos em hex; [0] é o mais profundo. O comprimento é igual a proof_depth
proof_depthintNúmero de irmãos — confirme que é igual a merkle_proof.length
proof_terminalstring | object"Occupied", "Vacant" ou {"Blocked":{…}} — ver abaixo
extended:
created_block_idintblock_id PIVX da criação do domínio
updated_block_idintblock_id PIVX da última alteração do domínio
domain_txstringO hash da transação PIVX do registo do nome
with_checkpoint:Campos dentro de "checkpoint":
idxintPosição no array rootChain do contrato âncora; o cursor de retoma na descoberta de checkpoints
block_idintO block_id PIVX da última prova SMT gerada
smt_rootstringRaiz atual da árvore de Merkle (hex)

proof_terminal

Descreve o que está no fim do caminho da prova. É isto que torna a ausência demonstrável e não uma mera afirmação:

ValorSignificado
"Occupied"ali está a folha própria do nome — uma resolução bem-sucedida. Rejeite qualquer resolução cujo terminal não seja este.
"Vacant"ali está uma subárvore vazia — o nome não está registado
{"Blocked": {"record": {…}}}essa posição é ocupada pela folha de um nome diferente, logo o nome consultado não está registado. O registo que bloqueia é incluído na íntegra para que possa verificar a alegação em vez de confiar nela.

O código de verificação de tudo isto, em Python, PHP e JavaScript, está em Verificar provas.

Resolução inversa de nomes

Indique um endereço PIVX para fazer uma resolução inversa:

GET/POST https://indexer.pivx.name/v1.0/resolve/reverse/{address}

Os parâmetros POST estão descritos acima.

Nomes por titular

Todos os nomes pertencentes a uma dada chave pública Ed25519.

GET/POST https://indexer.pivx.name/v1.0/resolve/owner/{Ed25519_public_key}

Os parâmetros POST estão descritos acima.