Aiuta ad aggiornare questa pagina

🌏

C'è una nuova versione di questa pagina, ma al momento è solo in inglese. Aiutaci a tradurre l'ultima versione.

Nessun bug qui!🐛

Questa pagina non è stata tradotta. Per il momento, è stata intenzionalmente lasciata in inglese.

Introduzione allo stack di Ethereum

Ultima modifica: , Invalid DateTime
Modifica la pagina

Come ogni stack di software, lo "stack di Ethereum" completo varia da progetto a progetto in base ai propri obiettivi.

Sono comunque disponibili tecnologie base di Ethereum che aiutano a fornire un modello mentale di come le applicazioni software interagiscono con la blockchain Ethereum. Comprendere i livelli dello stack aiuterà anche a comprendere i molti modi in cui Ethereum può essere integrato all'interno di progetti software.

Livello 1: macchina virtuale Ethereum

La macchina virtuale Ethereum (EVM) è l'ambiente di runtime per gli Smart Contract su Ethereum. Tutti gli Smart Contract e le modifiche di stato sulla blockchian Ethereum sono eseguiti per mezzo di transazioni. La EVM gestisce l'elaborazione di tutte le transazioni sulla rete Ethereum.

Come avviene con ogni macchina virtuale, la EVM crea un livello di astrazione fra il codice in esecuzione e la macchina che esegue tale codice (il nodo Ethereum). Al momento la EVM è in esecuzione su migliaia di nodi distribuiti in tutto il mondo.

La EVM utilizza un insieme di istruzioni opcode per eseguire attività specifiche. Questi 140 opcode univoci permettono alla EVM di essere Turing completa, cioè di essere in grado di elaborare praticamente tutto, se sono presenti risorse sufficienti.

A uno sviluppatore di dapp non serve conoscere a fondo la EVM, gli basta sapere che esiste e fa funzionare in modo affidabile tutte le applicazioni su Ethereum senza interruzioni.

Livello 2: Smart Contract

Gli Smart Contract sono i programmi che vengono eseguiti sulla blockchain Ethereum.

Sono scritti in un linguaggio di programmazione specifico, che viene compilato in bytecode EVM (istruzioni macchina di basso livello dette opcode).

Gli Smart Contract fungono non solo da librerie open source ma sono essenzialmente servizi open API che vengono eseguiti 24 ore su 24 e 7 giorni su 7, e non possono essere disattivati. Gli smart contract forniscono funzioni pubbliche con cui gli utenti e le applicazioni (dApp) possono interagire, senza necessitare di permessi. Qualsiasi applicazione può essere integrata con smart contract distribuiti per comporre funzionalità, come aggiungere i feed di dati o supportare gli scambi di token. Chiunque può distribuire nuovi Smart Contract su Ethereum per aggiungere funzionalità personalizzate che soddisfino le esigenze della propria applicazione.

Uno sviluppatore di dapp deve scrivere Smart Contract solo se intende aggiungere funzionalità personalizzate alla blockchain Ethereum. È infatti possibile soddisfare la maggior parte delle esigenze di un progetto (se non tutte) semplicemente integrando gli Smart Contract esistenti, ad esempio per supportare pagamenti con stablecoin o abilitare lo scambio decentralizzato di token.

Livello 3: nodi Ethereum

Affinché un'applicazione interagisca con la blockchain di Ethereum, deve connettersi a un nodo di Ethereum. Connettersi a un nodo permette di leggere i dati della blockchain e/o inviare transazioni alla rete.

I nodi Ethereum sono computer che eseguono software, ovvero un client Ethereum. Un client è una implementazione di Ethereum che verifica tutte le transazioni presenti in un blocco, facendo in modo che la rete rimanga sicura e i dati siano accurati. I nodi Ethereum sono essi stessi la blockchain Ethereum. Memorizzano in maniera collettiva lo stato della blockchain Ethereum e raggiungono il consenso sulle transazioni per modificare lo stato della blockchain.

Connettendo la propria applicazione a un nodo di Ethereum (tramite l'API di JSON-RPC), l'applicazione può leggere i dati dalla blockchain (come i saldi dell'account dell'utente) nonché trasmettere le nuove transazioni alla rete (ad es. trasferire ETH tra gli account degli utenti o eseguire le funzioni degli smart contract).

Livello 4: API client Ethereum

Molte librerie (create e gestite dalla community open source di Ethereum) consentono alle applicazioni per gli utenti finali di connettersi e comunicare con la blockchain Ethereum.

Se un'applicazione per gli utenti è una Wweb app, è possibile decidere di installare tramite npm install un'API JavaScript direttamente sul frontend. In alternativa, è possibile implementare questa funzionalità sul lato server, usando un'API Python o Java.

Pur non essendo necessariamente parte dello stack, queste API eliminano gran parte della complessità necessaria per interagire direttamente con un nodo Ethereum. Assicurano inoltre funzioni di utilità (ad esempio la conversione da ETH ain Gwei) per fare in modo che gli sviluppatori dedichino meno tempo alle complessità dei client Ethereum e più tempo alle funzionalità specifiche dell'applicazione.

Livello 5: applicazioni per gli utenti finali

Al livello più alto dello stack ci sono le applicazioni rivolte agli utenti. Si tratta delle applicazioni standard utilizzate e create normalmente oggi, principalmente Web app ed applicazioni mobili.

Il modo di progettare queste interfacce utente rimane essenzialmente invariato. Spesso gli utenti non hanno bisogno di sapere che l'applicazione che stanno usando è stata creata usando una blockchain.

Vuoi scegliere il tuo stack ora?

Consulta la nostra guida per configurare un ambiente di sviluppo locale per un'applicazione Ethereum.

Letture consigliate

Conosci una risorsa pubblica che ti è stata utile? Modifica questa pagina e aggiungila!

Questo articolo è stato utile?