L’impostazione RPC personalizzata è l’intero argomento
Ogni altro explorer Solana legge da infrastruttura che il suo operatore controlla. Questo legge da qualunque endpoint gli dica.
Cambi un menu a tendina ed è su devnet. Inserisca un URL ed è su un cluster privato, un fornitore RPC a pagamento, o un validatore in funzione sulla propria macchina. L'explorer è una facciata sopra il JSON-RPC di Solana, e l'RPC è un parametro piuttosto che una costante.
Per lo sviluppo questa non è una convenienza, è la differenza tra avere un explorer e non averne uno. Testare un programma su localnet con Solscan è impossibile — le sue transazioni locali non esistono per quanto lo riguarda. Qui appaiono immediatamente.
Ha anche una conseguenza di privacy che vale la pena notare. Lo punti al proprio RPC e nessuna terza parte apprende cosa ha guardato. Questo è lo stesso argomento che fa Otterscan per Ethereum, disponibile qui senza abbandonare lo strumento mainstream.
Mostrare i dati grezzi accanto alla decodifica
Solscan decodifica aggressivamente, il che è di solito ciò che vuole e occasionalmente nasconde qualcosa. Un decodificatore che non riconosce un programma presenta la sua migliore ipotesi piuttosto che annunciare incertezza, e una lettura sbagliata con sicurezza è peggio di una onestamente illeggibile.
L'explorer ufficiale mostra istruzioni decodificate dove può e la lista di account grezza e i dati di istruzione dove non può — e mostra la forma grezza accanto, non al posto. Quando sta sviluppando un programma, quella vista grezza è ciò contro cui controlla la sua serializzazione.
È anche il dirimente quando due explorer non concordano su una transazione. I dati di istruzione grezzi sono la verità di base; tutto il resto è interpretazione. Poterli vedere risolve dispute che altrimenti girano in cerchio.
Il modello di account, mostrato correttamente
Tutto su Solana è un account: portafogli, saldi di token, codice di programma, e stato di programma. Ogni account ha un proprietario, che è il programma autorizzato a modificarlo, e un saldo di lamport che deve soddisfare il minimo di esenzione da affitto.
L'explorer ufficiale presenta questa struttura direttamente. Una pagina di account mostra il programma proprietario, la dimensione dei dati, lo stato di esenzione da affitto e i dati grezzi. Questo è un rendering più fedele di Solana rispetto a un layout saldo-e-transazioni, che è ciò che impongono diversi explorer di terze parti.
Rende leggibile anche la confusione ricorrente. Il suo portafoglio non detiene il suo USDC — un account di token associato, di proprietà del programma SPL Token, lo fa, e il suo portafoglio possiede quell'account. Vedere la catena di proprietà esposta spiega il modello in un modo che una lista di saldi non farà mai.
L’RPC sottostante
Poiché questa è una facciata sottile, la questione dell'API riguarda davvero il JSON-RPC proprio di Solana. L'endpoint mainnet pubblico funziona senza chiave — lo abbiamo confermato — e restituisce dati di slot, epoca, account e transazione:
curl -X POST https://api.mainnet-beta.solana.com \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
È pesantemente limitato ed esplicitamente non per produzione. Per un widget di stato o una ricerca occasionale è gratuito e non richiede nulla, motivo per cui le cifre dal vivo su questo sito lo usano.
Per qualsiasi cosa seria vuole un fornitore RPC dedicato, e allora questo explorer puntato allo stesso endpoint le dà una vista visiva esattamente dei dati che vede la sua applicazione. Quell'allineamento — stessa fonte, stessi risultati — rimuove un'intera categoria di confusione di debug.
Quale usare
Usi l'explorer ufficiale per lo sviluppo, per devnet e localnet, per verificare una lettura decodificata contro dati grezzi, e quando preferirebbe non dire a una terza parte cosa sta guardando.
Usi Solscan per la lettura quotidiana — la decodifica è più ricca, la gestione di token e NFT è considerevolmente migliore, e per capire perché uno scambio è fallito la raggiungerà più velocemente.
La maggior parte degli sviluppatori Solana finisce per avere entrambi aperti, il che è il risultato sensato piuttosto che un fallimento di uno dei due.
Cosa hanno mostrato i nostri test di riferimento
Abbiamo fatto girare l'explorer ufficiale contro gli stessi elementi Solana che abbiamo usato per Solscan: un trasferimento SOL semplice, un trasferimento di token SPL, uno scambio fallito, un mint di NFT, e una transazione su un validatore locale che nessun explorer ospitato può vedere.
I primi quattro si sono resi correttamente con meno decodifica di Solscan, esattamente come atteso. Lo scambio fallito ha nominato l'istruzione fallente e restituito il codice di errore del programma senza tradurlo in linguaggio semplice — sufficiente per diagnosticare se conosce il programma, meno utile se non lo conosce.
Il quinto elemento è quello che conta. Puntare l'explorer a un validatore locale ha richiesto il cambio di un campo, e transazioni che non esistevano da nessun'altra parte sono apparse immediatamente. Abbiamo ripetuto l'esercizio contro devnet con lo stesso risultato. Nessun altro explorer Solana che abbiamo testato può fare questo affatto.
L'abbiamo anche usato come dirimente in un caso in cui due explorer presentavano la stessa transazione diversamente, e i dati di istruzione grezzi l'hanno risolto in meno di un minuto. Questa è una piccola cosa fino al momento in cui ne ha bisogno, e allora è l'unica cosa che aiuta.