Obsah

Smart Contracts: Vývoj pro EVM

Vývoj pro EVM se točí především kolem jazyka Solidity. Jde o objektově orientovaný, staticky typovaný jazyk, který byl navržen tak, aby jeho výsledný bytecode mohl být vykonán libovolným uzlem v síti Ethereum.

1. Životní cyklus vývoje

Proces od nápadu k běžící smlouvě na hlavní síti (Mainnet) má přísná pravidla:

1. **Návrh a kódování:** Psaní logiky v Solidity (soubory .sol).
2. **Kompilace:** Solc (kompilátor) přeloží kód do **Bytecodu** (pro EVM) a vygeneruje **ABI** (Application Binary Interface - popis rozhraní pro komunikaci s aplikací).
3. **Lokální testování:** Spuštění kódu na lokálním blockchainu (např. Hardhat, Foundry nebo Ganache).
4. **Nasazení na Testnet:** Vyzkoušení na sítích jako Sepolia nebo Holesky, kde se nepoužívá skutečné ETH.
5. **Audit:** Revize kódu bezpečnostními experty.
6. **Mainnet Deployment:** Odeslání transakce, která kód uloží na trvalo do blockchainu.

—

2. Struktura kontraktu v Solidity

Základní kontrakt vypadá podobně jako třída (class) v jiných jazycích:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract JednoduchaBanka {
    // Stavová proměnná (uložená trvale v blockchainu)
    mapping(address => uint) public zůstatky;

    // Funkce pro uložení peněz
    function vklad() public payable {
        zůstatky[msg.sender] += msg.value;
    }

    // Funkce pro výběr
    function vyber(uint _castka) public {
        require(zůstatky[msg.sender] >= _castka, "Nedostatek penez");
        zůstatky[msg.sender] -= _castka;
        payable(msg.sender).transfer(_castka);
    }
}

—

3. Klíčové koncepty při psaní kódu

Úložiště: Storage vs. Memory

EVM rozlišuje, kde jsou data uložena, což má obrovský vliv na cenu transakce:

Globální proměnné

Solidity poskytuje speciální proměnné pro přístup k informacím o síti:

—

4. Bezpečnost: Na co si dát pozor

Chyby v chytrých smlouvách nelze opravit pomocí „patche“. Mezi nejznámější hrozby patří:

—

5. Vývojářské nástroje (Truffle Suite & Hardhat)

Moderní vývojář nepoužívá jen textový editor, ale celé vývojové frameworky:


Související články:

Tagy: it solidity programming ethereum evm devops blockchain security