Leggi la prova di una versione
Leggi la prova di inclusione di una versione sotto il checkpoint corrente.
/v1/identities/{n}/versions/{k}/proof- Accesso
- Pubblico; chiave API facoltativa
- Client
- Fetch dal browser supportato
Parametri#
| Nome | Posizione | Significato |
|---|---|---|
nObbligatorio | Percorso | Numero permanente positivo della scheda. |
kObbligatorio | Percorso | Numero positivo di una versione pubblicata. |
Esempi di richiesta#
curl -fsS 'https://veil.rip/v1/identities/1/versions/1/proof'const response = await fetch("https://veil.rip/v1/identities/1/versions/1/proof");
const result = await response.json();Prova la richiesta#
Risposta#
Lo stesso oggetto proof della scheda completa, per la versione k.
| Campo | Tipo | Significato |
|---|---|---|
version | integer | Versione coperta dalla prova. |
record | string | Testo JSON canonico esatto che è stato firmato. Non riformattarlo prima della verifica. |
salt | string | Sale dell’impegno in hex. |
serverSalt | string | Contributo del server al sale, in hex. |
clientSalt | string | null | Contributo del dispositivo al sale, in hex, se usato. |
commitment | string | SHA-256 dei byte del sale seguiti dai byte del record, in hex. |
signedBy | string | Chiave pubblica di firma. |
signature | string | Firma sul prefisso identity-version e sul record esatto. |
entry | string | Testo canonico esatto della voce del registro. |
logIndex | integer | Indice della foglia a partire da zero. |
leafHash | string | SHA-256 di 0x00 seguito dai byte della voce, in hex. |
checkpoint | Checkpoint | Checkpoint firmato con size, root e note. |
inclusion | array<string> | Hash del percorso di inclusione in hex, dal fratello più profondo. |
witnesses | array<string> | Righe delle controfirme dei testimoni, presenti anche in checkpoint.note. |
Apri un oggetto annidato per leggerne i campi. I tipi con null ammettono un valore null; i campi optional possono essere assenti. Gli altri campi sono presenti nell’oggetto.
Checkpoint Checkpoint
| Campo | Tipo | Significato |
|---|---|---|
size | integer | Numero di foglie nell’albero firmato. |
root | string | Hash della radice in base64. |
note | string | Nota firmata completa, incluse le firme del registro e dei testimoni. |
Intestazioni della risposta#
| Intestazione | Valore | Significato |
|---|---|---|
Content-Type | application/json | Usa il tipo dichiarato per scegliere come leggere il corpo. |
Date | HTTP date | Ora del server. Confrontala con il tuo orologio per firmare le richieste. |
Retry-After | integer seconds, on rate_limited or busy | Attendi almeno questo intervallo prima di riprovare. Altri codici 429/503 non lo includono necessariamente. |
Cosa verificare#
Controlla apertura, hash della foglia, inclusione e checkpoint firmato.
Errori#
Gli errori API restituiscono un oggetto error. Usa error.code nella logica del programma; error.message è un testo inglese per le persone e può cambiare. Guida a risposte ed errori
| HTTP | Codice | Significato e cosa fare |
|---|---|---|
| 400 | invalid_parameter | Un campo del percorso, della query o del corpo manca, è malformato o fuori intervallo. Correggi il campo indicato in |
| 404 | not_found | La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati. Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati. |
| 410 | erased | La scheda esisteva ed è stata cancellata o rimossa. La risposta contiene anche la ricevuta pubblica di cancellazione. Smetti di usare questa scheda come autorità corrente. Conserva soltanto la ricevuta pubblica se serve. |
| 503 | log_unavailable | Al momento il registro pubblico non può essere letto, verificato o usato per pubblicare. Per le letture, considera il risultato non verificato e riprova più tardi. Prima di ripetere una scrittura, leggi la scheda per controllare se la pubblicazione è terminata. |
Quando usi una chiave API facoltativa
| HTTP | Codice | Significato e cosa fare |
|---|---|---|
| 401 | invalid_api_key | La credenziale Bearer è malformata, sconosciuta, scaduta o revocata. Usa una chiave attiva. Per l’accesso pubblico anonimo, rimuovi del tutto |
| 403 | api_key_scope | La chiave API non ha il permesso read o verify, oppure l’endpoint non accetta chiavi Bearer. Usa il permesso corretto. Le modifiche alle schede e la gestione delle chiavi richiedono una firma del dispositivo. |
| 403 | api_key_suspended | Questa chiave API è sospesa. Chiedi allo staff di ripristinarla; un’altra chiave non rimuove la sospensione dell’account. |
| 403 | developer_suspended | L’account API del titolare è sospeso oppure la scheda titolare non è disponibile. Controlla l’account titolare e le restrizioni dello staff. Creare un’altra chiave non aggira la sospensione. |
Errori comuni delle richieste
| HTTP | Codice | Significato e cosa fare |
|---|---|---|
| 429 | rate_limited | È stato superato un limite anonimo, delle richieste firmate o della chiave API. Attendi almeno i secondi indicati da |
| 500 | internal_error | Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti. Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata. |
| 503 | busy | L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database. Attendi i secondi indicati da |