In al meu articolul anterior, ați învățat cum să configurați un nod blockchain complet sincronizat în 10 minute. Acum este timpul să învățați cum să efectuați o tranzacție în rețeaua Ethereum folosind GETH CLI.

Pentru a fi pe aceeași pagină, parcurgeți toți pașii de la articolul anterior primul.

Terminat? Perfect.

În acest moment știți:

  • cum să rulați un nod Ethereum blockchain complet sincronizat
  • cum să atașezi GETH console
  • cum să interogați un sold al unui cont Ethereum
geth attach ipc:/home/enchanter/.gophersland_ethereum_r1/geth.ipc 
eth.getBalance("0xceee57f2b700c2f37d1476a7974965e149fce2d4")
> 7500000000000000000

Da, aș putea crede, dar așteptați un al doilea Lukas … de ce este 7.5ETH este afișat ca 7500000000000000000 în Geth console?

Ether vs Wei

Mașina virtuală Ethereum nu acceptă zecimale sau flotante. Aparent, calculele în finanțe sunt mai ușoare în numerele întregi.

Prin urmare, pentru a putea trimite o fracțiune de 1 ETH, fundația Ethereum a decis să creeze propriul sistem metric în care cea mai mică unitate ar fi 1 Wei, iar 1 Ether este 1e18 Wei.

Dar nu vă faceți griji, există instrumente care vă pot ușura viața. De exemplu, recomand cu tărie convertorul online Ether to Wei:

https://etherconverter.online

Pentru a trimite Ether în valoare de 15 USD, unde 1 ETH == 200 $ (vremuri bune …), ați efectua o tranzacție trimitând 0,0740 ETH care ar fi și trebuie să fie reprezentat în Wei ca, 74000000000000000.

Convertor online din eter în Wei:

Cum sa transferati fonduri in reteaua Ethereum utilizand GETH CLI

Prezentare generală a sistemului metric Ethereum:

1612055345 55 Cum sa transferati fonduri in reteaua Ethereum utilizand GETH CLI

Practica face stăpânire. Să trimitem de fapt 74000000000000000 Wei (15 dolari) către un alt cont.

Trimiterea Ether către un alt cont utilizând GETH CLI

Într-un terminal, nu uitați să rulați un nod blockchain complet sincronizat:

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

Într-un alt terminal, vom crea al doilea cont Ethereum, exact ca în partea 1.

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

Acum, să atașăm consola Geth la nodul blockchain care rulează în prezent, așa cum am făcut în articolul precedent, pentru a transfera 15 USD la acest cont nou creat executând eth.sendTransaction comanda.

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

Eroare: autentificare necesară: parolă sau deblocare.

Ar trebui să primiți o eroare. Acest lucru se datorează faptului că trimiterea Ether este o „tranzacție” și o tranzacție schimbă starea, costă benzină și cheltuie fonduri. Ceea ce înseamnă că trebuie să fie semnat cu cheia noastră privată care este stocată în Keystore. Pentru a decripta cheia, trebuie să furnizăm o parolă sau, cu alte cuvinte, să deblocăm contul.

Executați următoarea comandă pentru a vă debloca contul pentru următorii 60 de ani și executați din nou comanda sendTransaction.

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

Am fi putut trece și parola ca un al doilea argument în loc de nul. Dar acest mod este mai sigur, deoarece parola dvs. este doar într-un buffer și nu este stocată în niciun jurnal sau vizibilă pe ecran.

1612055345 662 Cum sa transferati fonduri in reteaua Ethereum utilizand GETH CLI

De data aceasta comanda a reușit și a fost returnată o chitanță de tranzacție! Oh da!

Deoarece suntem conectați la rețeaua Rinkeby, putem profita de exploratorul GUI Rinkeby pentru a verifica starea acestei tranzacții, consumul de gaz, prețul gazului etc.

  1. Deschide explorator
  2. Lipiți hashul chitanței tranzacției în bara de căutare
  3. Gata, am cheltuit 21.000 de gaze (standard pentru trimiterea de fonduri) și tranzacția a reușit!
1612055345 898 Cum sa transferati fonduri in reteaua Ethereum utilizand GETH CLI

Acum puteți interoga soldurile ambelor conturi și puteți vedea starea modificată:

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

Funcționează ca un farmec.

Felicitări! Tu:

  • am aflat diferența dintre Ether și Wei și cum să le convertim
  • a trimis prima dvs. tranzacție în rețeaua globală de testare Ethereum, Rinkeby

Puteți continua să vă extindeți abilitățile de blockchain construind una de la zero în Go! ”