I Ethereum-systemet består tilstanden af objekter kaldet "konti" (hver konto består af en 20-byte adresse) og tilstandsovergange, der overfører værdi og information mellem to konti. En Ethereum-konto består af fire dele: Et tilfældigt tal, der bestemmer en tæller, som kun kan behandles én gang pr. transaktion Den aktuelle Ethereum-saldo på kontoen Kontoens kontraktkode, hvis der er nogen Lagring af kontoen (tom som standard) Kort sagt består hver Ethereum-konto af et par offentlige og private nøgler. Den offentlige nøgle kan forstås som kontoadressen, som kan tilgås af enhver anden konto En privat nøgle kan forstås som en krypteret adgangskode, og dette par af offentlige og private nøgler udgør tilsammen en unikt identificeret Ethereum-konto. For eksempel, i den første Ethereum-konto eth.accounts[0], vi etablerede i det forrige afsnit, er adressen 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f den offentlige nøgle, og den krypterede adgangskode er den private nøgle. Øg konti Vi kan indtaste kommandoen personal.newAccount("123") for at oprette en ny konto (bemærk at 123 kan ændres til en hvilken som helst anden adgangskode)
Når Ethereums private kæde miner, vil den udvundne ether blive indsat på den første Ethereum-konto, det vil sige eth.accounts[0], og eth.accounts[1] vil som standard ikke have ether. På nuværende tidspunkt kan vi bruge følgende kommando til at tjekke Ethereum-saldoen i eth.accounts[0].
Sådan konverterer du Ethereum mellem to konti Som nævnt tidligere er den offentlige nøgle (adresse) for hver konto kernen i alle Ethereum-kontooperationer, men adressestrengen er for lang, så vi bruger acc0/acc1 til at repræsentere konti[0] og [1] henholdsvis, og sætter 0,01 ETH til at blive overført
På nuværende tidspunkt kan vi bruge eth.sendTransaction til at overføre 0,01 ETH fra acc0 til acc1.
En Ethereum-beskyttelsesmekanisme, der automatisk låser konti med jævne mellemrum, hvorefter enhver konvertering af ETH mellem konti vil blive afvist, medmindre kontoen låses op. På dette tidspunkt skal vi udføre personal.unlockAccount(acc0) og indtaste adgangskoden for at låse acc0 op.
På dette tidspunkt genudfører vi kommandoen eth.sendTransaction({from: acc0, to: acc1, value: amount}), og resultatet er som følger:
Vi kan se, at acc1 på dette tidspunkt har en værdi på 100000000000000000000000000 i stedet for den tidligere 0. Men hvorfor er værdien så stor, når vi åbenlyst vil give 0,01 ether-mønter? Faktisk er det korrekt, vi behøver kun indtaste kommandoen web3.fromWei(10000000000000000000, "ether") for at vide det.
Grundenheden for Ether
Den mindste enhed af Ether-mønt er Wei, som også er standardenheden i kommandolinjen, og derefter én enhed for hver 1000, i den rækkefølge
Kwei (1000 Wei) mwei (1000 KWei) Gwei (1000 mwei) Szabo (1000 Gwei) Finney (1000 szabo) Ether (1000 Finney) Kort sagt er det 1 ETH = 1000000000000000000000000 Wei (derfor overførte vi 0,01 ETH ved den tidligere stop, men resultatet var meget langt) Hvordan man konverterer mellem ether og wei
|