Classifiche
Dieci strumenti di sviluppo blockchain: la lista del 2023

Gli strumenti di sviluppo possono far risparmiare tempo nella creazione di applicazioni blockchain. Questa lista del 2023 comprende dieci linguaggi, programmi e categorie di infrastruttura. Lo stato di manutenzione varia: alcuni progetti erano già stati interrotti o erano in fase di dismissione.
1. Solidity
Solidity è un linguaggio molto utilizzato per gli smart contract su Ethereum e altre reti compatibili con EVM. È nato nell’ecosistema Ethereum, ma non è l’unico linguaggio per programmare blockchain.
La sua popolarità beneficia di un vasto ecosistema di librerie e strumenti. Solidity è adatto a molte applicazioni compatibili con Ethereum, ma non ha inventato il concetto di smart contract.

Fonte – Soliditylang.org
Solidity dispone di ampia documentazione, esempi e librerie. Il codice sorgente viene compilato in codice eseguibile dalla Ethereum Virtual Machine (EVM). Il collegamento alla documentazione della versione 0.8.21 risale al periodo originale dell’articolo.
2. MetaMask
Per interagire con le applicazioni decentralizzate, uno sviluppatore utilizza spesso un portafoglio. MetaMask offre, tra l’altro, un’estensione per browser e un’app mobile per gestire account, collegarsi alle applicazioni e firmare transazioni.
Può collegarsi alle reti e alle testnet supportate. Cambiare rete non trasferisce automaticamente gli asset da una blockchain all’altra: servono funzioni o servizi specifici. Il portafoglio non è una rete blockchain e non garantisce sicurezza o liquidità all’applicazione.
3. Truffle
Truffle era un noto ambiente di sviluppo per gli smart contract Ethereum, non soltanto per i token ERC-20. Offriva compilazione, distribuzione dei contratti, collegamento di librerie e test automatizzati con strumenti come Mocha e Chai.
Il 21 settembre 2023 Consensys annunciò la dismissione di Truffle e Ganache e l’archiviazione pubblica dei repository dal 20 dicembre 2023. Gli utenti venivano indirizzati, tra l’altro, a Hardhat e Foundry. Truffle è quindi uno strumento storico in questa lista, non un punto di partenza indispensabile e attivamente mantenuto per nuovi progetti.
4. Reti di prova blockchain
Le testnet aiutano a provare contratti e applicazioni prima della distribuzione sulla rete principale. Possono rivelare problemi di funzionamento e integrazione, ma non dimostrano automaticamente sicurezza, stabilità o scalabilità.
Le testnet pubbliche sono diverse dalle reti locali di sviluppo. Ganache era una blockchain locale di sviluppo dell’ecosistema Truffle, non una testnet pubblica di Ethereum. La fine della sua manutenzione è descritta sopra.
Un ambiente locale offre controllo e sperimentazione rapida. Una testnet pubblica consente di provare le interazioni in un ambiente condiviso, ma carico e condizioni economiche possono differire dalla rete principale. I token di prova permettono esperimenti senza utilizzare asset reali della rete principale; una testnet non riduce di per sé le commissioni gas dell’applicazione in produzione.
5. Blockchain come servizio (BaaS)
Nel modello BaaS, il fornitore gestisce parti dell’infrastruttura blockchain, per esempio nodi o reti. Questo può semplificare avvio e gestione, ma costi e funzionalità dipendono dal servizio e dalle esigenze del cliente.
Il cliente rimane responsabile di aspetti come logica applicativa, autorizzazioni, configurazione e test. Un servizio cloud gestito non elimina automaticamente tutti i compiti di manutenzione e sicurezza.
L’integrazione con sistemi esistenti dipende dalle interfacce disponibili e dai requisiti tecnici. Amazon (AMZN ) offre AWS Managed Blockchain; AWS Amplify è invece un insieme di strumenti per applicazioni web e mobili, integrabile con altri servizi. Microsoft (MSFT ) aveva Azure Blockchain Service, ma quel particolare servizio è stato ritirato il 10 settembre 2021. Ciò non significa che siano cessati tutti i servizi Azure. Questi nomi vanno distinti quando si valutano gli esempi storici dell’articolo.
6. Geth
Geth è il client di esecuzione Ethereum implementato in Go. Gestisce transazioni, esecuzione EVM, stato e interfacce di programmazione. Gli sviluppatori possono utilizzarlo per distribuire contratti e leggere informazioni dalla rete.
Dal passaggio di Ethereum alla proof of stake nel 2022, un nodo completo richiede anche un client di consenso. Geth non crea automaticamente ponti tra reti ERC-20: ERC-20 è uno standard per token, non una rete distinta. Sulla rete principale Ethereum non si estraggono più blocchi mediante mining, e i contratti non devono essere scritti in Go.
7. Mist
Mist era un browser autonomo per applicazioni decentralizzate con funzionalità di portafoglio e collegamento a un nodo Ethereum. Diversamente da un’estensione del browser, era storicamente disponibile per Linux, macOS e Windows. Eseguire un nodo completo richiedeva molto spazio di archiviazione.
Il 27 marzo 2019 gli sviluppatori annunciarono che Mist ed Ethereum Wallet non sarebbero più stati supportati. Il repository è stato archiviato. Mist non era quindi una raccomandazione attuale nemmeno nel 2023; il precedente status ufficiale non prova la sicurezza. È citato qui per il suo ruolo nella storia dell’ecosistema.
8. Remix IDE
Remix IDE è un ambiente di sviluppo, anche per Solidity, disponibile nel browser e come applicazione desktop. Supporta scrittura, compilazione, analisi, test e distribuzione degli smart contract. È possibile iniziare con una simulazione locale e poi utilizzare una testnet o la rete principale tramite una connessione compatibile. Lo strumento non sostituisce una valutazione completa della sicurezza.
9. Ethlint
Ethlint, precedentemente Solium, verifica regole di stile e alcuni problemi di sicurezza nel codice Solidity e può correggere automaticamente parte dei problemi. Secondo la documentazione, il vecchio pacchetto solium non riceve aggiornamenti dopo dicembre 2019 e gli utenti vengono indirizzati a ethlint.
Un linter non trova tutti gli errori e non sostituisce test o audit. Una violazione di stile non causa necessariamente un arresto dell’applicazione: formattazione ed errori funzionali sono distinti. Va verificata anche la compatibilità con la versione di Solidity utilizzata.
10. Solc
Solc è il compilatore di Solidity. Dal codice sorgente produce, tra l’altro, bytecode e una descrizione ABI, usata dalle applicazioni per comunicare con il contratto.
Il compilatore nativo è implementato in C++, mentre solc-js rende lo stesso compilatore accessibile da JavaScript. Questo non significa che solc compili contratti scritti in C++ o JavaScript: il linguaggio di ingresso è Solidity. Le impostazioni devono essere adatte al contratto e alla rete di destinazione.
Scegliere gli strumenti di sviluppo blockchain
Le dieci voci coprono diverse fasi dello sviluppo. Prima della scelta, valutare funzionalità, manutenzione e compatibilità. Gli strumenti possono facilitare il lavoro, ma la correttezza dei contratti richiede anche ricerca, test e verifiche di sicurezza.












