Saltar al contenido principal

Resolución de nombres

Resolver un nombre

Resuelve un nombre de PIVX y devuelve su dirección de PIVX asociada, los detalles de su prueba, los puntos de control de sincronización y los datos de registro.

Punto de acceso

GET https://indexer.pivx.name/v1.0/resolve/{name} (solo resolución del nombre)
POST https://indexer.pivx.name/v1.0/resolve/{name} (si hacen falta parámetros adicionales)

Parámetros de ruta

ParámetroTipoObligatorioDescripción
{name}stringEl nombre de PIVX que se quiere resolver (por ejemplo, richard.pivx).

Cuerpo de la petición

El cuerpo de la petición debe ser un objeto JSON con los siguientes parámetros:

ParámetroTipoPor defectoDescripción
extendedbooleanfalseSi es true, devuelve además domain_tx (el hash de la transacción del registro del dominio).
with_checkpointbooleanfalseSi es true, devuelve el punto de control actual al que está sincronizado el indexador.

Ejemplos 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
}'

Ejemplo de respuesta

{
"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"
}
}
CampoTipoDescripción
domain_namestringEl nombre registrado
target_addressstringDirección de PIVX de destino
owner_pubkeystringClave pública del titular del nombre
priceintPrecio indicado (se usa en el Mercado)
nonceintNonce incremental
smt_rootstringRaíz actual del árbol de Merkle (hex)
(si with_checkpoint:false; en otro caso, vea la raíz SMT en "checkpoint")
merkle_proofstring[]Hashes hermanos en hex; [0] es el más profundo. Su longitud es igual a proof_depth
proof_depthintNúmero de hermanos: compruebe que es igual a merkle_proof.length
proof_terminalstring | object"Occupied", "Vacant" o {"Blocked":{…}} — véase más abajo
extended:
created_block_idintblock_id de PIVX de la creación del dominio
updated_block_idintblock_id de PIVX de la última modificación del dominio
domain_txstringEl hash de la transacción de PIVX del registro del nombre
with_checkpoint:Campos dentro de "checkpoint":
idxintPosición en el array rootChain del contrato ancla; el cursor de reanudación al descubrir checkpoints
block_idintEl block_id de PIVX de la última prueba SMT generada
smt_rootstringRaíz actual del árbol de Merkle (hex)

proof_terminal

Describe qué hay al final del camino de la prueba. Es lo que hace que la ausencia sea demostrable y no una mera afirmación:

ValorSignificado
"Occupied"ahí está la hoja propia del nombre: una resolución correcta. Rechace toda resolución cuyo terminal no sea este.
"Vacant"ahí hay un subárbol vacío: el nombre no está registrado
{"Blocked": {"record": {…}}}esa posición la ocupa la hoja de un nombre distinto, así que el nombre consultado no está registrado. El registro que bloquea se incluye completo para que pueda comprobar la afirmación en vez de confiar en ella.

El código de verificación de todo esto, en Python, PHP y JavaScript, está en Verificar pruebas.

Resolución inversa de nombres

Indique una dirección de PIVX para hacer una resolución inversa:

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

Los parámetros POST se describen más arriba.

Nombres por titular

Todos los nombres que posee una clave pública Ed25519 dada.

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

Los parámetros POST se describen más arriba.