Ethereum 69: Tamamilə Sinxronlaşdırılmış Blockchain Nodu 10 dəqiqədə necə qurmaq olar?

Yeni go-ethereum seriyamızın ilk məqaləsinə xoş gəlmisiniz!

Növbəti 10 dəqiqədə:

  • Ekosistemlər barədə əvvəlcədən məlumatı olmayan ilk blok zəncirvari lüğəti öyrənin
  • Tamamilə sinxronizasiya olunmuş test nodunu ("müştəri / server") 10 dəqiqədən az müddətdə qurun
  • Hesabınızı yaradın və PULSUZ Ethereum Vəqfindən 8ETH əməliyyatı əldə edin

Şüarımız "nəzəriyyədən əvvəl tətbiqetmə" dir. Beləliklə, Rinkeby test şəbəkəsinə qoşulmuş tam sinxronlaşdırılmış Ethereum test nodu quraşdırmağa başlayaq.

Geth

Geth, Go-da tətbiq olunan tam bir Ethereum düyününün işlədilməsi üçün tərtib edilmiş ikili, proqram və müştəri xətti interfeysidir (CLI).

Geth'i aşağıdakılar üçün istifadə edəcəyik:

  • Rinkeby adlı bir test şəbəkəsinə qoşulmaq üçün tam sinxronizasiya olunmuş bir Ethereum nodu çalıştırın
  • Əməliyyatlar göndərmək və qəbul etmək üçün yeni bir hesab yaradın
  • EVM vəziyyətini oxumaq üçün, məsələn bir hesab balansının yoxlanılması (rəfiqənizin, sevgilinizin, arvadınızın və ya qonşunuzun nə qədər hesab balansı olduğunu bilmək istəyirsiniz? şirin şəffaflıq!)

Geth'i quraşdırın

Onu birbaşa depodan qura bilərik:

Makintoş

Brewer Ethereum / Ethereum Brew Ethereum quraşdırırsınız

Linux

sudo apt-get install software-properties-common sudo add-apt-repository -y ppa: ethereum / ethereum sudo apt-get update sudo apt-get install ethereum

Windows

Uğurlar :)

Quraşdırmanı yoxlayın:

hansı geth> / usr / local / bin / geth
geth version> Geth> Version: 1.8.20-stabil

Rinkeby'nin Geth 1.8.20 tərəfindən dəstəklənən bir Constantinople sərt çəngəlini çalıştırdığı üçün növbəti addımlarda təsvir edildiyi kimi bir Rinkeby şəbəkəsinin tam senkronizasyonunu edə bilmək üçün eyni versiyanı işlədiyinizə əmin olun. Maraqlısınızsa, bu ətraflı blog yazısında daha çox məlumat əldə edin!

Bir blockchain nodu işlədir

Şeytan təfərrüatlarda ... amma işə başlamaq həqiqətən çox asandır. Ethereum inkişaf etdiricilərinə şükürlər.

Yeni bir tamamilə sinxronizasiya edilmiş Rinkeby nodu quraq (Clique PoA protokolunu istifadə edən Ethereum test şəbəkəsi).

Rinkeby PoA-nın tətbiqi çox daha sürətli, lakin daha az etibarlıdır. Bir test şəbəkəsi kimi mükəmməl olan Mainnet Concensus PoW-dan daha mərkəzlidir. Rinkeby hər 15 saniyədə bir sıra əməliyyatlarla yeni bir bloku təsdiqləməyi bacarır.

Tamam, tamam, tamam ... bu sözlər əslində nə deməkdir?

  • Rinkeby: Authority Proof test şəbəkəsinin adı
  • Düyün: Əsasən Ethereum müştəri / server işləyən ənənəvi bir server
  • Uyğunluq: Verilənlər bazasındakı hər bir qovşaqdakı əməliyyatların necə təsdiqləndiyini, əlavə olunduğunu və davam etdiyini təyin edən bir alqoritm
  • Blok: Şəbəkənin bütün qovşaqları arasında hər 15 saniyədə bir tel üzərində paylanan bir sıra kompleks əməliyyatlar
  • Əməliyyat: Bank köçürməsi barədə düşünməyin. Blockchain əməliyyatı, vəziyyətdəki bir dəyişiklikdir. Ağıllı bir müqavilənin sahibini Alice'den Boba dəyişdirin? Balansı 1ETH-dən 5ETH-ə dəyişdirin? Ağıllı müqavilənizdə "foo" dəyişənini "foo_value_123" olaraq təyin etmisiniz? Bu bir əməliyyatdır.

Rinkeby PoA təklifi haqqında daha çox məlumatı burada tapa bilərsiniz: 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 = fast

Yuxarıdakı əmr:

  • Bütün məlumatları ~ / .gophersland_ethereum_r1-də saxlayacaq yeni bir qovluğu işə salın. Varsayılan qovluq: ~ / .ethereum olacaqdır
  • Şəbəkənin yeni, tam etibarlı, sinxronizasiya olunmuş bir qovşağı olması üçün tələb olunan Ethereum tarixçəsini yükləməyə başlayın.
  • Rabitə 30304 portu vasitəsilə həyata keçirilir
  • Sinxronizasiya prosesini sürətləndirmək üçün bir növ tampon olan Cache 2 GB olaraq təyin edildi
  • Daha sonra konsollar və 8546 portunda gözəl bir qrafik istifadəçi interfeysi vasitəsilə qovşağımızla əlaqə qura biləcəyimiz üçün əlavə bir RPC API başlayır.

Blok zəncirinin tam sinxronlaşması üçün bir neçə saat gözləyin.

24 sentyabrdan etibarən mövcud blok nömrəsi: 3039786. Mənim AMD Ryzen 5 2600-də 3.4 GHz-lə sinxronizasiya prosesi 3 saat çəkdi. Bəli, yeni bir oyun kompüterim var!

Bu vaxt GophersLand-ı Twitter-də izləyə və ya nahar hazırlaya bilərsiniz, yəqin ki, səhər yeməyi də. İdman salonuna gedin. Deyək ki, blockchain ən sürətli verilənlər bazası deyil. :)

Nəhayət çap olunmuş mesaj belə olacaq:

  • Məlumat [ ] İdxal olunan yeni zəncir seqmentlərinin sayı = 1
  • Məlumat [ ] İdxal olunan yeni zəncir seqmentlərinin sayı = 1
  • Məlumat [ ] İdxal olunan yeni zəncir seqmentlərinin sayı = 1
  • Məlumat [ ] İdxal olunan yeni zəncir seqmentlərinin sayı = 1

Təbrik edirəm, artıq 10 dəqiqədən az bir müddətdə blok zənciri inqilabının bir hissəsiniz !!!

İlk blok hesabınızı yaradın

Əsas yaddaş

Bütün Ethereum hesabları və açarları "Keystore" adlı bir qovluqda saxlanılır. Hələ öz hesabımızı yaratmadığımız üçün qovluq varsayılan olaraq boşdur!

Enchanter @ Lukas-Gaming: ~ $ ls -la ~ / .gophersland_ethereum_r1 /
drwx ------ 4 Enchanter Enchanter 4096 24 sentyabr 15: 26pm. drwxr-xr-x 18 enchanter enchanter 4096 24 sentyabr 11:51 .. drwx ------ 4 enchanter enchanter 4096 sentyabr 24 15:26 pm geth srw ------- 1 enchanter enchanter 0 24 sentyabr, 15 : 26 geth.ipc drwx ------ 2 Enchanter Enchanter 4096 23 sentyabr 09:54 Keystore
Enchanter @ Lukas-Gaming: ~ $ ls -la ~ / .gophersland_ethereum_r1 / keystore /
drwx ------ 2 Enchanters Enchanters 4096 23 sentyabr 9:54. drwx ------ 4 Enchanter Enchanter 4096 24 sentyabr 15:26.

hesab

Yeni bir hesab yaratmaq üçün aşağıdakı tanış geth cmd əmrini çalıştırın.

geth --datadir = ~ / .gophersland_ethereum_r1 hesabı yeni

Sizdən bir parol daxil etməyiniz istənəcək (bu SUPER GİZLİ ŞİFRƏSİNİZDİR). Bu, yeni Ethereum adresinizlə əlaqəli yeni yaradılan xüsusi açarın şifrəsini açmaq üçün tələb olunur, çünki daha sonra blok zəncirində əməliyyatlar imzalamaq üçün istifadə edə bilərsiniz. Sonradan ehtiyacımız olacağı üçün bir yerdə qeyd edin. Ancaq unutursan narahat olma, bu hər halda sadəcə bir sınaq şəbəkəsidir.

Enchanter @ Lukas-Gaming: ~ $ ls -la ~ / .gophersland_ethereum_r1 / keystore /
drwx ------ 2 Enchanters Enchanters 4096 23 sentyabr 9:54. drwx ------ 4 Enchanter Enchanter 4096 24 sentyabr 15:26.
enchanter @ lukas-gaming: ~ $ geth --datadir = ~ / .gophersland_ethereum_r1 hesabı yeni
BİLGİ [09-24 | 15: 36: 33.566] Maksimum həmyaşıd sayı ETH = 25 LES = 0 cəmi = 25
Yeni hesabınız parol ilə kilidlənib. Zəhmət olmasa bir parol daxil edin. Bu parolu unutma.
Parol: Təkrar parol:
Ünvan: {ceee57f2b700c2f37d1476a7974965e149fce2d4}
Enchanter @ Lukas-Gaming: ~ $ ls -la ~ / .gophersland_ethereum_r1 / keystore /
drwx ------ 2 Enchanter Enchanter 4096 24 sentyabr 15:36. drwx ------ 4 Enchanter Enchanter 4096 24 sentyabr 15:26 .. -rw ------- 1 Enchanter Enchanter 491 24 sentyabr 15:36
UTC - 2018-09-24T13-36-43.069452577Z - ceee57f2b700c2f37d1476a7974965e149fce2d4

Voohoo! Yeni Ethereum adresim canlıdır: ceee57f2b700c2f37d1476a7974965e149fce2d4.

Adətən bu ünvan ünvan kodlaşdırmasını (HEX) göstərmək üçün "0x" ilə əlavə olunur.

Açar sənədlərin son formatı: UTC - - . Siyahıdakı hesabların sırası leksikoqrafiyadır. Zaman pampası formatına görə, bunlar yaradıldıqları sırada sıralanır.

Faylda olanlarla maraqlanırsınızsa, onu daima aça bilərsiniz! Görəcəksiniz:

  • Ünvan: yeni hex adresiniz
  • Kripto: Şəxsi açarınızı şifrəli formada təmsil etməkdən məsul olan bir sıra riyazi dəyişənlər toplusu. Hələlik bu sehrdən narahat olma

Maraqlı qeyd: Hesab yaratma oflayn rejimdə aparılır və sinxronlaşdırılmış blok zənciri düyünü tələb etmir. Oflayn rejimdə bənzərsiz bir ünvan yaratmaq üçün texniki cəhətdən necə mümkün olduğunu merak edirsiniz? Növbəti məqalədə go-ethereum-un mənbə kodunu özümüz nəzərdən keçirəcəyik.

Spoiler: Bunun səbəbi ünvanın unikal, xüsusi açarınıza əsaslanan açıq açarınızın bir qarışığı olmasıdır.

Tamam, yeni bir parlaq Ethereum hesabım var. Kreditim nə qədər yüksəkdir və test efirlərini necə yerləşdirə bilərəm?

Efirdən danışanda ... əslində nədir?

efir

Ether, Ethereum şəbəkəsini gücləndirən kriptovalyutadır. Bu dəyər vahidi olaraq və kollektiv verilənlər bazası üçün əməliyyatları təsdiqləmək, əlavə etmək və davam etdirmək üçün madencilerin ödəməsi üçün istifadə olunur. Lakin əsasən SPAM-ın qarşısını almaq üçün bir metoddur, çünki madenciler uğurla çıxarılan hər blok üçün 5 (keçən aydan bəri "yalnız" 3) ETH alır. Bəli, bu, hər 15 ildə 24 sentyabrda mövcud qiymətlə 600 dollardır. Pis bir razılaşma deyil.

Ethereum Vəqfindən PULSUZ 8ETH əməliyyatı necə əldə etmək olar

Hesab balansınızı yoxlayın

Gəlin kimsə yaxşı bir səbəblə efir göndərməyi bacarmadığı təqdirdə balansımızın əvvəlcə 0 olduğuna əmin olaq.

Geth, blok zənciri ilə rahat qarşılıqlı əlaqə üçün ikili yürütülebilir cihaza əlavə edilə bilən bir JavaScript konsolu təqdim edir. Geth işə başladıqdan sonra istifadəyə veriləcək bir yuva sənədini təyin edərək əlaqə qura bilərik. Soket faylları, eyni kompüterdəki IPC olaraq da bilinən proseslər arasında əlaqə üçün çox faydalıdır.

Geth proqramı işləyərkən bu faylı standart məlumat qovluğunda tapa bilərsiniz:

Enchanter @ Lukas-Gaming: ~ $ ls -la ~ / .gophersland_ethereum_r1 /
drwx ------ 4 Enchanters Enchanters 4096 24 sentyabr 15:44. drwxr-xr-x 18 Enchanter Enchanter 4096 24 sentyabr 3:47 .. drwx ------ 4 Enchanter Enchanter 4096 24 sentyabr 15:44 geth srw ------- 1 Enchanter Enchanter 0 Sep 24 15: 44 geth.ipc drwx ------ 2 Enchanter Enchanter 4096 24 sentyabr 15:47 Keystore

Blok zənciriniz hələ işləyərkən başqa bir terminalda "geth attach" əmr ardıcıllığını istifadə edərək rinkeby şəbəkəsi ilə qarşılıqlı əlaqə quraq. Mütləq yolu IPC sənədinə keçdiyinizə əmin olun, əks halda bir səhv mesajı görünəcəkdir.

Enchanter @ Lukas-Gaming: ~ $ əlavə Geth IPC: /home/enchanter/.gophersland_ethereum_r1/geth.ipc
Geth JavaScript Konsoluna xoş gəlmisiniz!
Misal: Geth / v1.8.15-stabil-89451f7c / linux-amd64 / go1.10.1 Sikkə bazası: 0xceee57f2b700c2f37d1476a7974965e149fce2d4 blokda: 3044891 (Pzt, 24 sentyabr 2018, 16:42:36, CEST)
datadir: /home/enchanter/.gophersland_ethereum_r1 modulu: admin: 1.0 klik: 1.0 debug: 1.0 eth: 1.0 miner: 1.0 net: 1.0 personal: 1.0 rpc: 1.0 txpool: 1.0 web3: 1.0
> eth.accounts ["0xceee57f2b700c2f37d1476a7974965e149fce2d4"]
> et.syncing səhv
> eth.getBalance ("0xceee57f2b700c2f37d1476a7974965e149fce2d4") 0

Sorğu blok zənciri:

eth.accounts: mövcud hesablarınızı yoxlamaq

et.syncing: DB-dəki statusumuzun şəbəkənin qalan hissəsi ilə tamamilə eyni olmasını təmin etmək üçün getBalance cavabının son vəziyyətə əsaslandığından əmin olmalıyıq

eth.getBalance (" "): verilənlər bazasını sorğu etmək.

Ethereum Vəqfindən PULSUZ 8ETH əməliyyat alacaqsınız

Ethereum Vəqfi, onlayn olaraq mövcud olan "Faucet" adlı çox dəqiq bir proqrama sahibdir ki, bu da onu real vaxtda tələb edən Eter hesablarını təyin etmək üçün istifadə edilə bilər.

Eter tələb edin:

  1. Hesab ünvanınızı ümumi sosial şəbəkələrdən birində dərc edin
  2. Məsələn, Ethereum adresinizlə tweetinizin bir yerində belə bir tweet göndərin https://twitter.com/EnchanterIO/status/1044238559224483841, @BlocksByLukas və @freeCodeCamp-ı tanıdığınızdan əmin olun və əgər etdiyinizi bizə bildirin. Tutorial kimi!
  3. Https://www.rinkeby.io/#faucet açın və tweet url yapışdırın
  4. "Mənə Eter ver" düyməsini vurun və 3, 7.5 və ya 18.75 Eter arasında seçim edin
  5. Bir neçə saniyə gözləyin
  6. Hesab balansınızı yenidən yoxlayın
Rinkeby kran

Voilà

Zənginsiniz ... bir test şəbəkəsində. İndiyə qədər gəldiyiniz üçün sizi təbrik edirəm. Daha çox məzmunu qısa müddətdə izləyəcək!

Kursuma davam et: Ethereum 101

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