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.

Hai prima bisogno di nozioni di base? Dai un'occhiata a ethereum.org/it/learn.

Linguaggi per gli Smart Contract

Ogni programma eseguito sulla Macchina Virtuale Ethereum (EVM) viene definito 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?

Strumenti di sviluppo

Ethereum ha un numero elevato e sempre in aumento di strumenti per aiutare gli sviluppatori a creare, testare e distribuire le proprie applicazioni. Di seguito trovi gli strumenti più diffusi per iniziare. Se vuoi approfondire, guarda questo elenco esaustivo.

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 (basato 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

Buidler Task runner per sviluppatori di Smart Contract di Ethereum

ZeppelinOS Framework di sviluppo per creare Smart Contract aggiornabili e gestire applicazioni basate su Smart Contract in modo sicuro

Cerchi altre opzioni?

Ambienti di sviluppo integrati (IDE)

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

Superblocks IDE basato su web con macchina virtuale blockchain integrata, integrazione con MetaMask, logger per transazioni e altre funzionalità

EthFiddle IDE basato su web che permette di scrivere, compilare e rilasciare Smart Contract

Cerchi altre opzioni?

API Javascript per il frontend

Web3.js API Javascript per 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 client più leggeri

Web3-wrapper Alternativa Typescript a Web3.js

Cerchi altre opzioni?

API per il backend

Infura API as a service per Ethereum

Strumenti per la sicurezza

Slither Framework per l'analisi statica di codice Solidity scritto in Python 3

MythX API per l'analisi della sicurezza di Smart Contract Ethereum

Manticore Interfaccia a riga di comando che usa uno strumento di esecuzione simbolica su Smart Contract e file binari

Securify Scanner di sicurezza per Smart Contract Ethereum

Ulteriori informazioni sulla verifica formale

Cerchi altre opzioni?

Strumenti di test

Solidity-Coverage Strumento di code coverage Solidity alternativo

hevm Implementazione della EVM creata specificatamente per unit test e debug di Smart Contract

Whiteblock Genesis Sandbox di sviluppo e piattaforma di test completa per 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 (POW), è possibile eseguire il mining degli ether di test

Rinkeby Blockchain Proof of Authority (PoA), gestita dal team di sviluppo di Geth

Goerli Blockchain Proof of Authority (PoA) multi client, creata e gestita dalla community Goerli

Client e uso di un nodo proprio

La rete Ethereum è composta da tanti 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.

Geth Client Ethereum scritto in Go

Parity Client Ethereum scritto in Rust

Ethnode Avvio di un nodo Ethereum (Geth o Parity) per lo sviluppo locale

Risorse per i nodi Ethereum

Cerchi altre opzioni?

Buone pratiche, pattern e anti-pattern

DappSys Blocchi di codice per Smart Contract sicuri, semplici e flessibili

OpenZeppelin Libreria per sviluppo di Smart Contract sicuri

aragonOS Pattern per aggiornabilità e controllo dei permessi

Registro delle vulnerabilità degli Smart Contract

Guida alle migliori pratiche per la sicurezza degli Smart Contract

Cerchi altre opzioni?

Supporto e formazione per gli sviluppatori

Ethereum Stackexchange

Canale Gitter per Solidity

Tutti i canali Gitter per Ethereum

Cryptozombies Come programmare giochi su Ethereum

Chainshot Tutorial basati sul web per la programmazione di dapp

Blockgeeks Corsi online sulla tecnologia blockchain

DappUniversity Come creare applicazioni decentralizzate sulla blockchain Ethereum

Ethernaut Gioco di guerra basato su Solidity dove ogni livello è uno Smart Contract da hackerare

UI/UX

Standard

La community Ethereum ha adottato molti standard utili agli sviluppatori che in genere vengono presentati come proposte di miglioramento per Ethereum (EIP, Ethereum Improvement Proposals) e vengono discussi dai membri della community attraverso un processo standard.

Certe EIP si riferiscono a standard a livello di applicazione (ad esempio il formato standard degli Smart Contract), che vengono presentati come Richieste di commenti per Ethereum (ERC, Ethereum Requests for Comment). Molte ERC sono standard critici ampiamente usati nell'ecosistema di Ethereum.