I Ethereum-systemet består tillståndet av objekt som kallas "konton" (varje konto består av en 20-bytes adress) och tillståndsövergångar som överför värde och information mellan två konton. Ett Ethereum-konto består av fyra delar: Ett slumpmässigt tal som bestämmer en räknare och som bara kan behandlas en gång per transaktion Det aktuella Ethereum-saldot på kontot Kontens kontraktskod, om någon finns Lagring av kontot (tomt som standard) Enkelt uttryckt består varje Ethereum-konto av ett par publika och privata nycklar. Den publika nyckeln kan förstås som kontoadressen, som kan nås av vilket annat konto som helst En privat nyckel kan förstås som ett krypterat lösenord, och detta par av publika och privata nycklar bildar tillsammans ett unikt identifierat Ethereum-konto. Till exempel, i det första Ethereum-kontot eth.accounts[0] som vi etablerade i föregående avsnitt, är adressen 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f den publika nyckeln och det krypterade lösenordet är den privata nyckeln. Öka konton Vi kan ange kommandot personal.newAccount("123") för att skapa ett nytt konto (observera att 123 kan ändras till vilket annat lösenord som helst)
När Ethereums privata kedja minar kommer den utvunna ethern att sättas in på det första Ethereum-kontot, det vill säga eth.accounts[0], och eth.accounts[1] kommer inte att ha ether som standard. Just nu kan vi använda följande kommando för att kontrollera Ethereum-saldot i eth.accounts[0].
Hur man konverterar Ethereum mellan två konton Som nämnts tidigare är den publika nyckeln (adressen) för varje konto kärnan i alla Ethereum-kontooperationer, men adresssträngen är för lång, så vi använder acc0/acc1 för att representera konton[0] respektive [1], och sätter 0,01 ETH att överföras
Just nu kan vi använda eth.sendTransaction för att överföra 0,01 ETH från acc0 till acc1.
En Ethereum-skyddsmekanism som automatiskt låser konton då och då, varpå all konvertering av ETH mellan konton avvisas om inte kontot låses upp. Just nu behöver vi köra personal.unlockAccount(acc0) och ange lösenordet för att låsa upp acc0.
Vid denna tidpunkt kör vi om kommandot eth.sendTransaction({from: acc0, to: acc1, value: amount}), och resultatet är följande:
Vi kan se att acc1 vid denna tidpunkt har värdet 1000000000000000000000000000000, istället för den tidigare 0. Men varför är värdet så stort när vi uppenbarligen vill ge 0,01 etermynt? Faktum är att det stämmer, vi behöver bara ange kommandot web3.fromWei(100000000000000000000, "ether") för att veta.
Grundenheten för eter
Den minsta enheten av etermynt är Wei, vilket också är standardenheten i kommandoraden, och sedan en enhet för varje 1000, i den ordningen
Kwei (1000 Wei) mwei (1000 KWei) Gwei (1000 mwei) Szabo (1000 Gwei) Finney (1000 szabo) Ether (1000 Finney) Enkelt uttryckt är det 1 ETH = 100000000000000000000000 Wei (det är därför vi överförde 0,01 ETH vid föregående stopp, men resultatet var väldigt långt) Hur man konverterar mellan eter och wei
|