Puslapis paskutinį kartą atnaujintas: September 3, 2020
Programuotojo Žinynas
Įvadas
Jei norite pradėti programuoti su Ethereum, esate tinkamoje vietoje. Šie vadovai, parašyti Ethereum bendruomenės, supažindins su Ethereum pagrindais ir kertiniais programų kūrimo principais, kurie gali skirtis nuo kitų jums jau žinomų.
Norėtumėte pradėti nuo ko nors paprastesnio? Apsilankykite ethereum.org/learn.
- Getting up to speed on Ethereum 2017 m. rugpjūčio 7 d. - Matt Condon
- Ethereum In Depth, Part 1 2018 m. gegužės 11 d. - Facu Spagnuolo
- Ethereum In Depth, Part 2 2018 m. liepos 24 d. - Facu Spagnuolo
- Ethereum Development Walkthrough, Parts 1-5 2018 m. sausio 14 d. - dev_zl
- Ethereum 101, Parts 1-7 2019 m. vasario 13 d. - Wil Barnes
- Full Stack Hello World Voting Ethereum Dapp Tutorial 2019 m. vasaris - Mahesh Murthy
- Mastering Ethereum - A comprehensive textbook available for free online 2018 m. gruodžio 1 d. - Andreas Antonopoulos ir Gavin Wood
- Ethereum Developer Portal - Everything you need to get started building on Ethereum Dažnai atnaujinama - ConsenSys
- Deconstructing a Solidity Contract 2018 m. rugpjūčio 13 d. - Alejandro Santander ir Leo Arias
- Full Stack Dapp Tutorial Series Dažnai atnaujinama - Joshua Cassidy
Išmaniųjų kontraktų kalbos
Bet kuri programa, kuri veikia Ethereum virtualiojoje mašinoje (EVM), dažnai vadinama „išmaniąja sutartimi“. Populiariausios išmaniųjų sutarčių rašymo kalbos Ethereum platformoje yra Solidity ir Vyper, tačiau kuriamos ir kitos.
Solidity – populiariausia Ethereum kalba, įkvėpta C++, Python ir Javascript
Vyper – į saugumą orientuota Ethereum kalba, paremta Python.
Ieškote alternatyvų?
Kūrėjo įrankiai
Ethereum rasite vis daugiau įrankių, kuriuos naudodami galėsite kurti, testuoti ir diegti savo programas. Žemiau pateikti populiariausi įrankiai, su kuriais galėti pradėti darbą. Jei ieškote išsamesnės informacijos, žvilgelėkite į šį išsamų sąrašą.
Truffle – kūrimo aplinka, testavimo ir segmentacijos sistemos ir kiti įrankiai.
Embark – kūrimo aplinka, testavimo sistema ir kiti įrankiai, integruoti Ethereum, IPFS ir Whisper.
Waffle – pažangių išmaniųjų sutarčių kūrimo ir testavimo (pagal ethers.js) sistema.
Etherlime – dApp kūrimo (Solidity ir Vyper), diegimo, riktų šalinimo, testavimo ir kt. sistema, paremta ethers.js.
Buidler – užduočių valdyklė Ethereum išmaniųjų sutarčių kūrėjams
OpenZeppelin SDK – didžiausias išmaniųjų sutarčių programuotojo paketas: įrankių komplektas, skirtas kurti, kaupti, gerinti, diegti ir sąveikauti su išmaniosiomis sutartimis.
Tenderly – platforma, kurioje galima lengvai stebėti savo išmaniąsias sutartis. Apima klaidų sekimą, įspėjimus, našumo parametrus ir išsamią sutarčių analitiką.
Python Tooling – įvairios bibliotekos Ethereum sąveikai naudojant Python
Brownie – Python paremta kūrimo aplinka ir testavimo sistema.
web3j Java/Android/Kotlin/Scala integracijos biblioteka, skirta Ethereum
Ieškote alternatyvų?
Integruotos kūrimo aplinkos (IDE)
Visual Studio Code – profesionali integruota kūrimo aplinka, kurią galima naudoti tarp skirtingų platformų, su oficialiu Ethereum palaikymu.
Remix – internetinė integruota kūrimo aplinka su integruota statine analize ir bandomoji blokų grandinės virtuali mašina.
Superblocks – internetinė integruota kūrimo aplinka su integruota naršyklės blokų grandinės virtualia mašina, MetaMask integracija, sandorių registratoriumi ir kitomis funkcijomis.
EthFiddle – internetinė integruota kūrimo aplinka, kurioje galima rašyti ir kaupti išmaniąsias sutartis ir iš jų šalinti riktus .
Ieškote alternatyvų?
Frontend JavaScript programų sąsajos (API)
Web3.js – Ethereum JavaScript programų sąsaja
Ethers.js – pilnas Ethereum piniginės įdiegimas ir parankinės priemonės, skirtos JavaScript ir TypeScript
light.js – aukšto lygio reaktyvi JavaScript biblioteka, pritaikyta lengviems klientams.
Web3-wrapper – TypeScript alternatyva Web3.js
Ieškote alternatyvų?
Backend programų sąsajos
Infura – Ethereum programų sąsaja, teikiama kaip paslauga
Cloudflare Ethereum tinklų sietuvas (gateway)
Nodesmith – JSON-RPC programų sąsajos prieiga prie Ethereum pagrindinio tinklo ir bandomųjų tinklų
Saugykla
IPFS – tarpplanetinė failų sistema - tai decentralizuota Ethereum saugykla ir failų nuorodų sistema.
Swarm – paskirstytos saugyklos platforma ir turinio išskirstymo paslauga, skirta Ethereum web3.
OrbitDB – decentralizuota tarpusavio (P2P) duomenų bazė, paremta IPFS.
Saugumo įrankiai
Slither – Solidity statinės analizės struktūra, parašyta Python 3 kalba
MythX – saugumo analizės programų sąsaja Ethereum išmaniosioms sutartims
Mythril – saugumo analizės įrankis EVM baitkodui
Manticore – tekstinė sąsaja, naudojanti simbolinį vykdymo įrankį išmaniosioms sutartims ir dvinariams.
Securify – saugumo skaitytuvas Ethereum išmaniosioms sutartims
Daugiau apie formalią patikrą
- How formal verification of smart-contacts works 2018 m. liepos 20 d. - Brian Marick
- How Formal Verification Can Ensure Flawless Smart Contracts 2018 m. sausio 29 d. - Bernard Mueller
Ieškote alternatyvų?
Testavimo įrankiai
Solidity-Coverage – alternatyvus Solidity kodo aprėpties įrankis.
hevm – specialiai vienetų testavimui ir riktų šalinimui iš išmaniųjų sutarčių sukurtas EVM įdiegimo projektas.
Whiteblock Genesis – ištisinio kūrimo bandomoji aplinka ir testavimo platforma blokų grandinėms.
Ieškote alternatyvų?
Blokų naršyklės
Blokų naršyklės – tai paslaugos, kurias naudodami galite naršyti Ethereum blokų grandinę (ir jos bandomuosius tinklus) atrasdami informaciją apie konkrečius sandorius, blokus, sutartis ir kitą veiklą grandinėje.
Bandomieji tinklai ir maišytuvai
Ethereum bendruomenė prižiūri keletą bandomųjų tinklų. Kūrėjai juos naudoja įvairiomis sąlygomis testuodami savo programas prieš jų įdiegimą į pagrindinį Ethereum tinklą.
Ropsten – darbo įrodymo (proof of work) blokų grandinė, galima kasti bandomąjį Ether
Rinkeby – įgaliojimo įrodymo (proof of authority) blokų grandinė, kurią palaiko Geth kūrėjų komanda
Goerli – tarpklientinė įgaliojimo įrodymo (proof of authority) blokų grandinė, sukurta ir palaikoma Goerli bendruomenės
Klientai ir savo mazgo paleidimas
Ethereum tinklas sukurtas iš daugybės mazgų, kurie užtikrina suderinamos kliento programinės įrangos veikimą. Per daugumą šių mazgų veikia Geth arba Parity – juos visus galite konfigūruoti pagal savo poreikius.
Geth – Ethereum klientai, parašyti Go kalba
Parity – Ethereum klientas, parašytas Rust kalba
Pantheon – Ethereum klientas, parašytas Java kalba
Ethnode – Ethereum mazgo paleidimas (Geth arba Parity) vietiniam kūrimui.
Ethereum mazgų ištekliai
- Node Configuration Cheat Sheet 2019 m. sausio 5 d. - Afri Schoeden
Ieškote alternatyvų?
Geriausios praktikos, modeliai ir nesektini modeliai
DappSys – saugūs ir lankstūs kūrimo blokai išmaniosioms sutartims.
OpenZeppelin sutartys – saugaus išmaniųjų sutarčių kūrimo biblioteka.
aragonOS – naujinamumo ir leidimų kontrolės modeliai.
Išmaniųjų sutarčių trūkumų registras
Išmaniųjų sutarčių saugumo geriausios praktikos vadovas
- consensys.github.io/smart-contract-best-practices/
- GitHub
- Suvestinė saugumo rekomendacijų ir geriausios praktikos kolekcija
Ieškote alternatyvų?
Kūrėjų palaikymas ir mokymas
Ethereum StackExchange
ConsenSys Academy – ištisinis (end-to-end) mokymo kursas Ethereum kūrėjams; lankstaus mokymosi galimybė, prieinama ištisus metus.
Solidity Gitter Chatroom
Visos Ethereum Gitter pokalbių svetainės
Cryptozombies – išmokite programuoti žaidimus Ethereum platformoje.
Chainshot – internetinės dapp programavimo mokymo programos.
Blockgeeks – internetiniai kursai apie blokų grandinės technologiją
DappUniversity – išmokite kurti decentralizuotas programas Ethereum blokų grandinėje
Ethernaut – Solidity kalba sukurtas karinis žaidimas. Kiekviename lygyje reikia nulaužti sutartį.
Capture the Ether – žaidimas Ethereum išmaniųjų sutarčių saugumo tema
UI/UX
- Challenge of UX in Ethereum 2018 m. birželio 25 d. - Anna Rose
- Designing for blockchain: what’s different and what’s at stake 2018 m. kovo 22 d. - Sarah Baker Mills
Rimble UI – lengvai pritaikomi komponentų ir dizaino standartai decentralizuotoms programoms.
Standartai
Ethereum bendruomenė yra priėmusi daug standartų, kurie naudingi kūrėjams. Įprastai jie pristatomi kaip Ethereum tobulinimo pasiūlymai (EIP), kuriuos bendruomenės nariai aptaria standartinio proceso metu.
- EIP sąrašas
- EIP GitHub atpirkimas (repo)
- EIP diskusijų forumas
- Ethereum Governance Overview 2019 m. kovo 31 d. - Boris Mann
- Visų Ethereum branduolio kūrimo susitikimų grojaraštis (YouTube grojaraštis)
Tam tikri EIP siejami su programos lygio standartais (pvz., su standartiniu išmaniosios sutarties formatu), kurie pristatomi kaip Ethereum komentarų užklausos (ERC). Daug ERC yra plačiai Ethereum ekosistemoje naudojami kritiniai standartai.