Pagina a fost actualizată pe: September 3, 2020
Resurse pentru programatori
Noțiuni de bază
Dacă acum faci cunoștință cu programarea pe Ethereum, ești în locul potrivit. Aceste ghiduri scrise de comunitatea Ethereum îți vor prezenta bazele stivei Ethereum și concepte fundamentale care pot fi ușor diferite față de alte tipuri de programare cu care te-ai obișnuit.
Vrei să începi să programezi chiar acum? Începe să dezvolți aici.
Ai nevoie de o scurtă introducere? Accesează resursele de învățare.
Resurse utile
- Getting up to speed on Ethereum 7 august 2017 - Matt Condon
- Ethereum In Depth, Part 1 11 mai 2018 - Facu Spagnuolo
- Ethereum In Depth, Part 2 24 iulie 2018 - Facu Spagnuolo
- Ethereum Development Walkthrough, Parts 1-5 14 ianuarie 2018 - dev_zl
- Ethereum 101, Parts 1-7 13 februarie 2019 - Wil Barnes
- Full Stack Hello World Voting Ethereum Dapp Tutorial Februarie 2019 - Mahesh Murthy
- Mastering Ethereum - A comprehensive textbook available for free online 1 decembrie 2018 - Andreas Antonopoulos & Gavin Wood
- Ethereum Developer Portal - Everything you need to get started building on Ethereum Actualizat frecvent - ConsenSys
- Deconstructing a Solidity Contract 13 august 2018 - Alejandro Santander și Leo Arias
- Full Stack Dapp Tutorial Series Actualizat frecvent - Joshua Cassidy
Limbaje pentru contracte smart
Orice program care rulează pe mașina virtuală Ethereum (EVM) este denumit „contract smart”. Cele mai populare limbaje pentru scrierea contractelor smart pe Ethereum sunt Solidity și Vyper, deși există și altele în curs de dezvoltare.
Solidity - Cel mai popular limbaj pe Ethereum, inspirat din C++, Python și JavaScript.
Vyper - Limbaj pentru Ethereum care pune accentul pe securitate, bazat pe Python.
Cauți alte opțiuni?
Resurse specifice pentru limbaje
Dezvoltăm o suită de pagini dedicate fiecărui limbaj, pentru a ajuta programatorii să învețe despre Ethereum în limbajul lor de programare preferat.
- Ethereum pentru programatori Java
- Ethereum pentru programatori Python
- Ethereum pentru programatori JavaScript
- Ethereum pentru programatori Go
- Ethereum pentru programatori Rust
- Ethereum pentru programatori .NET
- Mai multe în curând! Nu vezi aici limbajul preferat? Deschide un ticket!
Instrumente de dezvoltare
Ethereum are o colecție amplă și din ce în ce mai bogată de instrumente care îi ajută pe programatori să dezvolte, să testeze și să implementeze aplicații. Mai jos prezentăm cele mai populare instrumente, ca să te ajutăm să începi. Dacă vrei să aprofundezi, accesează această listă curpinzătoare.
Instrumente framework
Truffle-***Un mediu de dezvoltare, framework de testare, flux de programare și alte instrumente.***
Embark-***Un mediu de dezvoltare, framework de testare și alte instrumente integrate cu Ethereum, IPFS și Whisper.
Waffle-***Un framework pentru dezvoltarea și testarea contractelor smart avansate (bazat pe ethers.js).***
Etherlime-***Framework pentru dezvoltarea, implementarea, depanarea și testarea de dapp, bazat pe Ethers.js (Solidity și Vyper).***
Alte instrumente
Ethereum Grid-***Aplicație desktop pentru descărcarea, configurarea și rularea clienților și instrumentelor Ethereum.***
Buidler - Un task runner pentru dezvoltatorii de contracte smart Ethereum.
OpenZeppelin SDK - Set complet de instrumente pentru contracte smart: o suită de instrumente care te ajută să dezvolți, să compilezi, să faci upgrade la, să implementezi și să interacționezi cu contracte smart.
The Graph - Un protocol pentru indexarea datelor Ethereum și IPFS și interogarea lor prin GraphQL.
Tenderly - Platformă pentru monitorizarea ușoară a contractelor smart. Include urmărirea erorilor, alerte, indicatori de performanță și analize detaliate ale contractelor.
Python Tooling - O varietate de biblioteci pentru interacțiuni Ethereum prin Python.
Brownie - ***Mediu de dezvoltare și testare bazat pe frameworkul Python.
web3j - O bibliotecă de integrări Java/ Android/ Kotlin/ Scala pentru Ethereum.
One Click Dapp - Generează un frontend direct din ABI pentru dezvoltări și testări rapide.
Cauți alte opțiuni?
Medii de dezvoltare integrate (IDE)
Ethereum Studio - IDE prin web, ideal pentru programatorii noi care vor să experimenteze cu contracte smart. Ethereum Studio are mai multe șabloane, integrare Metamask, jurnal de tranzacții și o mașină virtuală Ethereum (EVM) în browser, ca să poți începe cât mai repede să dezvolți pe Ethereum.
Visual Studio Code - Mediu de dezvoltare integrat profesionist, pentru mai multe platforme, susținut oficial de Ethereum.
- Visual Studio Code
- Kit de dezvoltare blockchain Azure pentru Ethereum
- Plugin Azure Blockchain Workbench
- Exemple de cod
- GitHub
Remix - Mediu de dezvoltare pe web, cu analize statice integrate și o mașină virtuală blockchain de test.
EthFiddle - Mediu de dezvoltare pe web care îți permite să scrii, să compilezi și să depanezi contracte smart.
Cauți alte opțiuni?
API-uri JavaScript frontend
Web3.js - API JavaScript Ethereum.
Ethers.js - Implementare completă de portofel Ethereum și utilitare, în JavaScript și TypeScript.
light.js - O bibliotecă JS de nivel înalt, optimizată pentru clienți ușori.
Web3-wrapper - Alternativă Typescript pentru Web3.js.
Cauți alte opțiuni?
API backend
Infura - API-ul Ethereum ca serviciu.
**Gateway Cloudflare pentru Ethereum.**
Nodesmith - Acces API JSON-RPC API la mainnetul și testneturile Ethereum.
Chainstack - Noduri Ethereum partajate și dedicate ca serviciu.
Stocare
IPFS - InterPlanetary File System este un sistem descentralizat de stocare și indexare a fișierelor pentru Ethereum.
Swarm - O platformă de stocare distribuită și un serviciu de distribuție a conținutului pentru stiva web 3 Ethereum.
OrbitDB - O bază de date descentralizată, peer-to-peer, dezvoltată pe IPFS.
Instrumente de securitate
Securitatea contractelor smart
Slither - Framework de analiză statică Solidity scris în Python 3.
MythX - API de analiză de securitate pentru contracte smart Ethereum.
Mythril - Instrument de analiză de securitate pentru bytecode EVM.
SmartContract.Codes - Motor de căutare pentru coduri sursă Solidity verificate.
Manticore - O interfață tip linie de comandă care utilizează un instrument de execuție simbolică pe contracte smart și binare.
Securify - Scanner de securitate pentru contracte smart Ethereum.
ERC20 Verifier - Un instrument de verificare folosit pentru a controla conformitatea unui contract cu standardul ERC20A.
Verificare formală
Informații despre verificarea formală
- How formal verification of smart-contacts works Iulie 2018 - Brian Marick
- How Formal Verification Can Ensure Flawless Smart Contracts 29 Ianuarie 2018 - Bernard Mueller
Cauți alte opțiuni?
Instrumente de testare
Solidity-Coverage - Instrument alternativ pentru acoperirea codului Solidity.
hevm - Implementare a EVM-ului realizată special pentru testarea unitară și depanarea contractelor smart.
Whiteblock Genesis - O platformă de testare integrală pentru dezvoltare și testare blockchain.
Cauți alte opțiuni?
Block Explorers
Block explorers sunt servicii care îți permit să explorezi blockchainul Ethereum (și testneturile sale), pentru a găsi informații despre anumite tranzacții, blocuri, contracte sau alte activități on-chain.
Testneturi și fauceturi
Comunitatea Ethereum întreține mai multe testneturi. Acestea sunt utilizate de programatori pentru testarea aplicațiilor în diferite condiții și scenarii, înainte de implementarea pe mainnetul Ethereum.
Ropsten - Blockchain de tip Proof of Work (POW), care permite operațiile de mining a Etherilor de test.
Rinkeby - Blockchain de tip Proof of Authority (POA), întreținut de echipa de dezvoltare Geth.
Goerli - Blockchain inter-client de tip Proof of Authority (POA), dezvoltat și întreținut de comunitatea Goerli.
Clienți și rularea propriul tău nod
Rețeaua Ethereum este compusă din numeroase noduri care rulează clienți software compatibili. Majoritatea acestor noduri rulează Geth sau Parity, ambele putând fi configurate în diverse moduri, în funcție de cerințe.
Clienți
Geth - Clienți Ethereum scriși în Go.
Parity - Client Ethereum scris în Rust.
Pantheon - Client Ethereum scris în Java.
Nethermind - Client Ethereum scris în C# .NET Core.
Rularea propriului tău nod
Ethnode - Rulează un nod Ethereum (Geth sau Parity) pentru dezvoltare locală.
Resurse de nod Ethereum
- Node Configuration Cheat Sheet 5 ianuarie 2019 - Afri Schoeden
Cauți alte opțiuni?
Bune practici, modele și anti-modele
Contracte smart
DappSys - Componente sigure, simple și flexibile pentru dezvoltarea contractelor smart.
Contracte OpenZeppelin - Bibliotecă pentru dezvoltare contractelor smart securizate.
aragonOS - Modele pentru controlul versiunilor și a permisiunilor.
Registrul vulnerabilităților din contractele smart
Securitate
Ghid de bune practici în securitatea contractelor smart
- consensys.github.io/smart-contract-best-practices/
- GitHub
- Colecție agregată de recomandări și bune practici de securitate
Standard de verificare a securității contractelor smart (SCSVS)
Cauți alte opțiuni?
Suport și cursuri pentru programatori
Educație generală
Ethereum Stackexchange
ConsenSys Academy - ***Un curs complet de programare Ethereum, pe care îl poți parcurge în ritmul tău, disponibil tot anul.***
Chatroom Solidity Gitter
Toate chatroomurile Ethereum Gitter
Chainshot - Tutoriale online pentru programarea de dapp.
Blockgeeks - Cursuri online despre tehnologia blockchain.
DappUniversity - Învață să dezvolți aplicații descentralizate pe blockchainul Ethereum.
B9lab Academy - Cel mai vechi curs profesionist pentru dezvoltatori de aplicații dapp pe Ethereum și cursuri avansate pentru auditori și QA. Inclusiv mentorat și evaluarea codului.
Învățare prin jocuri
Cyptozombies - Învață să programezi jocuri pe Ethereum.
Ethernaut - Joc de război bazat pe Solidity, în care fiecare nivel este un contract smart ce trebuie spart.
Capture the Ether - Securitatea contractelor smart Ethereum.
Design UI/UX
- Challenge of UX in Ethereum 25 iunie 2018 - Anna Rose
- Designing for blockchain: what’s different and what’s at stake 22 martie 2018 - Sarah Baker Mills
Rimble UI - Componente adaptabile și standarde de design pentru aplicații descentralizate.
Standarde
Comunitatea Ethereum a adoptat numeroase standarde utile pentru programatori. În general acestea sunt introduse ca Propuneri de îmbunătățire Ethereum (EIP), și sunt discutate de membrii comunității într-un proces standard.
- Lista de EIP
- EIP github repo
- Forum de discuții EIP
- Ethereum Governance Overview 31 martie 2019 - Boris Mann
- Lista de redare a tuturor sedințelor Ethereum Core Dev (Playlist YouTube)
Anumite EIP se referă la standardele la nivel de aplicație (de exemplu, formatul standard al unui contract smart) și sunt introduse ca Cereri de opinie Ethereum (ERC). Multe ERC sunt standarde critice, cu utilizare largă în întregul ecosistem Ethereum.