Ultimo aggiornamento pagina: September 3, 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

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.

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

Ethereum Grid - Applicazione desktop per scaricare, configurare ed eseguire client e strumenti Ethereum

Buidler - 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

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

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

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

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

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.

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.