Puslapis paskutinį kartą atnaujintas: December 17, 2020
Ištekliai kūrėjams
Į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ų.
Norite pradėti programuoti tuoj pat? Pradėkite čia.
Norėtumėte pradėti nuo ko nors paprastesnio? Susipažinkite su mūsų mokymosi ištekliais.
Naudingi ištekliai
- 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ų sutarčių 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 – pati populiariausia kalba naudojant Ethereum, paremta C++, Python ir JavaScript.
Vyper – į saugumą orientuota Ethereum kalba, paremta Python.
Ieškote alternatyvų?
Su konkrečia kalba susiję ištekliai
Kuriame tam tikrų kalbų nukreipimo puslapių komplektą kūrėjams, norintiems išmokti apie Ethereum jų pasirinkta programavimo kalba.
- Ethereum Java kūrėjams
- Ethereum Python kūrėjams
- Ethereum JavaScript kūrėjams
- Ethereum Go kūrėjams
- Ethereum Rust kūrėjams
- Ethereum .NET kūrėjams
- Daugiau – jau greitai! Nerandate ieškomos kalbos? Praneškite apie tai!
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 galite pradėti darbą. Jei ieškote išsamesnės informacijos, žvilgelėkite į šį išsamų sąrašą.
Sistemos
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.
Kiti įrankiai
Ethereum Grid – darbalaukio programa, skirta atsisiųsti, konfigūruoti ir paleisti Ethereum klientus ir įrankius.
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.
The Graph – protokolas, skirtas indeksuoti Ethereum ir IPFS duomenis ir teikti užklausas naudojant GraphQL.
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.
One Click Dapp – frontend generavimas tiesiogiai iš programos dvejetainės sąsajos (ABI) greitam kūrimui ir testavimui.
Ieškote alternatyvų?
Integruotos kūrimo aplinkos (IDE)
Ethereum Studio – internetinė integruota kūrimo aplinka (IDE), idealiai tinkanti naujiems kūrėjams, norintiems eksperimentuoti su išmaniosiomis sutartimis. Ethereum Studio apima keletą šablonų, MetaMask integraciją, sandorių registratorių ir naršyklėje integruotą Ethereum virtualią mašiną (EVM) – visa tai leis jums greitai pradėti kurti Ethereum platformoje.
Visual Studio Code – profesionali integruota kūrimo aplinka, kurią galima naudoti tarp skirtingų platformų, su oficialiu Ethereum palaikymu.
- Visual Studio Code
- Azure Blockchain Development Kit for Ethereum
- Azure Blockchain Workbench įskiepis
- Kodų pavyzdžiai
- GitHub
Remix – internetinė integruota kūrimo aplinka su integruota statine analize ir bandomoji blokų grandinės virtuali mašina.
EthFiddle – internetinė integruota kūrimo aplinka, kurioje galima rašyti ir kaupti išmaniąsias sutartis bei 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ų.
Chainstack – bendrinami ir specializuoti Ethereum mazgai, teikiami kaip paslauga.
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
Išmaniųjų sutarčių saugumas
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.
SmartContract.Codes – patikrintų Solidity pirminių kodų paieškos sistema.
Manticore – tekstinė sąsaja, naudojanti simbolinį vykdymo įrankį išmaniosioms sutartims ir dvinariams.
Securify – saugumo skaitytuvas Ethereum išmaniosioms sutartims.
ERC20 Verifier – patikros įrankis, naudojamas tikrinti sutarties atitiktį ERC20 standartui.
Formali patikra
Informacija 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.
Klientai
Geth – Ethereum klientai, parašyti Go kalba.
Parity –***Ethereum klientas, parašytas Rust kalba.***
Pantheon – Ethereum klientas, parašytas Java kalba.
Nethermind – Ethereum klientas, parašytas C# .NET Core kalba.
Savo mazgo paleidimas
Ethnode – Ethereum mazgo leidimas (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
Išmaniosios sutartys
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
Saugumas
Išmaniųjų sutarčių saugumo geriausios praktikos vadovas
- consensys.github.io/smart-contract-best-practices/
- GitHub
- Suvestinė saugumo rekomendacijų ir geriausios praktikos kolekcija
Išmaniųjų sutarčių saugumo patikros standartas (SCSVS)
Ieškote alternatyvų?
Kūrėjų palaikymas ir mokymas
Bendrasis mokymasis
Ethereum StackExchange
ConsenSys Academy – ištisinis (end-to-end) mokymo kursas Ethereum kūrėjams; lankstaus mokymosi galimybė, prieinama ištisus metus.
Solidity Gitter pokalbių svetainė
Visos Ethereum Gitter pokalbių svetainės
Chainshot – internetinės dappsų kodavimo mokymo programos.
Blockgeeks – internetiniai kursai apie blokų grandinės technologiją.
DappUniversity – išmokite kurti decentralizuotas programas Ethereum blokų grandinėje.
B9lab Academy – seniausias profesionalaus Ethereum dappsų kūrėjo kursas ir tolesnis auditorių ir kokybės užtikrinimo specialistų mokymasis. Įsk. mentorystę ir kodų peržiūrą.
Mokymasis žaidžiant
Cryptozombies – išmokite programuoti žaidimus Ethereum platformoje.
Ethernaut – Solidity kalba sukurtas karinis žaidimas. Kiekviename lygyje reikia nulaužti sutartį.
Capture the Ether – žaidimas apie Ethereum išmaniųjų sutarčių saugumą.
UI/UX dizainas
- 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.