Ultimo aggiornamento pagina: December 4, 2020
Risorse per sviluppatori
Per iniziare
Non hai mai sviluppato con Ethereum? Allora sei nel posto giusto. Queste guide scritte dalla community Ethereum (per ora, in inglese) ti presenteranno le basi dell'architettura Ethereum e i concetti chiave che potrebbero essere diversi da quelli che già conosci per lo sviluppo.
Vuoi iniziare subito a programmare? Inizia da qui.
Hai prima bisogno di nozioni di base? Consulta le nostre risorse per la formazione.
Risorse utili
- Getting up to speed on Ethereum Aug 7, 2017 - Matt Condon
- Ethereum In Depth, Part 1 May 11, 2018 - Facu Spagnuolo
- Ethereum In Depth, Part 2 July 24, 2018 - Facu Spagnuolo
- Ethereum Development Walkthrough, Parts 1-5 Jan 14, 2018 - dev_zl
- Ethereum 101, Parts 1-7 Feb 13, 2019 - Wil Barnes
- Full Stack Hello World Voting Ethereum Dapp Tutorial Jan 18, 2017 - Mahesh Murthy
- Mastering Ethereum - A comprehensive textbook available for free online Dec 1, 2018 - Andreas Antonopoulos & Gavin Wood
- Ethereum Developer Portal - Everything you need to get started building on Ethereum Updated often - ConsenSys
- Deconstructing a Solidity Contract Aug 13, 2018 - Alejandro Santander & Leo Arias
- Full Stack Dapp Tutorial Series Updated Often - Joshua Cassidy
Linguaggi per gli Smart Contract
Ogni programma eseguito sulla macchina virtuale di Ethereum (EVM) viene detto comunemente "Smart Contract". I linguaggi più diffusi per scrivere Smart Contract su Ethereum sono Solidity e Vyper, ma ne esistono anche altri in fase di sviluppo.
Solidity - Il linguaggio più diffuso su Ethereum, ispirato a C++, Python e Javascript
Vyper - Linguaggio incentrato sulla sicurezza per Ethereum, basato su Python
Cerchi altre opzioni?
Risorse specifiche per linguaggio
Stiamo realizzando una serie di pagine specifiche per ogni linguaggio, in modo che gli sviluppatori possano imparare a conoscere Ethereum nel linguaggio di programmazione che preferiscono.
- Ethereum per sviluppatori Java
- Ethereum per sviluppatori Python
- Ethereum per sviluppatori JavaScript
- Ethereum per sviluppatori Go
- Ethereum per sviluppatori Rust
- Ethereum per sviluppatori .NET
- Altre in arrivo! Non trovi il tuo linguaggio di programmazione? Apri una segnalazione.
Strumenti per sviluppatori
Ethereum offre un numero di strumenti elevato e sempre in aumento, per aiutare gli sviluppatori a creare, testare e distribuire le proprie applicazioni. Di seguito trovi gli strumenti più diffusi per muovere i primi passi. Se vuoi approfondire, dai un'occhiata a questo elenco completo.
Framework
Truffle - Ambiente di sviluppo, framework di test, pipeline di sviluppo e altri strumenti
Embark - Ambiente di sviluppo, framework di test e altri strumenti integrati con Ethereum, IPFS e Whisper
Waffle - Framework per lo sviluppo e il test avanzato di Smart Contract (basati su ethers.js)
Etherlime - Framework basato su ethers.js per lo sviluppo (Solidity e Vyper), la distribuzione, il debug, il test di dapp e altro
Altri strumenti
Hardhat - Ambiente di esecuzione di task per sviluppatori di Smart Ccontract Ethereum
OpenZeppelin SDK - Strumenti per Smart Contract all'avanguardia: una suite di strumenti per aiutarti a sviluppare, compilare, aggiornare, distribuire Smart Contract e interagire con essi
The Graph - Protocollo per indicizzare i dati Ethereum e IPFS ed eseguire query con GraphQL
Tenderly - Piattaforma per monitorare gli Smart Contract con rilevamento degli errori, avvisi, metriche delle prestazioni e dettagliate analisi dei contratti
Strumenti Python - Diverse librerie per interagire con Ethereum tramite Python
Brownie - Ambiente di sviluppo basato su Python e framework per il test
web3j - Libreria di integrazione Java/Android/Kotlin/Scala per Ethereum
OneClick Dapp - Genera un frontend direttamente da ABI per sviluppo e test rapidi
Cerchi altre opzioni?
Ambienti di sviluppo integrati (IDE)
Ethereum Studio - IDE basato su web, ideale per nuovi sviluppatori che desiderano sperimentare con gli Smart Contract. Ethereum Studio dispone di diversi modelli, integrazione con MetaMask, log delle transazioni e una macchina virtuale integrata nel browser Ethereum (EVM) per aiutarti a sviluppare su Ethereum il più velocemente possibile.
Visual Studio Code - IDE professionale multi piattaforma con supporto ufficiale per Ethereum
- Visual Studio Code
- Kit di sviluppo Blockchain Azure per Ethereum
- Plugin Azure Blockchain Workbench
- Esempi di codice
- GitHub
Remix - IDE basato su web che integra analisi statica e una macchina virtuale blockchain di test
EthFiddle - IDE basato su web che permette di scrivere, compilare Smart Contract ed eseguirne il debug
Cerchi altre opzioni?
API JavaScript frontend
Web3.js - API JavaScript Ethereum
Ethers.js - Implementazione di un portafoglio Ethereum completo e utility in JavaScript e TypeScript
light.js - Libreria Javascript reattiva di alto livello, ottimizzata per i light client
Web3-wrapper - Alternativa Typescript a Web3.js.
Cerchi altre opzioni?
API backend
Infura - L'API Ethereum come servizio
Gateway Ethereum Cloudflare
Nodesmith - Accesso API JSON-RPC a rete principale e reti di test Ethereum
Catainstack - Nodi Ethereum condivisi e dedicati come servizio
Archiviazione
IPFS - InterPlanetary File System è uno spazio sistema di archiviazione e sistema di riferimento per file decentralizzato per Ethereum
Swarm - Piattaforma di archiviazione distribuita e servizio di distribuzione di contenuti per lo stack web3 di Ethereum
OrbitDB - Ddatabase decentralizzato peer to peer basato su IPF.
Strumenti di sicurezza
Sicurezza degli Smart Contract
Slither - Framework di analisi statica per Solidity scritto in Python 3
MythX - API per l'analisi della sicurezza degli Smart Contract Ethereum
MythX - API per l'analisi della sicurezza degli Smart Contract Ethereum
SmartContract.Codes - Motore di ricerca per codice sorgente Solidity verificato
Manticore - Interfaccia da riga di comando che usa uno strumento di esecuzione simbolica su Smart Contract e file binari
Securify - Scanner di sicurezza per Smart Contract Ethereum
ERC20 Verifier - Strumento di verifica utilizzato per controllare se un contratto rispetta lo standard ERC20
Verifica formale
Informazioni sulla verifica formale
- How formal verification of smart-contacts works 20 luglio 2018 - Brian Marick
- How Formal Verification Can Ensure Flawless Smart Contracts 29 gennaio 2018 - Bernard Mueller
Cerchi altre opzioni?
Strumenti di test
Solidity-Coverage - Strumento alternativo per codice Solidity
hevm - Implementazione di EVM realizzata appositamente per unit test e debug di Smart Contract.
Whiteblock Genesis - Sandbox di sviluppo end-to-end e piattaforma di test per la blockchain
Cerchi altre opzioni?
Block Explorer
I Block Explorer sono servizi che permettono di esplorare la blockchain Ethereum (e le reti di test) per trovare informazioni su transazioni specifiche, blocchi, contratti e altre attività.
Reti di test e faucet
La community Ethereum gestisce più reti di test. Sono utilizzate dagli sviluppatori per testare le applicazioni in diverse condizioni prima di distribuirle sulla rete Ethereum principale.
Ropsten - Blockchain Proof of Work, è possibile eseguire il mining di ether di test
Rinkeby - Blockchain Proof of Authority gestita dal team di sviluppo di Geth
Goerli - Blockchain Proof of Authority, creata e gestita dalla community Goerli
Client e uso di un nodo proprio
La rete Ethereum è composta da molti nodi che eseguono software client compatibile. La maggior parte di questi nodi usa Geth o Parity, e in entrambi i casi è possibile modificare le configurazioni in base alle esigenze.
Client
Geth - Client Ethereum scritto in Go
Parity - Client Ethereum scritto in Rust
Pantheon - Client Ethereum scritto in Java
Nethermind - Client Ethereum scritto in C# .NET Core
Esecuzione di un nodo proprio
Ethnode - Avvio di un nodo Ethereum (Geth o Parity) per lo sviluppo locale
Risorse per i nodi Ethereum
- Node Configuration Cheat Sheet Jan 5, 2019 - Afri Schoeden
Cerchi altre opzioni?
Best practice, pattern e anti-pattern
Smart Contract
DappSys - Blocchi di codice sicuri, semplici e flessibili per Smart Contract
OpenZeppelin Contracts - Libreria per lo sviluppo sicuro di Smart Contract
aragonOS - Pattern per aggiornabilità e controllo dei permessi
Registro delle vulnerabilità degli Smart Contract
Sicurezza
Guida alle best practice per la sicurezza degli Smart Contract
- consensys.github.io/smart-contract-best-practices/
- GitHub
- Raccolta di raccomandazioni di sicurezza e best practice
Standard di verifica della sicurezza degli Smart Contract (SCSVS)
Cerchi altre opzioni?
Supporto per sviluppatori e formazione
Apprendimento generico
Ethereum Stackexchange
ConsenSys Academy - Corso per lo sviluppo in Ethereum auto-gestito e aperto in ogni momento
Chat Solidity Gitter
Tutte le chat Gitter di Ethereum
Chainshot - Tutorial di programmazione per dapp basate su web
Blockgeeks - corsi online sulla tecnologia blockchain
DappUniversity - Imparare a programmare applicazioni decentralizzate sulla blockchain Ethereum
B9lab Academy - Home page del primo corso di sviluppo professionale di dapp Ethereum e formazione per auditor e QA con tutoring e revisione del codice
Formazione tramite gioco
Cryptozombies - Impara a programmare giochi su Ethereum
Ethernaut - Gioco di guerra basato su Solidity dove ogni livello è un contratto da violare
Capture the Ether - Il gioco della sicurezza degli Smart Contract Ethereum
Progettazione di UI/UX
- Challenge of UX in Ethereum June 25, 2018 - Anna Rose
- Designing for blockchain: what’s different and what’s at stake March 22, 2018 - Sarah Baker Mills
Rimble UI - Componenti adattabili e standard di progettazione per applicazioni decentralizzate
Standard
La community Ethereum ha adottato molti standard utili agli sviluppatori. In genere vengono introdotti come proposte di miglioramento di Ethereum (EIP), che vengono discusse dai membri della community attraverso un processo standard.
- Lista delle EIP
- Repository Github delle EIP
- Forum di discussione per le EIP
- Ethereum Governance Overview 31 marzo 2019 - Boris Mann
- Playlist di tutte le riunioni degli sviluppatori del protocollo di base di Ethereum (Playlist YouTube)
Alcune EIP riguardano standard a livello di applicazione (ad esempio un formato standard di Smart Contract), che vengono introdotti come Richieste di commento Ethereum (ERC). Molte ERC sono standard critici ampiamente utilizzati nell'ecosistema Ethereum.