veil

Leggi lo stato del registro

Identifica il registro attivo e leggi checkpoint e stato dei testimoni visti dal server.

GET/v1/log
Accesso
Pubblico; chiave API facoltativa
Client
Fetch dal browser supportato

Esempi di richiesta#

cURL
curl -fsS 'https://veil.rip/v1/log'
javascript
const response = await fetch("https://veil.rip/v1/log");
const result = await response.json();

Prova la richiesta#

Risposta#

HTTP 200application/json

origin, size, root, checkpoint, witnesses, quorum, quorumMet e informazioni di freschezza e coerenza. Sono i controlli del server.

CampoTipoSignificato
originstringOrigine del registro.
sizeintegerDimensione corrente dell’albero.
rootstringHash firmato della radice in base64.
logSignatureOkbooleanControllo della firma del registro eseguito dal server.
rootOkbooleanControllo di coerenza del checkpoint eseguito dal server.
quorumintegerFirme dei testimoni richieste.
signedintegerFirme valide dei testimoni sulla dimensione corrente.
ofintegerNumero dei testimoni configurati.
quorumMetbooleanIndica se il checkpoint corrente raggiunge il quorum.
witnessesarray<object>Ogni riga ha id, name, size, signedAt (secondi Unix o null), ok, current, error, operator, kind, logo e initials.
checkpointstringNota firmata completa.
checkedAtstringData e ora del controllo del server in ISO 8601 UTC.
newestCosignatureAtinteger | nullControfirma valida più recente in secondi Unix.
freshbooleanIndica se il checkpoint rientra in freshSeconds.
freshSecondsintegerSoglia di freschezza in secondi.
consistencyobjectfrom, fromRoot, proof, ok, firstUse, behind ed error descrivono il confronto con il checkpoint accettato.
acceptedobject | nullUltimi size, root e at accettati, più firstSize e firstAt dell’inizio della catena.
formatinteger | optionalIl formato del registro quando non è 1: 2 per intestazioni, corpi e indice.
staffOrgstring | optionalFormato 2: il token dell’organizzazione Veil, il parametro dell’indice. Manca in formato 1 e finché il server non ha un’organizzazione Veil. Un browser rifiuta un registro in formato 2 che non lo dice.

Intestazioni della risposta#

IntestazioneValoreSignificato
Content-Typeapplication/jsonUsa il tipo dichiarato per scegliere come leggere il corpo.
DateHTTP dateOra del server. Confrontala con il tuo orologio per firmare le richieste.
Retry-Afterinteger seconds, on rate_limited or busyAttendi almeno questo intervallo prima di riprovare. Altri codici 429/503 non lo includono necessariamente.

Cosa verificare#

Fissa il registro atteso e la policy dei testimoni per una verifica indipendente. Un registro diverso non è una storia intercambiabile.

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

HTTPCodiceSignificato e cosa fare
503log_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
HTTPCodiceSignificato e cosa fare
401invalid_api_key

La credenziale Bearer è malformata, sconosciuta, scaduta o revocata.

Usa una chiave attiva. Per l’accesso pubblico anonimo, rimuovi del tutto Authorization. Credenziali non valide non attivano automaticamente l’accesso anonimo.

403api_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.

403api_key_suspended

Questa chiave API è sospesa.

Chiedi allo staff di ripristinarla; un’altra chiave non rimuove la sospensione dell’account.

403developer_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
HTTPCodiceSignificato e cosa fare
429rate_limited

È stato superato un limite anonimo, delle richieste firmate o della chiave API.

Attendi almeno i secondi indicati da Retry-After. Condividi coda e budget dei tentativi tra i tuoi processi.

500internal_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.

503busy

L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.

Attendi i secondi indicati da Retry-After e riprova con attese crescenti e un limite.