In het Ethereum-systeem bestaat de status uit objecten die "accounts" worden genoemd (elk account bestaat uit een 20-byte adres) en toestandsovergangen die waarde en informatie tussen twee accounts overdragen. Een Ethereum-account bestaat uit vier delen: Een willekeurig nummer dat een teller bepaalt en slechts één keer per transactie verwerkt kan worden Het huidige Ethereum-saldo van de rekening De contractcode van het account, indien aanwezig Opslag van het account (standaard leeg) Simpel gezegd bestaat elk Ethereum-account uit een paar publieke en private sleutels. De publieke sleutel kan worden begrepen als het accountadres, dat door elk ander account toegankelijk is Een privésleutel kan worden begrepen als een versleuteld wachtwoord, en dit paar publieke en private sleutels vormen samen een uniek geïdentificeerd Ethereum-account. Bijvoorbeeld, in het eerste Ethereum-account eth.accounts[0] dat we in de vorige sectie hebben vastgesteld, is het adres 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f de publieke sleutel, en het versleutelde wachtwoord de private sleutel. Accounts verhogen We kunnen het commando personal.newAccount("123") invoeren om een nieuw account aan te maken (let op: 123 kan worden veranderd in elk ander wachtwoord)
Wanneer de Ethereum-privéketen aan het minen is, wordt de geminde ether gestort op de eerste Ethereum-rekening, dat wil zeggen eth.accounts[0], en eth.accounts[1] zullen standaard geen ether hebben. Op dit moment kunnen we het volgende commando gebruiken om het Ethereum-saldo in eth.accounts[0] te controleren.
Hoe converteer je Ethereum tussen twee accounts Zoals eerder vermeld, is de publieke sleutel (adres) van elk account de kern van alle Ethereum-accountoperaties, maar de adresstring is te lang, dus gebruiken we acc0/acc1 om respectievelijk rekeningen[0] en [1] weer te geven, en stellen we 0,01 ETH in om overgedragen te worden
Op dit moment kunnen we eth.sendTransaction gebruiken om 0,01 ETH van acc0 naar acc1 over te zetten.
Een Ethereum-beschermingsmechanisme dat accounts af en toe automatisch vergrendelt, waarna elke omzetting van ETH tussen accounts wordt afgewezen tenzij het account wordt ontgrendeld. Op dit moment moeten we personal.unlockAccount(acc0) uitvoeren en het wachtwoord invoeren om acc0 te ontgrendelen.
Op dit moment voeren we het commando eth.sendTransaction({from: acc0, to: acc1, value: amount} opnieuw uit, en het resultaat is als volgt:
We zien dat acc1 op dit moment een waarde heeft van 1000000000000000000000000000, in plaats van de vorige 0. Maar waarom is de waarde zo hoog terwijl we duidelijk 0,01 ethermunten willen geven? In feite klopt het, we hoeven alleen het commando web3.fromWei(100000000000000000000, "ether") in te voeren om het te weten.
De basiseenheid van Ether
De kleinste eenheid van de Ether-munt is Wei, wat ook de standaardeenheid van de commandoregel is, en dan één eenheid voor elke 1000, in die volgorde
Kwei (1000 Wei) mwei (1000 KWei) Gwei (1000 mwei) Szabo (1000 Gwei) Finney (1000 szabo) ether (1000 Finney) Simpel gezegd is het 1 ETH = 1000000000000000000000000 Wei (daarom hebben we bij de vorige stopstop 0,01 ETH overgedragen, maar het resultaat was erg lang). Hoe je tussen ether en wei converteert
|