כיצד לעקוב אחר מאמת ה- Eth2 שלך ולנתח את ה- P&L שלך

בלוג 1חדשות מפתחיםיזם הסבר על בלוקצ’יין אירועים וכנסים לחץעלונים

הירשם לניוזלטר שלנו.

כתובת דוא”ל

אנו מכבדים את פרטיותך

HomeBlogDevelopers

כיצד לעקוב אחר מאמת ה- Eth2 שלך ולנתח את ה- P שלך&ל

מאת קוגן ברנן 15 בינואר 2021 הועלה ב -15 בינואר 2021

המסע שלי להיות מאמת על את'ריום 2 0 חלק 3

אם אתה חדש בסדרה זו כיצד להפעיל את מאמת ה- Eth2 שלך, הקפד לבדוק את החלק 1 ואת החלק השני. כולכם צריכים לבדוק את בן אדג’ינגטון עלון Eth2.News fאו עדכונים חיוניים, תיקוני באגים וחדשות במפת הדרכים הקרובה. בסיס הידע Eth2 שלנו מועיל אם אתה זקוק לרקע נוסף על מונחי מפתח, שלבים ומוצרי Eth2 של ConsenSys..

הקדמה 

עבר חודש וחצי מאז תחילת שרשרת המשואות Ethereum 2.0. כבר הושקעו 2,515,170 ETH (כ -2.9 מיליארד דולר בשיעורי השוק הנוכחיים) עם 61,561 מאמתים ייחודיים, ועוד 16,687 ממתינים בתור. למרות העניין העצום בהימור, זה היה למעשה חודש וחצי די אירועי: לא היו שיבושים גדולים, רק כמה חיתוכים ו השתתפות מאמת באחוזון 98 רוב הזמן. עכשיו זה זמן טוב לקחת אוויר כדי לעשות חשבון נפש על מה שעשינו עד כה. 

בפוסט בבלוג זה אעסוק במעקב ובניתוח פיננסי של מאמת ה- Eth2 שלך. אני מספק סקירה כללית כיצד לגשת למדדי Teku, להגדיר הודעות Beaconcha.in וכיצד לבצע שאילתות על הצומת. אני משתף גם את ה- P הנוכחי שלי&התמוטטות L. בחלק האחרון של סדרה זו אדון כיצד להעביר בצורה בטוחה (בתקווה) צומת Teku משרת לשרת אחר..

ניטור

בחלק זה, אעבור כיצד לקרוא את המדדים של צומת המאמת שלך. הפעלת מאמת Ethereum 2.0 מפעילה תשתית למערכת מבוזרת. חלק מכריע בשמירה על תשתיות הוא היכולת לראות מה קורה. למרבה המזל, Teku מגיעה עם חבילה נהדרת של כלי ניטור המופעלים באמצעות הדגל “מופעלת -מדדים” בפקודת ההפעלה שלנו, המודגשת למטה:

ExecStart = / home / ubuntu / teku-20.11.1 / bin / teku –network = mainnet<חָזָק> חָזָק> <חָזָק>–eth1-endpoint = INFURA_ETH1_HTTP_ENDPOINT_GOES_HERE חזק> <חָזָק>–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 חזק> –rest-api-enabled = true – rest-api-docs-enabled = true – metrics-enabled – validators-keystore-locking-enabled = false <חָזָק>–נתיב בסיס נתונים = / var / lib / tekustrong>שפת קוד: HTML, XML (xml)

עלינו לבצע כמה צעדים לפני שנוכל לקרוא את הנתונים.

למי שלא מנהל לקוח Teku: ראשית, למה? שנית, תוכלו לראות את הערכים המינימליים שמספקים כל הלקוחות ב- מפרט Ethereum 2.0 כאן.


התקנת פרומתאוס

ראשית, עלינו להתקין פרומתאוס, תוכנית ניטור קוד פתוח, ו גרפנה, אפליקציית אינטרנט לניתוח קוד פתוח ולהדמיה אינטראקטיבית. פרומתאוס מושך את הנתונים וגרפנה מציג אותם.

בשורת הפקודה של אובונטו, הורד את פרומתאוס היציב האחרון:

תלתל -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>שפת קוד: HTML, XML (xml)

דחוס את הקובץ כך:

זפת -zxvf <a href ="https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gz">prometheus-2.23.0.linux-amd64.tar.gza>שפת קוד: HTML, XML (xml)

הזז את הבינארי כך שיהיה זמין משורת הפקודה:

Cd prometheus-2.23.0 שפת קוד: CSS (css) sudo mv prometheus promtool / usr / local / bin /

בדוק כדי לוודא שהוא הותקן כהלכה:

פרומתיאוס –

צור קובץ תצורה של YML של פרומתאוס:

sudo nano prometheus.yml שפת קוד: CSS (css)

הדבק פרמטרים אלה לקובץ התצורה:

גלובלי: scrape_interval: 15s scrape_configs: – job_name: "פרומתיאוס" static_configs: – יעדים: ["מקום אירוח: 9090"] – שם העבודה: "teku-dev" scrape_timeout: 10s metrics_path: / ערכת ערכים: http static_configs: – יעדים: ["מקום אירוח מקומי: 8008"] שפת קוד: PHP (php)

זה מורה לפרומתאוס לסקר את צומת Teku שלך כל עשר שניות ביציאת 8008. לחץ על פקודה X ולחץ על Y כדי לשמור חיץ

עכשיו, בואו ניצור ספריה להצבת קובץ התצורה של פרומתאוס שלנו:

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

אנו הולכים להכין ספרייה אחת נוספת עבור קבצי פרומתאוס אחרים ולהעביר את הקונסולה ומודולי console_libraries אל / etc / prometheus

sudo mkdir / var / lib / prometheus sudo mv consoles / console_libraries / / etc / prometheus / שפת קוד: JavaScript (javascript)

ניצור משתמש פרומתיאוס שיפעיל שירות מערכת, כמו שעשינו עבור Teku (קרא כאן עוד על האופן שבו גישה למשתמשים מבוססת תפקידים היא השיטה הטובה ביותר לאבטחת שרתים) ולתת לו גישה לקבצים מתאימים:

sudo useradd – no-create-home – shell / bin / prometheus false sudo chown -R prometheus: prometheus / var / lib / prometheus sudo chown -R prometheus: prometheus / etc / prometheus sudo chown -R prometheus: prometheus / usr / local / bin / שפת קוד: JavaScript (javascript)

אחרון, צור שירות מערכת שניתן לרוץ ברקע והפעל מחדש את עצמו אם הוא נכשל:

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

בקובץ זה (שאמור להיות ריק) אנו נכניס סדרה של פקודות שהמערכת יכולה לבצע כאשר אנו מתחילים את השירות. העתק את הדברים הבאים לעורך הטקסט:

[יחידה] תיאור = פרומתאוס רוצה = רשת- online.target אחרי = רשת- online.target [שירות] סוג = משתמש פשוט = prometheus קבוצה = prometheus הפעל מחדש = תמיד RestartSec = 5 ExecStart = / usr / local / bin / prometheus \ – -config.file = / etc / prometheus / prometheus.yml \ – store.tsdb.path = / var / lib / prometheus \ –web.console.templates = / etc / prometheus / consoles \ –web.console. ספריות = / etc / prometheus / console_libraries \ –web.listen-address = 0.0.0.0: 9090 \ [Install] WantedBy = multi-user.target שפת קוד: JavaScript (javascript)

הקלד command-X והקלד “Y” כדי לשמור את השינויים שלך

עלינו להפעיל מחדש את systemctl כדי לעדכן אותו:

sudo systemctl daemon-reload

התחל את השירות:

התחל פרומתיאוס

בדוק כדי לוודא שהוא פועל בסדר:

sudo systemctl status prometheus

אם אתה רואה שגיאות, קבל פרטים נוספים על ידי הפעלת:

sudo journalctl -f -u prometheus.service שפת קוד: CSS (css)

ניתן להפסיק את שירות פרומתאוס על ידי הפעלת:

מפסיקים פרומתיאוס

התקן את Grafana

אנו נשתמש במנהל החבילות APT עבור לינוקס להתקנת Grafana. זה יחסוך לנו כמות עבודה טובה וייתן לנו את מה שאנחנו צריכים. אנו נבצע את הצעדים מדף ההתקנה של Grafana:

sudo apt-get install -y apt-transport-https sudo apt-get install -y software-properties-common wget wget -q -O – https://packages.grafana.com/gpg.key | sudo apt-key add -Code שפה: JavaScript (javascript)

אנו מוסיפים את מאגר Grafana היציב לעדכונים:

הֵד "deb https://packages.grafana.com/oss/deb ראשי יציב" | sudo tee -a /etc/apt/sources.list.d/grafana.list שפת קוד: PHP (php)

ואז אנחנו מפעילים את APT:

sudo apt-get עדכון sudo apt-get להתקין grafana שפת קוד: JavaScript (javascript)

החבילה מגדירה שירות systemd עבורנו (כולל משתמש grafana) אז אנחנו רק צריכים להריץ:

שירות sudo grafana-server התחל sudo service grafana-server status sudo update-rc.d ברירת מחדל של שרת grafana שפת קוד: CSS (css)

מנהור SSH

Grafana יוצר לוח מחוונים חלקלק מאוד שבו אנו יכולים להציג את המדדים שלנו. לוח המחוונים הזה זמין בדרך כלל בדפדפן, אך מכיוון שאנו מריצים את גרסת השרת של אובונטו 20.04, הכל שורת פקודה. אז איך ניגש לגראפנה?

היכנסו למנהור SSH. זהו אותו פרוטוקול בו אנו משתמשים כדי לגשת ל- AWS משורת הפקודה שלנו, אך אנו הולכים להגדיר אותו כך שניצור יציאת מראה במחשב המקומי שלנו המתחבר ליציאה ספציפית במופע AWS שלנו. בדרך זו, כאשר אנו מתקשרים לנמל באופן מקומי, אמור על ידי פתיחת הדפדפן ל- http: // localhost: 3000, אנו למעשה בוחנים את יציאת 3000 במופע AWS שלנו.

כדי לעשות זאת כראוי, תזדקק למפתח ה- SSH שלך עבור AWS ופרטי ה- IP של AWS. אתה צריך גם לדעת לאיזה יציאה אתה רוצה להתחבר. במקרה זה, אנו יודעים שמופע הגרפנה שלנו פועל ביציאה 3000, ולכן להוראות שורת הפקודה יהיה מבנה כללי זה:

ssh -N -L 3000: localhost: 3000 -i "PATH_TO_AWS_KEYPAIR.pem"[email protected]_IDENTIFIER.compute-ZONE.amazonaws.com שפת קוד: CSS (css)

זה מאפשר לנו ללכת ל http: // localhost: 3000 במכונה המקומית שלנו וראו את לוח המחוונים שלנו ב- Grafana. אך עדיין אין לנו אחד, ולכן עלינו לבצע את הפעולות הבאות:

הוסף את פרומתאוס כמקור נתונים:

עבור אל “הוסף מקור נתונים חדש”

לחץ על “פרומתאוס” מהתפריט הנפתח

לחץ על “שמור ובדוק”

לחץ על + בתפריט שמאל ובחר “ייבוא ​​לוח מחוונים”

הוסף מזהה Teku Grafana: 13457

וגם, באדה בינג! יש לנו את לוח המחוונים שלנו, שנראה מהנוחות של הדפדפן שלנו:

Beaconcha.in App

לוח המחוונים של גרפנה מעולה ופרומתאוס שומר עבורנו מידע. עם זאת, ישנן אפשרויות אחרות לבדוק את מצב המאמת.

השתמשתי Beaconcha.in אפליקציית לוח המחוונים לנייד לאנדרואיד. זה ממשק פשוט, וזה בסדר כי זה לא שירות הניטור העיקרי שלי. זה מאפשר לי להציץ במהירות בטלפון שלי כדי לבדוק את מצב המאמת ומספק התראות אם משהו לא בסדר עם המאמת.

אתה מזין את כתובת המאמת שברצונך לראות וזה פחות או יותר! שוב, לא ניטור כבד (זה מה שמאכיל הזנת Grafana Teku). אבל זה בסדר כשירות משני ובינארי “האם המאמת פועל או לא”:

שאילתת הצומת

דרך נוספת “לפקח” על לקוח המאמת שלנו ב- Ethereum היא לבצע שאילתה! כמו לקוח Ethereum 1.0, לקוח המאמת של Ethereum מאחסן ומתחזק מדינה עולמית. הוא קטן בהרבה בהשוואה ל- Ethereum 1.0, אך הוא עדיין נתוני רשת המאוחסנים ומתוחזקים על ידי לקוח המאמת שלך. 

אלה אותם נתונים הנצרכים על ידי זרימת העבודה של פרומתאוס / גרפנה. אנחנו פשוט מתקרבים למתכת (באופן וירטואלי) על ידי שאילתת הצומת בעצמנו. הנה דוגמה לנתונים הזמינים (הרשימה המלאה כאן):

  • מידע על שרשרת משואות (גוש בראשית, כותרות חסימות ושורש וכו ‘)
  • מידע על מאמת (רשימת מאמתים, איזון מאמת, אחריות מאמת וכו ‘)
  • מידע על צומת (בריאות כללית, רשימת עמיתים וכו ‘)

סִלְסוּל

הדרך הראשונה לעשות זאת היא משורת הפקודה. כשהתחלנו את Teku, הוספנו את הדגל –rest-api-enabled = true. פעולה זו פותחת נקודת קצה של API ביציאת ברירת המחדל של 5051 (ניתן לציין יציאה אחרת באמצעות הדגל – rest-api-port =). אתה יכול לבדוק פעמיים שהיציאה שלך פתוחה על ידי הפעלת sudo lsof -i -P -n | grep האזנה.

לאחר שאישרת כי יציאת 5051 פתוחה על ידי Teku, נשתמש בה סִלְסוּל לשלוח מנוחה קורא לנקודת הקצה של Teku API בשעה http: // localhost: 5051. לדוגמה, הנה הדרך בה אנו בודקים את היתרה של המאמת בעל הביצועים הטובים ביותר (על פי Beaconcha.in):

תלתל -X GET "http: // localhost: 5051 / eth / v1 / beacon / states / head / validator_balances id = 0x8538bbc2bdd5310bcc71b1461d48704e36dacd106fa19bb15c918e69adbcc360e5bf98ebc3f558eb4daefe6d6c26dda5"שפת קוד: PHP (php)

הנה התגובה שקיבלתי באמצע ינואר 2021 (בגווי): 

{"נתונים": [{"אינדקס":"4966","איזון":"32607646851"}]} שפת קוד: JSON / JSON עם הערות (json)

נסה את כל אחת מהשיטות עמוד המסמך API של Teku באמצעות הפורמט בתחתית דף זה:

תלתל -X [REST_METHOD] “API_CALL_IN_QUOTES” שפת קוד: CSS (css)

ממשק המשתמש של Swagger

יש ממשק משתמש גרפי בסיסי לשיחות API ש- Teku מספק כאשר הדגל –rest-api-docs-enabled = true נוסף בפקודות ההפעלה. זה בנוי על swagger-ui והוא נמצא בנמל 5051 כברירת מחדל ואנחנו יכולים להשתמש במנהרות SSH כדי לגשת אליו. בצע את אותם שלבי מנהור SSH מלמעלה, אך עם 5051 כנמל:

ssh -N -L 5051: localhost: 5051 -i "PATH_TO_AWS_KEYPAIR.pem" [email protected]_IDENTIFIER.compute-ZONE.amazonaws.com שפת קוד: CSS (css)

מהדפדפן במחשב שלנו נוכל לנווט אליו http: // localhost: 5051 / swagger-ui, שנראה כך במכונה שלי:

מדינה וקונצנזוס עולמי הם משהו שמתגלה בכל רשתות החסומים הציבוריות. משמעות הדבר היא כי Ethereum 2.0 מגיע לקונצנזוס על ידי כל המאמתים המאחסנים ומעדכנים מידע. זה קצת חנון, אבל להסתכל על המדינה המקומית שלך זה להציץ לחלונית אחת של מבנה הרבה יותר גדול. תת קבוצה של הפרקטל מתעדכנת כל הזמן ומתפתחת למשהו חדש. נסה זאת!

ניתוח פיננסי

בפוסט הראשון שירטטתי את דרישות החומר הבסיסיות הדרושות:

  • התחייבות לשלוש שנים להקמת 32 ETH ולשמירה על צומת אימות
  • 32 ETH (פלוס <1 ETH לעלויות דלק)
  • 717.12 $ (תמחור מופע שמור למשך שלוש שנים עבור מופע m5.xlarge) + 120 (עלות שנה של 100 GB של אחסון, בהנחה שמרנית כמעט של קיבולת אחסון מלאה) = 837.12 $ ששולמו במהלך השנה ל- AWS
  • סיומת MetaMask (התקנה בחינם –
  • חשבון Infura (שכבה חופשית)

עלויות ה- AWS היו לנעילה של שלוש שנים, אך ציינתי אחר כך שאני לא ממש מוכנה לעשות זאת. ואני שמח שלא עשיתי! תראה מדוע עוד רגע, אך הנה פירוט העלויות הבסיסי שלי לחודש 31 בדצמבר 2020:

עלויות חודשיות של AWS

  • העברת נתונים: 8.52 דולר
  • שרת: 142.85 דולר
  • אחסון: 72.50 דולר
  • סה”כ: 223.87 דולר

תגמולי מאמת Eth2 

  • חסימות: 5
  • עדויות: ~ 6,803
  • תגמולי ETH: 0.420097728 ($ 485.83 USD)

כפי שאתה בוודאי יכול לראות, רווח של 261.96 $ אינו פריסה נהדרת עבור מאמת אחד. ישנן כמה אפשרויות: זו עלות יחסית יציבה, כך שאוכל להפקיד עוד 32 ETH. האפשרות הטובה יותר עשויה להיות לשנות את ה- VPS שאני משתמש בו, אותו הזכרתי בפוסט הראשון שלי, למעשה:

בתחילה, הייתי בטוח ש- AWS היא הפלטפורמה הווירטואלית הטובה ביותר והיא השירות שאשתמש בפוסט זה ובפרסום הבא. עם זאת, לאחר שעברתי את כל התהליך, הבנתי ש- AWS עשוי להיות מוגזם מדי עבור המפתח האישי. נראה כי הכוח האמיתי של AWS הוא היכולת שלה להגדיל באופן דינמי כדי לענות על הביקוש הכרוך בעלות פרמיה. זה הגיוני מבחינה כלכלית עבור פרויקט בקנה מידה גדול ברמה ארגונית, אך דרישות הלקוח הנוכחיות של Ethereum 2.0 אינן דורשות קפדנות כזו..

אני אמשיך להמשיך עם AWS אבל אני גם מבדר את האפשרות להפעיל מופע ב- Digital Ocean, שעשוי להתאים יותר למפתח בודד. 

אני חושב שאני יכול להשיג רווח הרבה יותר טוב מריצה באוקיינוס ​​הדיגיטלי ועדיין לא לקבל מכה בביצועי המאמת שלי. חבר מריץ מופע אימות ב- VPS קטן בהרבה שעולה סדר גודל פחות ויש לנו ביצועי אימות זהים. 

זה נהדר להתנסות ב- AWS ואני לא מצטער שיש לי יכולת למקרה שמשהו יעבור לרוחב המשואות. עם זאת, אני חושב שזה בֶּאֱמֶת נהדר ש- Dev 2 devs מקיימים את ההבטחה להעמיד את האימות לרשתות הביתיות וההגדרות! 

אפנון המחירים הנוכחי גם מקשה על הניתוח הפיננסי, שכן עלויות השרת קבועות בדולר, אך התגמול משתנה. לטווח הארוך, אני בטוח מאוד שתגמולי המאמת שלי יעלו בערכם. זה עושה עלות-תועלת מסובך!

בפרק האחרון של סדרה זו, אדון כיצד להעביר בבטחה (בתקווה) בהצלחה צומת Teku משרת אחד למשנהו. הנושא העיקרי הוא לקצץ, כמובן. נראה שהרוב המכריע של הקיצוצים שהתרחשו הוא עקב נושא זה ממש. נראה איך זה הולך …

מפתחים Ethereum 2.0 עלון לקוח Ethereum הירשם לניוזלטר שלנו לקבלת החדשות האחרונות של Ethereum, פתרונות ארגוניים, משאבי מפתחים ועוד.

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