Kā pārskaitīt līdzekļus Ethereum tīklā, izmantojot GETH CLI

Manā iepriekšējā rakstā jūs uzzinājāt, kā 10 minūšu laikā iestatīt pilnībā sinhronizētu blokķēdes mezglu. Ir pienācis laiks uzzināt, kā veikt darījumu Ethereum tīklā, izmantojot GETH CLI.

Lai atrastos tajā pašā lapā, vispirms veiciet visas darbības no iepriekšējā raksta.

Gatavs? Lieliski.

Šajā brīdī jūs zināt:

  • kā palaist pilnībā sinhronizētu Ethereum blokķēdes mezglu
  • kā piestiprināt GETH console
  • kā pieprasīt Ethereum konta atlikumu
geth attach ipc:/home/enchanter/.gophersland_ethereum_r1/geth.ipc 
eth.getBalance("0xceee57f2b700c2f37d1476a7974965e149fce2d4")
> 7500000000000000000

Es daru, jūs varētu domāt, bet pagaidiet sekundi Lukas ... kāpēc 7.5ETHtiek parādīts tāpat 7500000000000000000Geth console?

Ēteris pret Vei

Ethereum virtuālā mašīna neatbalsta decimāldaļas vai pludiņus. Acīmredzot finanšu aprēķini ir vienkāršāki veselos skaitļos.

Tāpēc, lai varētu nosūtīt daļu no 1 ETH, Ethereum fonds nolēma izveidot savu metrisko sistēmu, kur mazākā vienība būtu 1 Wei un 1 Ether ir 1e18 Wei.

Bet neuztraucieties, ir instrumenti, kas var atvieglot jūsu dzīvi. Piemēram, es ļoti iesaku tiešsaistes pārveidotāju Ether to Wei:

//etherconverter.online

Lai nosūtītu ētera vērtību 15 USD vērtībā, kur 1 ETH = = 200 USD (vecie labie laiki ...), jūs veiktu darījumu, nosūtot 0,0740 ETH, kas būtu, un tam jābūt pārstāvētam Wei kā 74000000000000000.

Tiešsaistes ētera uz Wei pārveidotājs:

Ethereum metriskās sistēmas pārskats:

Prakse padara meistarību. Nosūtīsim 74000000000000000 Wei (15 USD) uz citu kontu.

Etera nosūtīšana uz citu kontu, izmantojot GETH CLI

Vienā terminālā atcerieties palaist pilnībā sinhronizētu blokķēdes mezglu:

geth --rinkeby --datadir=~/.gophersland_ethereum_r1 --port=30304 --cache=2048 --rpc --rpcport=8546 --rpcapi=eth,web3,net,personal --syncmode=fast

Citā terminālā mēs izveidosim savu otro Ethereum kontu, tieši tāpat kā 1. daļā.

ls -la ~/.gophersland_ethereum_r1/keystore/> drwx------ 2 enchanter enchanter 4096 sep 24 15:36 .> drwx------ 4 enchanter enchanter 4096 sep 24 15:26 ..> -rw------- 1 enchanter enchanter 491 sep 24 15:36 
UTC--2018-09-24T13-36-43.069452577Z--ceee57f2b700c2f37d1476a7974965e149fce2d4geth --datadir=~/.gophersland_ethereum_r1 account new> INFO [09-24|15:36:33.566] Maximum peer count ETH=25 LES=0 total=25> Your new account is locked with a password. Please give a password. Do not forget this password.
> Passphrase: > Repeat passphrase: > Address: {7aa4a14286a25e3a275d7a122c23dc3c107a636a}ls -la ~/.gophersland_ethereum_r1/keystore/> drwx------ 2 enchanter enchanter 4096 oct 25 20:14 .> drwx------ 4 enchanter enchanter 4096 oct 25 19:48 ..> -rw------- 1 enchanter enchanter 491 sep 24 15:36 
UTC--2018-09-24T13-36-43.069452577Z--ceee57f2b700c2f37d1476a7974965e149fce2d4

Tagad pievienosim Geth konsoli pašlaik darbojošajam blokķēdes mezglam, kā mēs to darījām iepriekšējā rakstā, lai pārsūtītu 15 USD uz šo jaunizveidoto kontu, izpildot eth.sendTransactionkomandu.

geth attach ipc:/home/enchanter/.gophersland_ethereum_r1/geth.ipc 
eth.sendTransaction({from: "0xceee57f2b700c2f37d1476a7974965e149fce2d4",to: "0x7aa4a14286a25e3a275d7a122c23dc3c107a636a", value: "74000000000000000"})

Kļūda: nepieciešama autentifikācija: parole vai atbloķēšana.

Jums vajadzētu saņemt kļūdu. Tas ir tāpēc, ka Ether nosūtīšana ir “darījums”, un darījums maina stāvokli, maksā gāzi un tērē līdzekļus. Tas nozīmē, ka tas jāparaksta ar mūsu privāto atslēgu, kas tiek glabāta Keystore. Lai atšifrētu atslēgu, mums jānorāda parole vai, citiem vārdiem sakot, jāatslēdz konts.

Izpildiet šo komandu, lai atbloķētu kontu nākamajiem 60 gadiem, un vēlreiz izpildiet komandu sendTransaction.

web3.personal.unlockAccount(web3.personal.listAccounts[0], null, 60) 
eth.sendTransaction({from: "0xceee57f2b700c2f37d1476a7974965e149fce2d4", to: "0x7aa4a14286a25e3a275d7a122c23dc3c107a636a", value: "74000000000000000"})

Mēs arī būtu varējuši nodot paroli kā otro argumentu, nevis nulli. Bet šis veids ir drošāks, jo jūsu parole ir tikai buferī un netiek glabāta nevienā žurnālā vai redzama ekrānā.

Šoreiz komanda izdevās, un tika atgriezta darījuma jaukšanas kvīts! Ak jā!

Tā kā mēs esam izveidojuši savienojumu ar Rinkeby tīklu, mēs varam izmantot Rinkeby GUI pētnieka priekšrocības, lai pārbaudītu šī darījuma statusu, iztērēto gāzi, gāzes cenu utt.

  1. Atveriet pārlūku
  2. Meklēšanas joslā ielīmējiet darījuma kvīts hash
  3. Gatavs, mēs iztērējām 21 000 gāzes (standarta līdzekļu nosūtīšanai), un Darījums izdevās!

Tagad varat vaicāt abu kontu atlikumiem un redzēt mainīto stāvokli:

eth.getBalance("0xceee57f2b700c2f37d1476a7974965e149fce2d4") > 7425979000000000000 
eth.getBalance("0x7aa4a14286a25e3a275d7a122c23dc3c107a636a") > 74000000000000000

Darbojas kā šarms.

Apsveicam! Jūs:

  • uzzināja atšķirību starp Eteri un Vei un to, kā viņus pārvērst
  • iesniedza savu pirmo darījumu globālajā Ethereum testa tīklā Rinkeby

Jūs varat turpināt paplašināt savas blokķēdes prasmes, izveidojot vienu no nulles Go! "