Che cos'è un RPC?
Un Remote Procedure Call (RPC), o chiamata di procedura remota in italiano, è un protocollo di comunicazione che consente a un programma di avviare una procedura su un altro programma ospitato in un’altra rete, senza conoscere i dettagli di quest’ultimo.
Il programma che effettua la richiesta è il client, mentre il programma che fornisce il servizio è il server. In altre parole, un RPC consente a un client di richiedere a un server remoto di fare qualcosa per lui.
Per semplificare al massimo, immaginiamo che tu sia il cliente e che il server sia il tuo amico. Chiedi al tuo amico di preparare una torta e poi di inviartela. Questo funziona come un RPC.
Tu fornisci al server alcuni parametri: l’ordine di preparare la torta e poi di inviarla. Successivamente, il server gestisce la richiesta (preparare la torta) e ti invia i risultati (invio della torta).
Così come in una chiamata di procedura locale, quando un RPC viene avviato dal client, i parametri della procedura vengono trasferiti sulla rete al server e la procedura viene eseguita da questo server. Una volta completata la procedura, i risultati vengono trasferiti al client in senso inverso.
L'applicazione del RPC nella blockchain
L’RCP è ampiamente utilizzato nella tecnologia blockchain. Infatti, si tratta del protocollo che consente alle applicazioni decentralizzate (dApp) di interagire con una blockchain. Se hai già utilizzato un portafoglio digitale come MetaMask, allora hai già utilizzato un RPC.
Quando si utilizza un’applicazione decentralizzata come Uniswap, Aave o Curve, è necessario collegarvi un portafoglio che supporti una rete compatibile. Il portafoglio funge da intermediario tra le azioni che esegui sull’interfaccia della dApp e la blockchain.
L’RCP configurato sul portafoglio svolge questo lavoro di comunicazione tra la dApp e la blockchain. Anche se non si tocca nulla, ogni portafoglio ha un RCP configurato per impostazione predefinita per le reti che supporta, quindi funziona senza l’intervento dell’utente.
Dal punto di vista dell’esperienza dell’utente, si fa clic sull’interfaccia della dApp per eseguire l’azione desiderata e si conferma l’azione con il proprio portafoglio.
Ma più precisamente, l’interazione con la blockchain avviene tramite la comunicazione con un nodo RPC. Questi nodi detengono una copia del registro delle transazioni (la blockchain), che consente di accedervi collegandosi.Pertanto, in questo contesto:
- Applicazione decentralizzata: client;
- Nodi RPC: server.
Quindi, un RPC consente al client di effettuare una richiesta al server a distanza. Qui, la dApp fa una richiesta a un nodo. I nodi sono gestiti da entità o individui situati ovunque nel mondo, da qui l’utilizzo dell’RCP.
Tuttavia, è necessario che il nodo sia in grado di rispondere a una richiesta RCP, quindi è necessario installare un software che lo consenta. Questo tipo di nodo deve essere distinto dai nodi di mining e dai nodi validatori.
Infine, una volta che la dApp è connessa al nodo, può accedere a tutte le informazioni della blockchain. Quindi, quando la dApp inizia una richiesta, il nodo recupera le informazioni necessarie sulla blockchain e le invia alla dApp. È in questo modo che vengono eseguite le transazioni, ad esempio.
Cambiare RPC per proteggersi
I RPC utilizzati per impostazione predefinita dai portafogli digitali gestiscono il maggior volume di richieste, il che può causare un rallentamento del processo. Per questo motivo, cambiare RPC può essere utile.
Prima di farlo, è importante sapere che esistono due modi principali per utilizzare un nodo RPC:
- Installare il proprio nodo RPC, sia a casa che su un server in affitto;
- Utilizzare un provider di RPC come Infura o Alchemy, che gestisce i propri nodi RPC.
Il rischio principale dell’utilizzo di un provider di RPC è la censura delle transazioni. Inoltre, questi provider potrebbero in teoria tracciare ogni interazione che un individuo ha con la blockchain per monetizzarla.
Per impostazione predefinita, se non si è scelto un RPC sul proprio portafoglio, si utilizza quello di un provider che potrebbe prelevare i propri dati.
Anche se non tutti i provider di RPC adottano queste pratiche, è comunque un rischio da tenere in considerazione.

Come si può vedere dalla figura sopra, ConsenSys, l’azienda dietro a MetaMask, ha configurato per impostazione predefinita l’RCP di Infura per la rete Ethereum. Questo è anche il caso per le altre reti che MetaMask supporta nativamente, come Polygon, Optimism o Arbitrum One.
MetaMask è stata sotto i riflettori nel novembre del 2022, poiché è stato scoperto che ConsenSys prelevava alcuni dati degli utenti del RPC di Infura come gli indirizzi IP e gli indirizzi del portafoglio.
Se si desidera evitarlo, è possibile utilizzare il proprio nodo o utilizzare un altro provider di RPC. È sufficiente modificare l’URL dell’RCP nella scheda “Reti” delle impostazioni di MetaMask, come mostrato nella figura sopra.
Per trovare altri provider di RPC su una rete compatibile con Ethereum Virtual Machine (EVM), si può ad esempio utilizzare Chainlist, un sito che li elenca per rete. Tra i provider di RPC più conosciuti ci sono Alchemy, Ankr e Pokt Network.
L'utilizzo di una testnet
Cambiare l’RCP è anche particolarmente utile quando si utilizza una testnet di una blockchain. Infatti, quando molte persone utilizzano contemporaneamente una testnet con l’RCP configurato per impostazione predefinita, potrebbe non essere più possibile interagire con la blockchain della testnet a causa del numero troppo elevato di richieste.
Questo può accadere soprattutto durante eventi che richiedono di svolgere determinati compiti al fine di essere idonei a ricevere un airdrop, ad esempio.
In questo caso, è possibile cambiare l’RCP sulla rete di testnet nelle impostazioni del proprio portafoglio. In questo modo si potrà continuare ad interagire con la blockchain della testnet e completare i propri compiti.