V systému Ethereum se stav skládá z objektů nazývaných "účty" (každý účet má adresu o 20 bajtech) a přechodů stavů, které přenášejí hodnotu a informace mezi dvěma účty. Účet na Ethereu se skládá ze čtyř částí: Náhodné číslo, které určuje čítač, jež lze zpracovat pouze jednou za transakci Aktuální Ethereum zůstatek účtu Kód smlouvy účtu, pokud nějaký je Úložiště účtu (výchozí prázdno) Jednoduše řečeno, každý účet Ethereum se skládá z dvojice veřejných a soukromých klíčů. Veřejný klíč lze chápat jako adresu účtu, ke které může přistupovat jakýkoli jiný účet Soukromý klíč lze chápat jako šifrované heslo a tento pár veřejných a soukromých klíčů dohromady tvoří jedinečně identifikovaný účet Ethereum. Například v prvním účtu Ethereum eth.accounts[0], který jsme stanovili v předchozí části, je adresa 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f veřejný klíč a zašifrované heslo je soukromý klíč. Zvyšte účty Můžeme zadat příkaz personal.newAccount("123") pro vytvoření nového účtu (poznámka: 123 lze změnit na jakékoli jiné heslo)
Když těží privátní řetězec Etherea, vytěžený ether je uložen do prvního účtu Etherea, tedy eth.accounts[0], a eth.accounts[1] nebude mít ether automaticky. V tuto chvíli můžeme použít následující příkaz ke kontrole zůstatku Etherea v eth.accounts[0].
Jak převést Ethereum mezi dvěma účty Jak již bylo zmíněno, veřejný klíč (adresa) každého účtu je jádrem všech operací Ethereum účtu, ale řetězec adres je příliš dlouhý, proto používáme acc0/acc1 pro reprezentaci účtů[0] a [1] a nastavujeme 0,01 ETH pro převod
V tuto chvíli můžeme použít eth.sendTransaction k převodu 0,01 ETH z acc0 na acc1.
Mechanismus ochrany Etherea, který automaticky občas zamyká účty, a poté bude jakákoli konverze ETH mezi účty zamítnuta, pokud není účet odemčen. V tuto chvíli musíme spustit personal.unlockAccount(acc0) a zadat heslo k odemčení acc0.
V tuto chvíli znovu vykonáme příkaz eth.sendTransaction({from: acc0, do: acc1, value: amount}) a výsledek je následující:
Vidíme, že v tuto chvíli má acc1 hodnotu 100000000000000000000000000000 místo předchozí 0. Ale proč je hodnota tak velká, když samozřejmě chceme dát mince 0,01 etheru? Ve skutečnosti je to správně, stačí zadat příkaz web3.fromWei(100000000000000000000, "ether"), abychom to věděli.
Základní jednotka Etheru
Nejmenší jednotkou etherové mince je Wei, což je také výchozí jednotka příkazového řádku, a pak jedna jednotka na každých 1000, v tomto pořadí
kwei (1000 Wei) mwei (1000 KWei) Gwei (1000 MWEI) Szabo (1000 gwei) Finney (1000 szabo) Ether (1000 Finney) Jednoduše řečeno, je to 1 ETH = 10000000000000000000000 Wei (proto jsme při předchozím zastavení převedli 0,01 ETH, ale výsledek byl velmi dlouhý) Jak převést mezi etherem a wei
|