Ultimo aggiornamento della pagina: mar 06, 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.

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.