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.
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.
—
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);
}
}
—
EVM rozlišuje, kde jsou data uložena, což má obrovský vliv na cenu transakce:
Solidity poskytuje speciální proměnné pro přístup k informacím o síti:
—
Chyby v chytrých smlouvách nelze opravit pomocí „patche“. Mezi nejznámější hrozby patří:
—
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