Kaip stebėti savo „Eth2“ ​​tikrintuvą ir analizuoti P&L

1 dienoraštisNewsDevelopersEnterpriseBlockchain ExplainedEvents and ConferencesPressNaujienlaiškiai

Užsiprenumeruokite mūsų naujienlaiškį.

Elektroninio pašto adresas

Mes gerbiame jūsų privatumą

Pagrindinis dienoraštisKūrėjai

Kaip stebėti savo Eth2 tikrintuvą ir analizuoti savo P&L

pateikė Coogan Brennan 2021 m. sausio 15 d. paskelbta 2021 m. sausio 15 d

Mano kelionė į „Ethereum 2“ tikrintojo tapimą 2 0 3 dalis

Jei esate naujokas šioje serijoje, kaip paleisti savo „Eth2“ ​​tikrintuvą, būtinai patikrinkite 1 ir 2 dalis. Visi turėtumėte patikrinti Beno Edgingtono Eth2.News naujienlaiškis farba svarbiausi būsimo plano naujiniai, klaidų taisymai ir naujienos. Mūsų „Eth2“ ​​žinių bazė yra naudinga, jei jums reikia daugiau informacijos apie pagrindinius terminus, etapus ir „ConsenSys“ Eth2 produktus.

Įvadas 

Praėjo pusantro mėnesio, kai prasidėjo „Ethereum 2.0 Beacon“ grandinės genezė. Jau buvo įtraukta 2 515 170 ETH (apie 2,9 mlrd. USD pagal dabartinę rinkos normą) su 61 561 unikaliu patvirtintoju ir dar 16 687 laukiantys eilėje. Nepaisant didžiulio susidomėjimo akcijų paketu, iš tikrųjų praėjo gana neįvykęs pusantro mėnesio: didelių trikdžių nebuvo, tik keli brūkšniai ir tikrintojo dalyvavimas 98 proc. procentilėje dažniausiai. Dabar tinkamas laikas atsikvėpti, kad galėtume įvertinti tai, ką iki šiol padarėme. 

Šiame tinklaraščio įraše aptarsiu jūsų Eth2 tikrintuvo stebėjimą ir finansinę analizę. Pateikiu apžvalgą, kaip pasiekti „Teku“ metriką, nustatyti „Beaconcha.in“ pranešimus ir kaip pateikti užklausą mazgui. Aš taip pat dalinuosi savo dabartiniu P&L suskirstymas. Paskutinėje šios serijos dalyje aptarsiu, kaip saugiai ir (tikiuosi) sėkmingai perkelti „Teku“ mazgą iš vieno serverio į kitą.

Stebėjimas

Šiame skyriuje aprašysiu, kaip perskaityti jūsų patvirtinimo mazgo metriką. „Ethereum 2.0“ tikrintuvo paleidimas veikia paskirstytos sistemos infrastruktūra. Itin svarbi infrastruktūros priežiūros dalis yra galimybė pamatyti, kas vyksta. Laimei, „Teku“ turi puikų stebėjimo įrankių rinkinį, įjungtą mūsų paleidimo komandoje pažymėtu ženklu „įgalinta metrika“, paryškintu žemiau:

ExecStart = / home / ubuntu / teku-20.11.1 / bin / teku –net = = mainnet<stiprus> stiprus> <stiprus>–eth1-endpoint = INFURA_ETH1_HTTP_ENDPOINT_GOES_HERE stipri> <stiprus>–validator-keys = / home / ubuntu / validator_key_info / KEYSTORE-M_123456_789_ABCD.json: /home/ubuntu/validator_key_info/validator_keys/KEYSTORE-M_123456_789_ABCD.txt stiprus> –rest-api-enabled = true – poilsis-api-docs-enabled = true – metrika įgalinta – validatoriai-keystore-locking-enabled = false <stiprus>–duomenų bazės kelias = / var / lib / tekustrong>Kodo kalba: HTML, XML (xml)

Kad galėtume perskaityti duomenis, turime atlikti kelis veiksmus.

Tiems, kurie neturi „Teku“ kliento: Pirma, kodėl? Antra, galite pamatyti minimalią visų klientų pateiktą metriką „Ethereum 2.0“ specifikacijos čia.

„Prometheus“ diegimas

Pirma, mes turime įdiegti Prometėjas, – atviro kodo stebėjimo programa ir Grafana, atvirojo kodo analizės ir interaktyvios vizualizacijos žiniatinklio programa. Prometėjas ištraukia duomenis, o „Grafana“ juos parodo.

„Ubuntu“ komandinėje eilutėje atsisiųskite naujausią stabilų „Prometheus“:

garbanotis -JLO <a href ="https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gz">https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gza>Kodo kalba: HTML, XML (xml)

Išspauskite failą taip:

degutas -zxvf <a href ="https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gz">prometėjas-2.23.0.linux-amd64.tar.gza>Kodo kalba: HTML, XML (xml)

Perkelkite dvejetainį failą, kad jis būtų pasiekiamas komandinėje eilutėje:

CD prometheus-2.23.0. Kodo kalba: CSS (css) sudo mv prometheus promtool / usr / local / bin /

Patikrinkite, ar tinkamai įdiegta:

prometheus –versija promtool –versija

Sukurkite prometheus YML konfigūracijos failą:

sudo nano prometheus.ymlKodo kalba: CSS (css)

Įklijuokite šiuos parametrus į konfigūracijos failą:

global: scrape_interval: 15s scrape_configs: – darbo_pavadinimas: "prometėjas" static_configs: – tikslai: ["vietinis šeimininkas: 9090"] – darbo_vardas: "teku-dev" scrape_timeout: 10s metrics_path: / metrikos schema: http static_configs: – tikslai: ["vietinis šeimininkas: 8008"] Kodo kalba: PHP (php)

Tai nurodo Prometeėjui kas 10 sekundžių apklausti „Teku“ mazgą 8008 prievade. Paspauskite komandą-X ir paspauskite Y, kad išsaugotumėte buferį

Dabar sukurkime katalogą, kuriame įdėsite „Prometheus“ konfigūracijos failą:

sudo mkdir / etc / prometheus sudo mv prometheus.yml /etc/prometheus/prometheus.yml

Mes sukursime vieną kitą katalogą kitiems „Prometheus“ failams ir perkelsime konsolės ir konsolės_libraries modulius į / etc / prometheus

sudo mkdir / var / lib / prometheus sudo mv consoles / console_libraries / / etc / prometheus / Kodo kalba: „JavaScript“ (javascript)

Sukursime „prometheus“ vartotoją, kad jis galėtų vykdyti „systemd“ paslaugą, kaip tai darėme „Teku“ (Skaitykite daugiau apie tai, kaip vaidmenimis pagrįsta vartotojo prieiga yra geriausia serverio saugumo praktika) ir suteikti jai prieigą prie atitinkamų bylų:

sudo useradd –no-create-home –shell / bin / false Prometheus sudo chown -R prometheus: prometheus / var / lib / prometheus sudo chown -R prometheus: prometheus / etc / prometheus sudo chown -R prometheus: prometheus / usr / local / bin / Kodo kalba: „JavaScript“ (javascript)

Galiausiai sukurkite „systemd“ paslaugą, kuri gali veikti fone, ir iš naujo paleiskite, jei nepavyktų:

sudo nano /etc/systemd/system/prometheus.service

Šiame faile (kuris turėtų būti tuščias) įvesime komandų seriją, kurią „systemd“ vykdys paleidus paslaugą. Į teksto rengyklę nukopijuokite:

[Unit] Description = Prometheus Wants = network-online.target After = network-online.target [Service] Type = simple User = prometheus Group = prometheus Restart = always restartSec = 5 ExecStart = / usr / local / bin / prometheus \ – -config.file = / etc / prometheus / prometheus.yml \ –storage.tsdb.path = / var / lib / prometheus \ –web.console.templates = / etc / prometheus / consoles \ –web.console. bibliotekos = / etc / prometheus / console_libraries \ –web.listen-address = 0.0.0.0: 9090 \ [Install] WantedBy = multi-user.targetCode language: JavaScript (javascript)

Įveskite komandą-X, tada įveskite „Y“, kad išsaugotumėte pakeitimus

Norėdami jį atnaujinti, turime iš naujo paleisti „systemctl“:

sudo systemctl daemon-reload

Paleiskite paslaugą:

sudo systemctl pradėti prometheus

Patikrinkite, ar gerai veikia:

sudo systemctl status prometheus

Jei matote klaidų, gaukite daugiau informacijos vykdydami:

sudo journalctl -f -u prometheus.serviceKodo kalba: CSS (css)

„Prometheus“ paslaugą galite sustabdyti vykdydami:

sudo systemctl sustabdyti prometheus

Įdiekite „Grafana“

Norėdami įdiegti „Grafana“, naudosime „Linux“ skirtą APT paketų tvarkyklę. Tai padės mums sutaupyti daug darbo ir suteikti tai, ko mums reikia. Mes atliksime „Grafana“ diegimo puslapio veiksmus:

sudo apt-get install -y apt-transport-https sudo apt-get install -y programinės įrangos savybės-bendras wget wget -q -O – https://packages.grafana.com/gpg.key | sudo apt-key add -Code kalba: „JavaScript“ (javascript)

Pridedame stabilų „Grafana“ saugyklą, skirtą naujinimams:

aidas "deb https://packages.grafana.com/oss/deb stabilus pagrindinis" | sudo tee -a /etc/apt/sources.list.d/grafana.listKodo kalba: PHP (php)

Tada mes paleidžiame APT:

sudo apt-get update sudo apt-get install grafanaKodo kalba: „JavaScript“ (javascript)

Paketas mums sukuria „systemd“ paslaugą (įskaitant vartotojo grafaną), todėl mums tiesiog reikia paleisti:

sudo paslauga grafana-serveris paleisti sudo paslauga grafana-serveris būsena sudo update-rc.d grafana-serveris pagal nutylėjimą Kodo kalba: CSS (css)

SSH tuneliavimas

„Grafana“ sukuria labai aptakų prietaisų skydelį, kuriame galime peržiūrėti savo metriką. Ši informacijos suvestinė paprastai yra naršyklėje, tačiau kadangi mes naudojame serverio „Ubuntu 20.04“ versiją, visa tai yra komandinė eilutė. Taigi, kaip mes prieiname prie Grafanos?

Įeikite į SSH tunelį. Tai tas pats protokolas, kurį naudojame norėdami pasiekti AWS iš savo komandinės eilutės, tačiau ketiname jį nustatyti, kad sukurtume veidrodinį prievadą savo vietiniame kompiuteryje, kuris prisijungtų prie konkretaus mūsų AWS egzemplioriaus prievado. Tokiu būdu, kai iškviečiame uostą vietoje, tarkime, atidarydami naršyklę http: // localhost: 3000, mes iš tikrųjų žiūrime į 3000 prievadą savo AWS egzemplioriuje.

Norėdami tai padaryti tinkamai, jums reikės SSH rakto AWS ir AWS IP informacijai. Taip pat turite žinoti, prie kurio prievado norite prisijungti. Šiuo atveju mes žinome, kad mūsų „Grafana“ egzempliorius veikia 3000 prievade, todėl komandinės eilutės instrukcijose bus tokia bendra struktūra:

ssh -N -L 3000: vietinis šeimininkas: 3000 -i "PATH_TO_AWS_KEYPAIR.pem"[email protected]_IDENTIFIER.compute-ZONE.amazonaws.comKodo kalba: CSS (css)

Tai leidžia mums eiti http: // localhost: 3000 mūsų vietinėje mašinoje ir pamatykite mūsų „Grafana“ prietaisų skydelį. Bet mes dar neturime, todėl turime atlikti šiuos veiksmus:

Pridėti „Prometheus“ kaip duomenų šaltinį:

Eikite į „Pridėti naują duomenų šaltinį“

Išskleidžiamajame meniu spustelėkite „Prometėjas“

Spustelėkite „Išsaugoti ir išbandyti“

Kairiajame meniu spustelėkite + ir pasirinkite „importuoti informacijos suvestinę“

Pridėti „Teku Grafana“ ID: 13457 m

Ir, bada-bing! Mes turime savo prietaisų skydelį, matomą patogiai naudojant mūsų pačių naršyklę:

„Beaconcha.in App“

„Grafana“ prietaisų skydelis yra puikus, o „Prometheus“ saugo mums informaciją. Tačiau yra ir kitų galimybių patikrinti tikrintuvo būseną.

Aš naudoju „Beaconcha.in Dashboard“ mobilioji programa, skirta „Android“. Tai paprasta sąsaja, kuri yra gerai, nes tai nėra pagrindinė mano stebėjimo paslauga. Tai leidžia man greitai žvilgtelėti į savo telefoną, kad patikrinčiau tikrintuvo būseną, ir pateikia pranešimus, jei kažkas negerai su tikrintuvu.

Įvedate patvirtintuvo adresą, kurį norite žiūrėti, ir viskas tiek! Vėlgi, ne sunkiųjų stebėjimas (tai teikia „Grafana Teku“ pašaras). Bet tai gerai, nes antrinė paslauga ir dvejetainis „veikia tikrintuvas, ar ne“:

Užklausa apie mazgą

Kitas būdas „stebėti“ mūsų „Ethereum“ tikrintuvo klientą yra pateikti užklausą! Kaip ir „Ethereum 1.0“ klientas, mūsų „Ethereum“ tikrintuvo klientas saugo ir palaiko pasaulio valstybę. Jis yra daug mažesnis, palyginti su „Ethereum 1.0“, tačiau jie vis tiek yra grandinės duomenys, kuriuos saugo ir prižiūri jūsų patvirtinimo klientas. 

Tai tie patys duomenys, kuriuos sunaudoja „Prometheus“ / „Grafana“ darbo eiga. Paprasčiausiai artėjame prie metalo (faktiškai kalbant) patys klausdami mazgo. Pateikiame turimų duomenų pavyzdį (visas sąrašas čia):

  • Švyturių grandinės informacija (genezės blokavimas, blokų antraštės ir šaknys ir kt.)
  • Informacija apie tikrintoją (patvirtintojų sąrašas, patvirtintojo balansas, tvirtintojo pareigos ir kt.)
  • Mazgo informacija (bendra sveikata, bendraamžių sąrašas ir kt.)

CURL

Pirmasis būdas tai padaryti yra komandinėje eilutėje. Kai pradėjome „Teku“, pridėjome vėliavą –rest-api-enabled = true. Tai atveria API galutinį tašką numatytame 5051 prievade (galite nurodyti kitą prievadą naudodami vėliavą –rest-api-port =). Galite dar kartą patikrinti, ar jūsų uostas atidarytas, paleisdami sudo lsof -i -P -n | grep Klausyk.

Kai patvirtinsite, kad „Teku“ atidarys 5051 prievadą, mes jį naudosime CURL išsiūsti POILSIS skambučiai į „Teku“ API galutinį tašką http: // localhost: 5051. Pavyzdžiui, taip tikriname geriausiai veikiančio tikrintojo balansą (pagal „Beaconcha.in“):

garbanos -X GAUTI "http: // localhost: 5051 / eth / v1 / beacon / states / head / validator_balances id = 0x8538bbc2bdd5310bcc71b1461d48704e36dacd106fa19bb15c918e69adbcc360e5bf98ebc3f558eb4daefe6d6c26dda"Kodo kalba: PHP (php)

Štai atsakymas, kurį gavau 2021 m. Sausio viduryje („Gwei“): 

{"duomenis": [{"indeksas":"4966","pusiausvyra":"32607646851"}]} Kodo kalba: JSON / JSON su komentarais (json)

Išbandykite bet kurį iš metodų „Teku“ API doc puslapį naudojant šio puslapio apačioje esantį formatą:

garbanė -X [REST_METHOD] „API_CALL_IN_QUOTES“ Kodo kalba: CSS (css)

„Swagger“ vartotojo sąsaja

Yra pagrindinė grafinė vartotojo sąsaja, skirta API skambučiams, kuriuos „Teku“ pateikia, kai įjungimo komandose pridedama žymė –rest-api-docs-enabled = true. Jis pastatytas swagger-ui ir pagal numatytuosius nustatymus jis yra 5051 prievade ir mes galime naudoti SSH tunelį, kad jį pasiektume. Vykdykite tuos pačius SSH tuneliavimo veiksmus iš viršaus, bet naudokite 5051 kaip uostas:

ssh -N -L 5051: vietinis šeimininkas: 5051 -i "PATH_TO_AWS_KEYPAIR.pem" [email protected]_IDENTIFIER.compute-ZONE.amazonaws.comKodo kalba: CSS (css)

Iš savo kompiuterio naršyklės galime pereiti prie http: // localhost: 5051 / swagger-ui, kuris mano mašinoje atrodo taip:

Pasaulio valstybė ir sutarimas yra kažkas, kas iškyla visose viešosiose blokų grandinėse. Tai reiškia, kad „Ethereum 2.0“ pasiekia visų patvirtintojų, saugančių ir atnaujinančių informaciją, sutarimą. Tai šiek tiek nerdi, bet pažvelgti į savo vietinę valstybę reiškia žiūrėti į vieną daug didesnės struktūros sritį. Fraktalo pogrupis nuolat atnaujinamas ir tampa kažkuo nauju. Pabandyk tai!

Finansinė analizė

Pirmame įraše aš nubrėžiau pagrindinius reikalingus medžiagai reikalavimus:

  • Trejų metų įsipareigojimas užimti 32 ETH ir išlaikyti patvirtinimo mazgą
  • 32 ETH (plius <1 ETH – dujų sąnaudos)
  • 717,12 USD (trejų metų rezervuotų egzempliorių kainų nustatymas „m5.xlarge“ egzemplioriui) + 120 (vienerių metų 100 GB atminties kaina, konservatyviai laikant beveik visą saugojimo talpą) = 837,12 USD, sumokėta per metus AWS
  • „MetaMask“ plėtinys (nemokamai įdiegti
  • „Infura“ sąskaita (nemokama pakopa)

AWS išlaidos buvo skirtos trejiems metams užrakinti, tačiau vėliau minėjau, kad nebuvau visiškai pasirengusi to padaryti. Ir aš džiaugiuosi, kad to nepadariau! Akimirksniu pamatysite, kodėl, bet čia yra mano pagrindinis 2020 m. Gruodžio 31 d. Išlaidų suskirstymas:

AWS mėnesio išlaidos

  • Duomenų perdavimas: 8,52 USD
  • Serveris: 142,85 USD
  • Saugojimas: 72,50 USD
  • Iš viso: 223,87 USD

„Eth2 Validator“ apdovanojimai 

  • Blokai: 5
  • Patvirtinimai: ~ 6 803
  • ETH apdovanojimai: 0,420097728 (485,83 USD)

Kaip tikriausiai matote, 261,96 USD pelnas nėra labai naudingas vienam tikrintojui. Yra pora variantų: tai yra gana stabilios išlaidos, todėl galėčiau užsidėti dar 32 ETH. Geresnis variantas gali būti naudoti naudojamą VPS, kurį paminėjau savo pirmajame įraše, iš tikrųjų:

Iš pradžių buvau įsitikinęs, kad AWS yra geriausia virtuali platforma ir tai paslauga, kurią naudosiu šiame ir kitame įraše. Tačiau praėjęs visą procesą supratau, kad AWS gali būti per didelis individualaus kūrėjo poreikis. Tikra AWS stiprybė yra jos gebėjimas dinamiškai didinti, kad būtų patenkinta paklausa, kuri kainuoja aukščiausios kainos. Tai ekonomiškai naudinga didelio masto įmonės lygmens projektui, tačiau individualiems „Ethereum 2.0“ dabartiniams kliento reikalavimams tokio griežtumo nereikia..

Tęsiu AWS, bet taip pat linksminu galimybę paleisti egzempliorių Skaitmeniniame vandenyne, kuris gali būti tinkamesnis atskiram kūrėjui. 

Manau, kad galiu gauti daug geresnį pelną iš bėgimo „Digital Ocean“ ir vis tiek nepataikyti į savo tikrintuvo našumą. Draugas paleidžia tikrintuvo egzempliorių daug mažesniame VPS, kuris kainuoja dydžiu mažiau ir mes turime tą patį patvirtintuvo našumą. 

Puiku eksperimentuoti su AWS ir nesigailiu turėjęs pajėgumų, jei kažkas švyturio grandinėje eina į šoną. Tačiau manau, kad taip yra tikrai puiku, kad „Eth 2“ kūrėjai vykdo pažadą, kad patvirtinimas bus pasiekiamas namų tinkluose ir sąrankose! 

Dabartinės kainų moduliacijos taip pat apsunkina finansinę analizę, nes serverio išlaidos yra fiksuotos JAV doleriais, tačiau atlygiai kinta. Ilgalaikis, aš labai tikiu, kad mano patvirtintojo atlygis padidės. Tai daro sąnaudų ir naudos keblumą!

Paskutinei šios serijos daliai aptarsiu, kaip saugiai ir (tikiuosi) sėkmingai perkelti „Teku“ mazgą iš vieno serverio į kitą. Pagrindinė problema, žinoma, yra sumažinama. Atrodo, kad didžioji dalis įvykusių brėžinių yra dėl šio klausimo. Pažiūrėsime, kaip bus …

„Ethereum 2.0“ „Ethereum“ kliento naujienlaiškis Užsiprenumeruokite mūsų naujienlaiškį, kuriame rasite naujausias „Ethereum“ naujienas, įmonės sprendimus, kūrėjų išteklius ir dar daugiau.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map