I Ethereum-systemet består tilstanden av objekter kalt "kontoer" (hver konto består av en 20-bytes adresse) og tilstandsoverganger som overfører verdi og informasjon mellom to kontoer. En Ethereum-konto består av fire deler: Et tilfeldig tall som bestemmer en teller som kun kan behandles én gang per transaksjon Den nåværende Ethereum-saldoen på kontoen Kontoens kontraktskode, hvis det finnes Lagring av kontoen (tom som standard) Enkelt sagt består hver Ethereum-konto av et par offentlige og private nøkler. Den offentlige nøkkelen kan forstås som kontoadressen, som kan nås av en hvilken som helst annen konto En privat nøkkel kan forstås som et kryptert passord, og dette paret av offentlige og private nøkler utgjør sammen en unikt identifisert Ethereum-konto. For eksempel, i den første Ethereum-kontoen eth.accounts[0] vi etablerte i forrige avsnitt, er adressen 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f den offentlige nøkkelen, og det krypterte passordet er den private nøkkelen. Øk kontoene Vi kan skrive inn kommandoen personal.newAccount("123") for å opprette en ny konto, (merk at 123 kan endres til et hvilket som helst annet passord)
Når Ethereums private kjeden miner, vil den utvunne etheren bli satt inn på den første Ethereum-kontoen, det vil si eth.accounts[0], og eth.accounts[1] vil som standard ikke ha ether. På dette tidspunktet kan vi bruke følgende kommando for å sjekke Ethereum-saldoen i eth.accounts[0].
Hvordan konvertere Ethereum mellom to kontoer Som nevnt tidligere, er den offentlige nøkkelen (adressen) til hver konto kjernen i alle Ethereum-kontooperasjoner, men adressestrengen er for lang, så vi bruker acc0/acc1 for å representere kontoer[0] og [1] henholdsvis, og setter 0,01 ETH til å overføres
På dette tidspunktet kan vi bruke eth.sendTransaction for å overføre 0,01 ETH fra acc0 til acc1.
En Ethereum-beskyttelsesmekanisme som automatisk låser kontoer innimellom, og da vil enhver konvertering av ETH mellom kontoer bli avvist med mindre kontoen låses opp. På dette tidspunktet må vi kjøre personal.unlockAccount(acc0) og skrive inn passordet for å låse opp acc0.
På dette tidspunktet utfører vi kommandoen eth.sendTransaction({from: acc0, to: acc1, value: amount} på nytt), og resultatet er som følger:
Vi kan se at på dette tidspunktet har acc1 en verdi på 10000000000000000000000000, i stedet for den forrige 0. Men hvorfor er verdien så høy når vi åpenbart vil gi 0,01 etermynter? Faktisk er det korrekt, vi trenger bare å skrive inn kommandoen web3.fromWei(10000000000000000000, "ether") for å vite.
Den grunnleggende enheten til eter
Den minste enheten av etermynt er Wei, som også er standardenheten i kommandolinjen, og deretter én enhet for hver 1000, i den rekkefølgen
Kwei (1000 Wei) mwei (1000 KWei) Gwei (1000 mwei) Szabo (1000 Gwei) Finney (1000 szabo) Ether (1000 Finney) Enkelt sagt er det 1 ETH = 10000000000000000000000000 Wei (derfor overførte vi 0,01 ETH i forrige stans, men resultatet var veldig langt) Hvordan konvertere mellom eter og wei
|