Ethereum 69: hogyan állítson be egy teljesen szinkronizált blokklánc csomópontot 10 perc alatt

Üdvözöljük az új go-ethereum sorozatunk első cikkében!

A következő 10 percben:

  • Tanulja meg az első blokklánc-szótárt, az ökoszisztéma előzetes ismerete nélkül
  • Állítsa be a teljesen szinkronizált tesztelési csomópontot („ügyfél / szerver”) 10 perc alatt
  • Hozza létre a fiókját, és INGYEN kapjon 8ETH tranzakciót az Ethereum Alapítványtól

Mottónk: gyakorlat az elmélet előtt - szóval ugorjunk egy teljesen szinkronizált Ethereum tesztcsomópont telepítésére, amely egy Rinkeby teszthálózathoz kapcsolódik!

Gátban

A Geth egy parancssori felület (CLI), egy összeállított bináris, program és kliens a Go-ban megvalósított teljes Ethereum csomópont futtatásához.

A Geth szolgáltatást a következőkre fogjuk használni:

  • futtasson egy teljesen szinkronizált Ethereum csomópontot, hogy csatlakozzon a Rinkeby nevű teszthálózathoz
  • hozzon létre egy új fiókot tranzakciók küldésére és fogadására
  • az EVM állapot olvasásához, pl. bármely számla egyenlegének ellenőrzése (szeretné tudni, hogy a barátnője, barátja, felesége, szomszéda mekkora egyenleget tartalmaz? Édes átláthatóság!)

A Geth telepítése

Telepíthetjük közvetlenül a tárolókból:

Mac

sört csap ethereum / ethereum
brew install ethereum

Linux

sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa: ethereum / ethereum
sudo apt-get frissítés
sudo apt-get install ethereum

ablakok

Sok szerencsét :)

Ellenőrizze a telepítést:

melyik geth
> / usr / local / bin / geth
geth verzió
> Geth
> Verzió: 1.8.20-stabil

Ellenőrizze, hogy ugyanazt a verziót használja-e a Rinkeby-hálózat teljes szinkronizálásához, a következő lépésekben leírtak szerint, mivel Rinkeby egy állandó emberi erőforrást hajtott végre, amelyet a Geth 1.8.20 támogat. Ez a részletes blogbejegyzés további részleteket magyaráz, ha érdekel!

Blokklánc-csomópont futtatása

Nos, az ördög a részletekben van ... de az indulás valójában egyszerű. Kudos az Ethereum fejlesztõinek.

Állítsunk be egy új, teljesen szinkronizált Rinkeby (Ethereum teszthálózatot a Clique PoA protokoll használatával) csomópontot.

A Rinkeby PoA megvalósítása sokkal gyorsabb, de lényegesen kevésbé biztonságos. Ez jobban központosítva van a mainnet concensus PoW-től, amely teszthálózatként tökéletes. Rinkebynek sikerül új blokkot jóváhagynia egy 15 másodpercenként csomó tranzakcióval.

Rendben, rendben, rendben ... Mit jelentenek ezek a szavak?

  • Rinkeby: a hatósági igazolás teszthálózatának neve
  • Csomópont: alapvetően egy hagyományos szerver, amely Ethereum klienst / szervert hajt végre
  • Koncentráció: egy algoritmus, amely meghatározza, hogy a tranzakciók hogyan érvényesülnek, csatolódnak és megmaradnak az adatbázisban minden csomóponton
  • Blokk: egy csomó tranzakció egy bonyolult tömbben, amelyet a vezeték körül a hálózat minden csomópontja között 15 másodpercenként elküldnek
  • Tranzakció: ne gondoljon egy bank tranzakcióra. A blockchain tranzakció állapotváltozás. Az intelligens szerződés tulajdonosának átnevezése Alice-ről Bob-ra? Megváltoztatja a számlája egyenlegét 1ETH-ról 5ETH-ra? Beállítja az „foo” változó értékét „foo_value_123” értékre az intelligens szerződésben? Ez egy tranzakció.

A Rinkeby PoA javaslatáról itt olvashat bővebben: 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 = gyors

A fenti parancs:

  • inicializáljon egy új könyvtárat, ahol az összes adat a ~ / .gophersland_ethereum_r1 könyvtárban tárolódik. Az alapértelmezett könyvtár a következő lesz: ~ / .ethereum
  • kezdje el letölteni az Ethereum előzményeit, amely a hálózat új, teljesen érvényes, szinkronizált csomópontjához szükséges
  • a kommunikáció a 30304-es porton keresztül történik
  • a gyorsítótár, egyfajta puffer, 2 GB-ra lesz beállítva a szinkronizálási folyamat felgyorsítása érdekében
  • További RPC API elindul, így konzolokon keresztül kommunikálhatunk csomópontunkkal, a szép GUI-n keresztül a 8546-as porton, később

Várjon néhány órát, amíg a blokklánc teljesen szinkronizálódik.

A jelenlegi blokk száma szeptember 24-én: 3039786. Az AMD Ryzen 5 2600-on, 3,4 GHz-en a szinkronizálási folyamat 3 órát vett igénybe. Ó, igen, van egy új számítógépes játékom!

Közben követheti a GophersLand-t a Twitteren, vagy készíthet vacsorát, valószínűleg reggelit is, mehet az edzőterembe… mondjuk csak, a blockchain nem a leggyorsabb adatbázis :)

A nyomtatott üzenet végül:

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

Gratulálunk, kevesebb, mint 10 perc alatt részt vehetsz a blockchain forradalomban !!!

Az első blokklánc-fiók létrehozása

kulcstárát

Az Ethereum összes fiókját és kulcsát a „keytore” nevű könyvtárban tárolják. A könyvtár alapértelmezés szerint üres, mivel még nem hoztuk létre saját fiókunkat!

enchanter @ lukas-gaming: ~ $ ls -la ~ / .gophersland_ethereum_r1 /
drwx ------ 4 varázslatos varázsló 4096 szeptember 15:26.
drwxr-xr-x 18 varázsló varázsló 4096 szeptember 24 11:51 ..
drwx ------ 4 varázslatos varázsló 4096 szeptember 15:26
srw ------- 1 varázsló varázsló 0 szeptember 24 15:26 geth.ipc
drwx ------ 2 varázsló varázsló 4096 szeptember 23 09:54 kulcstároló
enchanter @ lukas-gaming: ~ $ ls -la ~ / .gophersland_ethereum_r1 / keystore /
drwx ------ 2 varázsló varázsló 4096 szeptember 23 09:54.
drwx ------ 4 varázslatos varázsló 4096 szeptember 15:26 ..

számla

Új fiók létrehozásához hajtsa végre a következő, már ismert, geth cmd-t.

geth --datadir = ~ / .gophersland_ethereum_r1 fiók új

A rendszer felkéri a jelszó beírására (ez a SZERKEZETI TITKOS JELSZÓ). Ez az új Ethereum-címhez társított, újonnan létrehozott privát kulcs visszafejtéséhez szükséges, mivel lehetővé teszi azt később a tranzakciók aláírásához a blockchain-on. Vegye fel valahol, mert később szükség lesz rá. De ne aggódjon, ha elfelejti, egyébként ez csak egy teszthálózat.

enchanter @ lukas-gaming: ~ $ ls -la ~ / .gophersland_ethereum_r1 / keystore /
drwx ------ 2 varázsló varázsló 4096 szeptember 23 09:54.
drwx ------ 4 varázslatos varázsló 4096 szeptember 15:26 ..
varázsló @ lukas-gaming: ~ $ geth --datadir = ~ / .gophersland_ethereum_r1 fiók új
INFO [09-24 | 15: 36: 33.566] A társak maximális száma ETH = 25 LES = 0 összesen = 25
Az új fiókod jelszóval van zárolva. Kérjük, adjon meg egy jelszót. Ne felejtse el ezt a jelszót.
jelmondatot:
Ismételje meg a jelmondatot:
Cím: {ceee57f2b700c2f37d1476a7974965e149fce2d4}
enchanter @ lukas-gaming: ~ $ ls -la ~ / .gophersland_ethereum_r1 / keystore /
drwx ------ 2 varázslatos varázsló 4096 szeptember 15:36.
drwx ------ 4 varázslatos varázsló 4096 szeptember 15:26 ..
-rw ------- 1 varázsló varázsló 491 szeptember 15:36
UTC - 2018-09-24T13-36-43.069452577Z - ceee57f2b700c2f37d1476a7974965e149fce2d4

Ju Hú! Az új Ethereum címem él: ceee57f2b700c2f37d1476a7974965e149fce2d4.

Általában ezt a „0x” előtaggal ellátott címet fogja találni, amely jelzi a HEX címkódolást.

A kulcsfájlok legújabb formátuma: UTC - - . A számlák sorrendje a jegyzékbe vételkor lexikográfiai jellegű, de az timespamp formátum következményeként valójában a létrehozás sorrendjében van.

Ha kíváncsi, hogy mi van a fájlban, nyugodtan nyissa meg! Meglátod:

  • Cím: az új hexa címe
  • Kriptoválás: csomó matematikai változó, amely felelős a személyes kulcs titkosított formában történő ábrázolásáért, most ne aggódjon a varázslat miatt

Érdekes megjegyzés: a fiókok létrehozása offline módban történik, és nem igényel szinkronizált blokklánc csomópontot. Kíváncsi, hogy hogyan lehet egyedi címet generálni offline módban műszaki szempontból? Magát a go-ethereum forráskódot a következő cikkben vizsgáljuk meg.

Spoiler: azért van, mert a cím a nyilvános kulcs kivonata, amely az egyedi, magán kulcsán alapul.

Oké, van egy új shinny Ethereum számlám, mi az egyensúlyom és hogyan helyezhetek el egy tesztelő étert?

Éterről beszélve ... mi ez valójában?

Éter

Az éter az Ethereum hálózatot tápláló kriptovaluta. Érték egységként és a bányászok fizetésére használják fel a tranzakciók kollektív DB-hez való érvényesítéséhez, hozzáfűzéséhez és megőrzéséhez. De elsősorban a SPAM megelőzésének technikája, mivel a bányászok minden (sikeresen bányászott) blokkért 5 (az előző hónap óta „csak” 3) ETH jutalmat kapnak. Igen, ez 600 USD a jelenlegi áron szeptember 24-én, minden 15. másodpercenként. Nem rossz üzlet.

Hogyan kaphat INGYEN 8ETH tranzakciót az Ethereum Alapítványtól

A számlaegyenleg ellenőrzése

Győződjünk meg róla, hogy számlánk egyenlege először 0, kivéve, ha valaki már sikerült valami étert elküldeni szívéből.

Geth egy JavaScript konzolt kínál, amely csatolható a végrehajtható bináris fájlhoz a blokklánccal való kényelmes együttműködés érdekében. Csatlakozhatunk ahhoz, ha megadunk egy socket fájlt, amely a Geth indulásakor lesz látható. A socket fájlok nagyon hasznosak „ugyanazon a gépen zajló folyamatközi kommunikációhoz”, más néven IPC.

Ezt a fájlt az alapértelmezett adatkönyvtárban találhatja meg a Geth program futása közben:

enchanter @ lukas-gaming: ~ $ ls -la ~ / .gophersland_ethereum_r1 /
drwx ------ 4 varázslatos varázsló 4096 szeptember 24 15:44.
drwxr-xr-x 18 enchanter varázsló 4096 szeptember 24 15:47 ..
drwx ------ 4 varázslatos varázsló 4096 szeptember 24 15:44
srw ------- 1 varázslatos varázsló 0 szeptember 24. 15:44 geth.ipc
drwx ------ 2 varázsló varázsló 4096 szeptember 24 15:47 kulcstároló

Vegyünk kapcsolatba a Rinkeby hálózattal a „geth csatolás” cmd segítségével egy másik terminálon, amíg a blokklánc-csomópontja még mindig fut. Ügyeljen arra, hogy adja át az abszolút útvonalat az IPC fájlhoz, különben hibaüzenetet kap.

enchanter @ lukas-gaming: ~ $ geth csatolni ipc: /home/enchanter/.gophersland_ethereum_r1/geth.ipc
Üdvözöljük a Geth JavaScript konzolban!
Például: Geth / v1.8.15-stabil-89451f7c / linux-amd64 / go1.10.1
coinbase: 0xceee57f2b700c2f37d1476a7974965e149fce2d4
blokknál: 3044891 (Hétfő, 2018. szeptember 24. 16:42:36 CEST)
datadir: /home/enchanter/.gophersland_ethereum_r1
modulok: admin: 1.0 kattintás: 1.0 hibakeresés: 1.0 eth: 1.0 bányász: 1.0 net: 1.0 személyes: 1.0 RPC: 1.0 txpool: 1.0 web3: 1.0
> eth.accounts
[ "0xceee57f2b700c2f37d1476a7974965e149fce2d4"]
> eth.syncing
hamis
> eth.getBalance ("0xceee57f2b700c2f37d1476a7974965e149fce2d4")
0

Lekérdezés láncszeme:

eth.accounts: a jelenleg elérhető fiókok ellenőrzése

eth.syncing: Az állapotunk biztosítása érdekében a DB teljes mértékben naprakész a hálózat többi részével annak biztosítása érdekében, hogy a getBalance válasz a legfrissebb állapoton alapuljon

eth.getBalance (“

8ETH tranzakció fogadása INGYEN az Ethereum Alapítványtól

Az Ethereum Alapítvány egy nagyon ügyes, „Csaptelep” programmal rendelkezik, amely online elérhető az Ether hozzárendeléséhez olyan fiókokhoz, amelyek valós időben kérik.

Éter kérése:

  1. Tegye közzé fiókja címét az egyik nyilvános közösségi hálózaton
  2. E.g, tegyen közzé egy olyan tweetet, amely tartalmazza az Ethereum-címét, bárhol a tweetben, mint például ez: https://twitter.com/EnchanterIO/status/1044238559224483841, feltétlenül jelölje meg a @BlocksByLukas és a @freeCodeCamp címkét, és tudassa velünk, ha tetszik az oktató!
  3. Nyissa meg a https://www.rinkeby.io/#faucet elemet, és illessze be a tweet URL-t
  4. Kattintson a „Add me Ether” elemre, válassza a 3, 7,5 vagy 18,75 éter közül
  5. Várjon néhány másodpercet
  6. Lekérdezzük újra a fiók egyenlegét
Rinkeby csaptelep

Voálá

Gazdag vagy ... egy teszthálózatban. Gratulálunk azért, hogy eddig eljutottál. További tartalom hamarosan megjelenik!

Folytassa a tanfolyamomat: Ethereum 101

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