Ethereum 69: kuidas täielikult sünkroonitud plokiahelasõlm üles seada 10 minutiga

Tere tulemast meie uue go-ethereum seeria esimesse artiklisse!

Järgmise 10 minuti jooksul:

  • Õppige esimest plokiahela sõnastikku ilma eelneva ökosüsteemi teadmiseta
  • Seadistage täielikult sünkroonitud testimissõlm (klient / server) vähem kui 10 minuti pärast
  • Looge oma konto ja saatke sihtasutusest Ethereum TASUTA 8ETH tehing

Meie moto on: harjuta enne teooriat - hüppame siis otse Rinkeby testivõrku ühendatud täielikult sünkroniseeritud Ethereumi testimissõlme installimisse!

Geth

Geth on käsuribaliides (CLI), kompileeritud binaar-, programm- ja klientprogramm Goes rakendatud täieliku Ethereumi sõlme käitamiseks.

Kasutame Gethi aadressil:

  • käivitage täielikult sünkroonitud Ethereumi sõlm, et luua ühendus testvõrguga, mille nimi on Rinkeby
  • looge uus konto tehingute saatmiseks ja vastuvõtmiseks
  • EVM-i oleku lugemiseks, nt. mis tahes konto saldo kontrollimine (soovite teada, kui palju teie sõbrannal, poiss-sõbral, naisel, naabril on saldo? Magus läbipaistvus!)

Gethi installimine

Saame selle installida otse hoidlatest:

Mac

pruulima kraan ethereum / ethereum
pruulima installima ethereum

Linux

sudo apt-get install tarkvara-omadused-ühine
sudo add-apt-repository -y ppa: ethereum / ethereum
sudo apt-get update
sudo apt-get install ethereum

Windows

Edu :)

Kontrollige installimist:

mis geti
> / usr / kohalik / bin / geth
geth versioon
> Geth
> Versioon: 1.8.20-stabiilne

Veenduge, et kasutate sama versiooni, et saaksite Rinkeby võrgu täieliku sünkroonimise teostada, nagu on kirjeldatud järgmistes etappides, kuna Rinkeby toimis pidevas inimeste kõvavormis, mida toetab Geth 1.8.20. See üksikasjalik blogipostitus selgitab üksikasju, kui olete huvitatud!

Blokeerimissõlme käitamine

Noh, kurat on üksikasjades ... aga alustamine on tegelikult lihtne. Kudos Ethereumi arendajatele.

Seadistame uus täielikult sünkroonitud Rinkeby (Ethereumi testvõrk, mis kasutab Clique PoA protokolli) sõlm.

Rinkeby PoA juurutamine on palju kiirem, kuid oluliselt vähem turvaline. See on rohkem tsentraliseeritud mahtvõrgust concensus PoW, mis on testvõrgustikena täiesti hea. Rinkeby suudab uue ploki heaks kiita koos hunniku tehingutega iga 15 sekundi tagant.

Ok, ok, ok ... Mida need sõnad tegelikult tähendavad?

  • Rinkeby: volituse tõendamise testvõrgu nimi
  • Sõlm: põhimõtteliselt traditsiooniline server, mis täidab Ethereumi klienti / serverit
  • Kontsentus: algoritm, mis määratleb tehingute valideerimise, lisamise ja püsimise andmebaasis igal sõlmel
  • Plokk: hunnik tehinguid keerulises massiivis, mis saadetakse traadi ümber võrgu kõigi sõlmede vahel iga 15 sekundi tagant
  • Tehing: ärge mõelge pangatehingule. Plokiahela tehing on oleku muutus. Nutika lepingu omaniku nimetamine Alice'ist Bobiks? Kas muudate oma konto saldot 1ETH-lt 5ETH-le? Kas seate nutika lepingu muutuja „foo” väärtuseks väärtuse „foo_value_123”? See on tehing.

Rinkeby PoA ettepaneku kohta saate rohkem lugeda siit: https://github.com/ethereum/EIPs/issues/225

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

Ülaltoodud käsk:

  • lähtestage uus kataloog, kus kõik andmed salvestatakse kausta ~ / .gophersland_ethereum_r1. Vaikekataloog oleks: ~ / .ethereum
  • alustage Ethereumi ajaloo allalaadimist, mis on vajalik võrgu uue täielikult kehtiva sünkroonitud sõlme saamiseks
  • Side toimub sadama 30304 kaudu
  • vahemälu, mis on mingi puhver, valitakse sünkroonimisprotsessi kiirendamiseks 2 GB-ni
  • käivitub täiendav RPC API, et saaksime oma sõlmega suhelda konsoolide kaudu, kena GUI kaudu pordis 8546, hiljem

Oodake paar tundi, kuni plokiahel on täielikult sünkroonitud.

Praegune ploki number 24. septembri seisuga on: 3039786. Minu AMD Ryzen 5 2600, 3,4 GHz, sünkroonimisprotsess võttis 3 tundi. Oh jah, mul on uus mänguarvuti!

Vahepeal saate GophersLandi jälgida Twitteris või valmistada õhtusööki, tõenäoliselt ka hommikusööki, minna trenni ... olgu öeldud, blockchain ei ole kiireim andmebaas :)

Lõpuks trükitakse järgmine teade:

  • INFO [
  • INFO [
  • INFO [
  • INFO [

Palju õnne, nüüd olete vähem kui 10 minuti jooksul osa blockchaini revolutsioonist !!!

Oma esimese plokiahela konto loomine

Võtmepood

Kõik Ethereumi kontod ja nende võtmed salvestatakse kataloogis, mida nimetatakse “võtmehoidjaks”. Kataloog on vaikimisi tühi, kuna me pole veel oma kontot loonud!

võlur @ lukas-mängimine: ~ $ ls -la ~ / .gophersland_ethereum_r1 /
drwx ------ 4 nõustaja nõustaja 4096 24. september 15:26.
drwxr-xr-x 18 nõustaja nõustaja 4096 24. september 11:51 ..
drwx ------ 4 enchanter enchanter 4096 sep 24 15:26 get
srw ------- 1 nõustaja nõustaja 0 sept 24 15:26 geth.ipc
drwx ------ 2 nõustaja nõustaja 4096 sept 23 09:54 võtmehoidja
võlur @ lukas-mängimine: ~ $ ls -la ~ / .gophersland_ethereum_r1 / keytore /
drwx ------ 2 nõustaja nõustaja 4096 23. september 09:54.
drwx ------ 4 nõustaja nõustaja 4096 24. september 15:26.

Konto

Uue konto loomiseks käivitage järgmine, juba tuttav, geti cmd.

geth --datadir = ~ / .gophersland_ethereum_r1 konto uus

Teil palutakse sisestada parool (see on teie salastatuse salasõna). See on vajalik teie uue Ethereumi aadressiga seotud värskelt loodud privaatvõtme dekrüptimiseks, kuna see võimaldab teil seda hiljem kasutada tehingute allkirjastamiseks plokiahelas. Pange see kuskile tähele, kuna seda vajame hiljem. Kuid ärge muretsege, kui selle unustate, see on nagunii lihtsalt testvõrk.

võlur @ lukas-mängimine: ~ $ ls -la ~ / .gophersland_ethereum_r1 / keytore /
drwx ------ 2 nõustaja nõustaja 4096 23. september 09:54.
drwx ------ 4 nõustaja nõustaja 4096 24. september 15:26.
võlur @ lukas-gaming: ~ $ geth --datadir = ~ / .gophersland_ethereum_r1 konto uus
INFO [09-24 | 15: 36: 33.566] Maksimaalne eakaaslaste arv ETH = 25 LES = 0 kokku = 25
Teie uus konto on parooliga lukustatud. Palun andke parool. Ärge unustage seda parooli.
Parool:
Korda parooli:
Aadress: {ceee57f2b700c2f37d1476a7974965e149fce2d4}
võlur @ lukas-mängimine: ~ $ ls -la ~ / .gophersland_ethereum_r1 / keytore /
drwx ------ 2 nõustaja nõustaja 4096 24. september 15:36.
drwx ------ 4 nõustaja nõustaja 4096 24. september 15:26.
-rw ------- 1 nõustaja nõustaja 491 sept 24 15:36
UTC - 2018-09-24T13-36-43.069452577Z - ceee57f2b700c2f37d1476a7974965e149fce2d4

Woohoo! Minu uus Ethereumi aadress on elus: ceee57f2b700c2f37d1476a7974965e149fce2d4.

Tavaliselt ilmub see aadress, mille eesliideks on „0x”, et näidata aadressi kodeeringut, HEX.

Võtmefailide uusim vorming on: UTC - - . Kontode järjekord loendis loetlemisel on leksikograafiline, kuid ajareklaami vormingu tagajärjel on see tegelikult loomise järjekorras.

Kui teil on huvi faili sees, avage see julgelt! Sa näed:

  • Aadress: teie uus kuue aadress
  • Krüpto: hulk matemaatilisi muutujaid, kes vastutavad teie privaatvõtme kuvamise eest krüptitud kujul, ärge nüüd muretsege selle maagia pärast

Huvitav märkus: konto genereerimine toimub võrguühenduseta režiimis ega vaja sünkroonitud plokiahela sõlme. Huvitav, kuidas on tehnilises plaanis võimalik luua unikaalses olekus ainulaadne aadress? Go-ethereumi lähtekoodi uurime järgmises artiklis.

Spoiler: põhjus on selles, et aadress on teie avaliku võtme räsi, mis põhineb teie ainulaadsel privaatsel võtmel.

Okei, mul on uus särav Ethereumi konto, mis on minu saldo ja kuidas ma saan hoiule mõne testimise eetri?

Eetrist rääkides ... mis see tegelikult on?

Eetris

Eeter on Ethereumi võrku toitev krüptovaluuta. Seda kasutatakse väärtusühikuna ja demineerijatele maksmiseks tehingute kinnitamiseks, lisamiseks ja säilitamiseks ühisesse DB. Kuid peamiselt see on rämpsposti vältimise tehnika, sest kaevandajatele antakse iga edukalt kaevandatud ploki eest 5 (alates eelmisest kuust “vaid” 3) ETH-d. Jah, see on 600 dollarit praeguse hinnaga 24. septembril iga 15 sekundi tagant. Pole paha äri.

Kuidas saada sihtasutuselt Ethereum TASUTA 8ETH-i tehingut

Konto saldo kontrollimine

Veenduge kõigepealt, et meie konto saldo oleks 0, kui keegi ei suutnud juba oma südames head eetrit saata.

Geth pakub JavaScripti konsooli, mille saab käitatava binaari külge kinnitada, et blokeeringuga mugavalt suhelda. Saame sellega ühenduse luua, täpsustades pistikupesa faili, mis paljastatakse, kui Geth käivitub. Pistikupesafailid on väga kasulikud protsessidevahelise suhtluse jaoks samas masinas ehk IPC.

Selle faili leiate vaikimisi andmekataloogist, kui programm Geth töötab:

võlur @ lukas-mängimine: ~ $ ls -la ~ / .gophersland_ethereum_r1 /
drwx ------ 4 nõustaja nõustaja 4096 24. september 15:44.
drwxr-xr-x 18 nõustaja nõustaja 4096 24. september 15:47 ..
drwx ------ 4 enchanter enchanter 4096 24. sept 15:44 get
srw ------- 1 nõustaja nõustaja 0 24. september 15:44 geth.ipc
drwx ------ 2 nõustaja võlur 4096 24. september 15:47 võtmehoidja

Suhtleme Rinkeby võrguga, kasutades teises terminalis cmd-d „geth pievienot”, kuni teie blokeerimissõlm endiselt töötab. Sisestage kindlasti IPC-faili absoluutne tee, vastasel juhul saate tõrke.

nõiutaja @ lukas-mängimine: ~ $ lisage ipc: /home/enchanter/.gophersland_ethereum_r1/geth.ipc
Tere tulemast Gethi JavaScripti konsooli!
näide: Geth / v1.8.15-stabiilne-89451f7c / linux-amd64 / go1.10.1
mündibaas: 0xceee57f2b700c2f37d1476a7974965e149fce2d4
plokis: 3044891 (esmaspäev, 24. september 2018 16:42:36 CEST)
datadir: /home/enchanter/.gophersland_ethereum_r1
moodulid: admin: 1.0 klikk: 1.0 silumine: 1.0 eth: 1.0 kaevandaja: 1.0 net: 1.0 isiklik: 1.0 RPC: 1.0 txpool: 1.0 web3: 1.0
> eth.kontod
["0xceee57f2b700c2f37d1476a7974965e149fce2d4"]
> eth.syncing
vale
> eth.getBalance ("0xceee57f2b700c2f37d1476a7974965e149fce2d4")
0

Päringu plokiahel:

eth.accounts: praegu saadaolevate kontode kontrollimiseks

eth.syncing: meie oleku tagamiseks on DB ülejäänud võrguga täielikult kursis, tagamaks, et vastus getBalance põhineb viimasel olekul

eth.getBalance (“”): andmebaasist päringute tegemiseks.

8ETH-i tehingu saamine sihtasutuselt Ethereum TASUTA

Ethereumi sihtasutusel on veebis saadaval väga kena programm nimega “Segis” Eetri määramiseks kontodele, mis seda reaalajas taotlevad.

Eetri taotlemine:

  1. Avaldage oma konto aadress ühes avalikus suhtlusvõrgustikus
  2. E.g, postitage oma Ethereumi aadressi sisaldav säutsu kuhu tahes sellisesse säutsu nagu see https://twitter.com/EnchanterIO/status/1044238559224483841, märkige kindlasti @BlocksByLukas ja @freeCodeCamp ja andke meile teada, kas teile õpetus meeldib!
  3. Avage https://www.rinkeby.io/#faucet ja kleepige säutsu URL
  4. Klõpsake nupul „Anna mulle eeter”, valige 3, 7,5 või 18,75 eetri vahel
  5. Oota paar sekundit
  6. Pärige oma konto saldo uuesti
Rinkeby kraan

Voilà

Olete rikas… testimisvõrgustikus. Palju õnne nii kaugele jõudmise puhul. Rohkem sisu varsti!

Jätkake minu kursusel: Ethereum 101

https://www.lukaslukac.io/courses/ethereum-101-glossary-smart-contracts-tests-frameworks