Che cos'è RPC
Nota: Questo documento è una traduzione automatica della versione originale in inglese.
Che cos'è RPC
RPC (Remote Procedure Call) è un protocollo di comunicazione che consente a un'applicazione di richiedere un servizio a un programma in esecuzione su un altro computer senza dover conoscere i dettagli della rete di quel computer. Nel contesto blockchain, RPC è il modo in cui wallet, applicazioni decentralizzate, block explorer e altri software comunicano con i nodi blockchain — inviando transazioni, interrogando i saldi, leggendo lo stato degli smart contract e recuperando i dati dei blocchi.
In sintesi: RPC è l'interfaccia standard attraverso cui le applicazioni parlano con i nodi blockchain — è il livello di comunicazione che collega dApp, wallet e strumenti alla rete blockchain stessa.
Come funziona RPC nella blockchain
Ogni nodo blockchain espone un endpoint RPC — un URL che accetta richieste strutturate e restituisce risposte strutturate. Quando un'applicazione deve interagire con la blockchain, invia una richiesta RPC a questo endpoint.
Schema richiesta-risposta
L'interazione segue un classico schema client-server:
- Richiesta. L'applicazione (client) invia una richiesta all'endpoint RPC del nodo. La richiesta specifica quale metodo chiamare e fornisce i parametri necessari. Ad esempio: «ottieni il saldo dell'indirizzo 0x742d...bD38» o «invia questa transazione firmata alla rete».
- Elaborazione. Il nodo riceve la richiesta, esegue l'operazione richiesta — leggendo dalla propria copia locale della blockchain o trasmettendo una transazione alla rete — e prepara una risposta.
- Risposta. Il nodo restituisce il risultato all'applicazione in un formato strutturato (tipicamente JSON).
JSON-RPC
La maggior parte delle reti blockchain usa JSON-RPC — un protocollo leggero in cui richieste e risposte sono formattate come oggetti JSON. Una tipica richiesta JSON-RPC include il nome di un metodo (come eth_getBalance, eth_sendRawTransaction o eth_call) e un array di parametri. La risposta contiene il risultato o un messaggio di errore.
Questo formato standardizzato significa che qualsiasi applicazione che comprende JSON-RPC può interagire con qualsiasi nodo che implementa gli stessi metodi, indipendentemente dal linguaggio di programmazione o dal framework usato da entrambe le parti.
Operazioni RPC comuni
Gli endpoint RPC blockchain supportano tipicamente operazioni come:
- Lettura dello stato — interrogazione dei saldi dei conti, delle disponibilità di token, dello storage degli smart contract e del numero di blocco corrente.
- Invio di transazioni — trasmissione di transazioni firmate alla rete per l'inclusione in un blocco.
- Chiamata di smart contract — esecuzione di funzioni di smart contract in sola lettura senza creare una transazione (nessun costo di gas).
- Sottoscrizione a eventi — ascolto di specifici eventi on-chain come trasferimenti di token, deploy di contratti o nuovi blocchi.
- Recupero della cronologia — ottenimento di transazioni passate, log e dati dei blocchi.
Provider RPC
Gestire un nodo blockchain completo richiede storage, banda e manutenzione significativi. Molti sviluppatori e applicazioni usano provider RPC — servizi di terze parti che gestiscono l'infrastruttura dei nodi ed espongono endpoint RPC per uso pubblico o a pagamento. Questi provider offrono un accesso affidabile e ad alta disponibilità ai dati blockchain senza richiedere a ogni applicazione di gestire il proprio nodo.
I provider RPC più diffusi servono miliardi di richieste al giorno su più reti blockchain, funzionando come spina dorsale dell'ecosistema delle dApp.
Perché è importante per i progetti cripto AI
RPC è il livello di comunicazione da cui dipende ogni progetto AI basato su blockchain, anche se non è sempre visibile agli utenti finali.
Interazione con gli smart contract. I progetti AI che distribuiscono smart contract hanno bisogno di RPC per leggere lo stato dei contratti, attivare funzioni e inviare transazioni. Che un progetto stia distribuendo task di calcolo, registrando risultati di inferenza o gestendo lo staking, ogni interazione on-chain passa attraverso un endpoint RPC.
Ingestione dei dati. I sistemi AI che analizzano l'attività on-chain — pattern di trading, comportamenti dei wallet, metriche dei protocolli — si affidano alle chiamate RPC per acquisire i dati blockchain. La velocità e l'affidabilità dell'accesso RPC influiscono direttamente sulla qualità e sulla tempestività delle analisi AI.
Dipendenza infrastrutturale. Per i progetti AI che gestiscono reti di nodi decentralizzate, il livello RPC è il modo in cui gli utenti esterni accedono al servizio. Un marketplace di calcolo decentralizzato espone endpoint RPC per l'invio dei task; una rete di inferenza AI usa RPC per la consegna dei risultati. L'affidabilità di questi endpoint determina l'esperienza utente.
Dove compare nelle schede progetto di DecAIHub
RPC non figura come campo autonomo nelle schede progetto, ma è alla base di diversi aspetti dell'architettura di un progetto:
- Main chain — ogni main chain ha la propria specifica RPC. La scelta della chain determina quali metodi RPC sono disponibili e come le applicazioni interagiscono con la rete.
- Type — i progetti che forniscono infrastruttura RPC come servizio (provider di nodi, gateway API) possono essere classificati in base al loro ruolo infrastrutturale.
- Interazione con dApp e smart contract — qualsiasi progetto con smart contract on-chain si affida a RPC per tutte le interazioni esterne con quei contratti.
Cosa RPC da solo non dimostra
- Decentralizzazione — usare un provider RPC centralizzato significa che l'applicazione dipende da un singolo punto di guasto. Se il provider va offline o censura le richieste, l'applicazione perde l'accesso alla blockchain. Passare attraverso un gateway RPC centralizzato non rende un'applicazione decentralizzata.
- Sicurezza — gli endpoint RPC possono essere pubblici o privati, con rate limit o aperti. Un endpoint RPC pubblico non fornisce di per sé garanzie di sicurezza. Le applicazioni che inviano transazioni sensibili dovrebbero assicurarsi di usare endpoint fidati e autenticati.
- Esecuzione on-chain — inviare una richiesta RPC non significa che l'operazione avvenga on-chain. Le chiamate in sola lettura (
eth_call) vengono eseguite localmente sul nodo senza creare una transazione. Solo le transazioni firmate inviate tramite RPC modificano effettivamente lo stato della blockchain. - Prestazioni — i tempi di risposta RPC dipendono dall'hardware del nodo, dalle condizioni di rete e dall'infrastruttura del provider. Una connessione RPC lenta non indica una blockchain lenta; può indicare un nodo sovraccarico o geograficamente distante.
Da non confondere con
- API — RPC è un tipo di API, ma non tutte le API sono RPC. Le API REST, gli endpoint GraphQL e le interfacce WebSocket sono schemi di comunicazione alternativi. Nella blockchain, «RPC» si riferisce specificamente all'interfaccia JSON-RPC esposta dai nodi.
- Nodo — un nodo è il computer effettivo che esegue il software blockchain. RPC è l'interfaccia attraverso cui le applicazioni esterne comunicano con quel nodo. Il nodo fa il lavoro; RPC è la porta.
- SDK / Libreria — librerie come Web3.js, Ethers.js o Web3.py semplificano le interazioni RPC incapsulando le chiamate JSON-RPC grezze in funzioni comode per gli sviluppatori. La libreria è un livello di convenienza; RPC è il protocollo sottostante.
- Oracle — un oracle porta dati off-chain sulla blockchain. RPC è il modo in cui le applicazioni leggono e scrivono dati on-chain. Svolgono ruoli diversi: gli oracle fanno da ponte per i dati esterni, mentre RPC fornisce accesso ai dati che sono già on-chain.
Domande frequenti
Devo gestire un mio nodo per usare RPC?
No. La maggior parte degli sviluppatori e delle applicazioni usa provider RPC di terze parti che gestiscono l'infrastruttura dei nodi come servizio. Questi provider offrono endpoint RPC accessibili tramite connessioni HTTP o WebSocket standard. Gestire il proprio nodo dà pieno controllo ed elimina la dipendenza da terzi, ma richiede risorse significative. Per la maggior parte dei casi d'uso, un provider RPC affidabile è sufficiente.
Cosa succede se un provider RPC va offline?
Se il provider RPC usato dalla tua applicazione va offline, l'applicazione perde la connessione alla blockchain. Non può leggere lo stato, inviare transazioni o ricevere notifiche di eventi finché la connessione non viene ripristinata o l'applicazione non passa a un endpoint alternativo. Per questo motivo, le applicazioni in produzione configurano spesso più endpoint RPC di fallback di provider diversi.
RPC è la stessa cosa dell'accesso alla blockchain?
RPC è il metodo più comune di accesso alla blockchain, ma non è l'unico. Alcune applicazioni usano protocolli alternativi come indexer basati su GraphQL o connessioni dirette peer-to-peer. Tuttavia, JSON-RPC resta l'interfaccia standard per l'interazione blockchain generica, e praticamente ogni wallet, dApp e strumento blockchain la usa dietro le quinte.
Riferimenti esterni
- Ethereum.org — JSON-RPC API — documentazione ufficiale di Ethereum sulla specifica JSON-RPC e sui metodi disponibili.
No comments to display
No comments to display