- Torna al menu
- Torna al menuPrezzi
- Torna al menuRicerca
- Torna al menuConsenso
- Torna al menu
- Torna al menu
- Torna al menu
- Torna al menuWebinar ed Eventi
Nodi e client Ethereum : una guida completa
I termini "client Ethereum " e "nodo Ethereum " sono spesso usati in modo intercambiabile, ma c'è una differenza.
Nel mondo informatico, un "client" si riferisce a qualsiasi tipo di software scaricato sul tuo computer e che ti aiuta a interagire con un altro tipo di software o servizio fornito da un server. Ad esempio, Gmail è un client software che si connette a un server di posta elettronica e consente agli utenti di inviare e ricevere e-mail.
Un client Ethereum è il software necessario per consentire ai nodi Ethereum di leggere i blocchi sulla blockchain Ethereum e gli smart contract basati su Ethereum. Un "nodo" è la parte in esecuzione del software client. Per eseguire un nodo, devi prima scaricare un'applicazione client Ethereum .
Cosa sono i nodi Ethereum ?
Un "nodo" è un computer che esegue una determinata funzione sulla rete Ethereum ed esegue un software client per farlo. A seconda delle tue esigenze specifiche, che si tratti di un'applicazione decentralizzata (dapp) o di un portafoglio, ci sono tre diversi tipi di nodi che possono essere eseguiti da qualsiasi client: nodi completi, nodi leggeri e nodi di archivio. Ogni nodo interpreterà i dati in modo diverso e offrirà diversi metodi di sincronizzazione: questo si riferisce alla rapidità con cui il tuo nodo è in grado di recuperare informazioni aggiornate affinché il tuo client le interpreti.
- I full node sono pieni di dati; memorizzano e possono distribuire tutti i dati della blockchain dalla rete Ethereum . Un full node parteciperà inoltre alla convalida dei blocchi (ovvero verificherà tutti i blocchi e gli stati sulla rete).
Un vantaggio dell'implementazione di un full node è che può interagire direttamente con qualsiasi smart contract sulla blockchain pubblica. I full node possono anche distribuire direttamente smart contract nella blockchain pubblica.
Tuttavia, l'uso e l'archiviazione completi dei dati, così come la funzionalità diretta dello smart contract, hanno un costo. I nodi completi possono gravare sulle risorse hardware e di larghezza di banda del computer. Anche il recupero dei dati completi può richiedere molto tempo, a volte impiegando più giorni per sincronizzare i dati quando il nodo viene distribuito per la prima volta. Quindi, il nodo deve essere mantenuto, aggiornato e mantenuto online per non dover ripetere il processo di sincronizzazione completo.
- I nodi leggeri sono simili al nodo completo, ma gestiscono meno informazioni. Il nodo leggero memorizza le informazioni della catena di intestazione (informazioni di base memorizzate in un blocco, come un timestamp e l'hash del blocco precedente), ma riceverà informazioni aggiuntive solo su Request. Sono in grado di verificare la validità dei dati, ma non partecipano completamente alla convalida del blocco. I nodi leggeri sono quasi sempre implementati all'interno di client remoti. Poiché questi nodi non assumono processi di archiviazione e scrittura dei dati più intensivi, hanno dimostrato di essere utili per dispositivi a bassa capacità come gli smartphone.
- I nodi di archivio sono nodi che memorizzano tutte le informazioni che un nodo completo fa e costruiscono un archivio di stati storici della blockchain. I nodi di archivio manterranno i dati storici anche dopo che un client ha terminato la sincronizzazione. I nodi completi e leggeri, d'altro canto, "ripuliranno" i dati storici della blockchain, il che significa che possono ricostruire, ma non conservano queste informazioni.
Sebbene i nodi di archivio possano non essere utili per l'utente medio, si sono dimostrati efficaci nell'applicazione di esploratori di blocchi, venditori di portafogli e analisi delle catene.
Cos'è un client Ethereum ?
I client possono essere utili per gli sviluppatori perché consentono loro di interagire con la rete e altri nodi di rete utilizzando vari linguaggi di programmazione. La Ethereum Foundation gestisce diversi client per diversi linguaggi di programmazione, tra cui Go, Rust, Java e C#. Vari sviluppatori terzi hanno anche creato client Ethereum per ulteriore supporto linguistico.
Gli utilizzi più comuni dei client Ethereum includono interfacce di transazione e mining, ma i suoi casi d'uso possono andare ben oltre le interazioni di base della blockchain.
La Ethereum Foundation gestisce i seguenti clienti:
- Geth (Vai)
- OpenEthereum (Ruggine)
- Nethermind (C#, .NET)https://nethermind.io/client
- Besu (Giava)
- Erigon (Vai/Multi)
Questi offrono agli sviluppatori opzioni per implementare i loro progetti basati su Ethereum. Se il tuo linguaggio preferito T è ufficialmente supportato dalla Ethereum Foundation, esistono numerosi client Ethereum di terze parti che forniscono ulteriore supporto linguistico.
Il motivo per cui tutti questi diversi client sono possibili è perché Ethereum è definito da una specifica formale (vale a dire "Carta gialla”). Le specifiche formali che compongono Ethereum distinguono la blockchain da Bitcoin. Mentre Ethereum definisce comportamenti standard che tutti i client Ethereum devono Seguici, Bitcoin CORE non ha tali definizioni. Fornendo documentazione coerente e linguaggio chiaro, le specifiche di Ethereum hanno consentito alla blockchain di consentire implementazioni software indipendenti, ma interoperabili, di un client Ethereum .
Tipi di client Ethereum
Cliente completo
I client completi memorizzano l'intera blockchain Ethereum ; un processo che può richiedere diversi giorni per la sincronizzazione e richiede un'enorme quantità di spazio su disco, oltre 1 Terabyte per l'esattezza, secondo ultime cifreI client completi consentono ai nodi connessi di eseguire tutte le attività sulla rete, tra cui il mining, la convalida delle transazioni e delle intestazioni dei blocchi e l'esecuzione di contratti intelligenti.
Cliente leggero
I client Ethereum possono essere implementati completamente o in parte. La panoramica di cui sopra fornisce una spiegazione di come funziona un client "completo", tuttavia è importante sapere che T è sempre necessario eseguire un client completo. In genere, quando l'archiviazione dei dati e la velocità sono in gioco, gli sviluppatori scelgono di utilizzare quelli che vengono chiamati "light client".
I light client offrono un sottoinsieme delle funzionalità di un full client. I light client possono fornire velocità più elevate e liberare la disponibilità di archiviazione dati perché, a differenza dei full client, non archiviano l'intera blockchain Ethereum .
L'ambito di funzionalità di un light client è personalizzato in base agli obiettivi del client Ethereum . Ad esempio, i light client sono spesso utilizzati per la gestione delle chiavi private e degli indirizzi Ethereum all'interno di un portafoglio. Inoltre, tendono a gestire interazioni con smart contract e trasmissioni di transazioni. Altri utilizzi per i client remoti includono istanze web3 all'interno di oggetti JavaScript, browser dapp e recupero di dati sui tassi di cambio.
Cliente remoto
Esiste un terzo tipo di client chiamato client remoto che è simile a un client leggero. La differenza principale è che un client remoto non memorizza la propria copia della blockchain, né convalida le transazioni o le intestazioni dei blocchi. Invece, i client remoti si affidano completamente a un client completo o leggero per ottenere l'accesso alla rete blockchain Ethereum . Questi tipi di client sono utilizzati prevalentemente come portafoglio per inviare e ricevere transazioni.
La differenza tra nodi e client
I nodi e i client lavorano ONE a fianco e entrambi i termini sono spesso usati in modo intercambiabile. Tuttavia, entrambi operano separatamente per accedere alla rete Ethereum .
Pensa ai nodi e ai client che operano come un computer che accede a Internet: il nodo è un sistema operativo, come Windows o iOS, e il client è il computer stesso. Il computer client fornisce a un utente la possibilità di accedere al sistema operativo del nodo, che a sua volta ti consente di accedere a Internet. Computer diversi saranno in grado di darti accesso allo stesso sistema operativo e i diversi sistemi operativi ti daranno accesso alla stessa Internet.
MetaMaschera
Per vedere come funzionano i client Ethereum nel mondo reale, possiamo prendere MetaMask come esempio. MetaMask è un portafoglio basato su browser, un client Remote Procedure Call (RPC) e un semplice esploratore di contratti. Qualsiasi computer con Chrome, Firefox, Opera o Brave Browser è in grado di eseguire MetaMask.
MetaMask è un'implementazione di un client remoto che interagisce con la blockchain tramite un client leggero. Per evitare qualsiasi problema di sicurezza, MetaMask gestisce il proprio client leggero per comunicare con il client remoto al fine di garantire un'efficace sicurezza e certezza delle transazioni.
MetaMask è unico rispetto agli altri wallet basati su browser perché applica un'istanza web3 al lettore JavaScript di un browser, fornendo accesso alla mainnet Ethereum e anche ad altre testnet, tra cui la testnet Ropsten, la testnet Kovan e l'istanza locale di un nodo RPC. Anche con la sua funzionalità unica, MetaMask esegue comunque un client remoto proprio come fanno la maggior parte degli altri wallet basati su browser. Il client remoto consente la funzionalità di archiviazione del wallet, la trasmissione delle transazioni e le iniezioni JavaScript web3.
Griffin Mcshane
Griffin McShane è un trapiantato di New York che attualmente vive a Brooklyn, NY. È laureato al Providence College, dove ha studiato sia informatica che economia, e alla University of Maine School of Law, dove ha conseguito il JD. Oltre al suo lavoro di scrittura per CoinDesk, Griffin ha scritto la newsletter Inside Cripto per Inside.com di Jason Calacanis ed è membro dell'International Association of Privacy Professionals (IAPP). Non detiene una quantità materiale di Criptovaluta.
