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.

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ą

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

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

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

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.

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.