นำคุณเข้าร่วมในการจำนำ Ethereum 2.0 Pyrmont testnet
ที่มา |someresat.medium.com

ที่มา |
คำเตือน: อย่าทำตามคำแนะนำนี้เพื่อเชื่อมต่อกับ Eth2 mainnet สำหรับคู่มือ mainnet โปรดดูที่ "Ethereum 2.0 Mainnet Pledge Teaching (Ubuntu/Teku)"
บทความนี้อธิบายรายละเอียดวิธีการจำนำ Ethereum 2.0 mainnet ผ่าน Pyrmont เครือข่ายแบบหลายไคลเอนต์ ขึ้นอยู่กับเทคโนโลยีต่อไปนี้เป็นหลัก:
เซิร์ฟเวอร์ Ubuntu v20.04 (LTS) x64ไปที่โหนด Ethereum ()
สาขารหัสPyrmont
เครือข่ายสาธารณะ testnet หลายไคลเอ็นต์อย่างเป็นทางการMetaMask
PrometheusWallet การเข้ารหัสปลั๊กอินของเบราว์เซอร์
Grafanaพารามิเตอร์
แผงควบคุม
คู่มือนี้มีคำแนะนำต่อไปนี้:
เชื่อมต่อและกำหนดค่าอินสแตนซ์เซิร์ฟเวอร์ Ubuntu ที่เพิ่งรันใหม่อย่างปลอดภัย
กำหนดค่าโหนด Ethereum 1.0 และเรียกใช้เป็นบริการ
สร้างรหัสบัญชีเครื่องมือตรวจสอบความถูกต้องของ Pyrmont และฝากสินทรัพย์
นำเข้าคีย์บัญชีตัวตรวจสอบความถูกต้องของ Pyrmont ไปยังไคลเอนต์ Teku
ชื่อระดับแรก
เตือน
เตือน
อย่าทำตามคำแนะนำนี้เพื่อเชื่อมต่อกับ Eth2 mainnet สำหรับคำแนะนำเฉพาะ mainnet โปรดดูที่ "Ethereum 2.0 Mainnet Staking Tutorial (Ubuntu/Teku)"
ชื่อระดับแรก
รับทราบและปฏิเสธความรับผิดชอบ
บทช่วยสอนนี้อ้างอิงถึงสื่อต่างๆ บนอินเทอร์เน็ต ขอบคุณผู้ร่วมให้ข้อมูลที่จัดเตรียมสื่อให้!ConsenSys Discordปลื้มปีติEthStakerในช่อง #เทกุ และ
ความช่วยเหลือและการตรวจสอบโดยสมาชิกในทีมที่ไม่ลงรอยกัน
ชื่อระดับแรก
สนับสนุน
สนับสนุน
กระบวนการนี้อาจยุ่งยากเล็กน้อย นอกจากฉันแล้ว ต่อไปนี้เป็นแหล่งข้อมูลดีๆ สองแหล่งที่คุณสามารถขอความช่วยเหลือได้:
Discord:https://discord.gg/7z8wzehjrJ
ชุมชน EthStaker เป็นชุมชน Ethereum 2.0 ที่มีทรัพยากรมากมายและเป็นมิตรมากชื่อระดับแรก
เงื่อนไข
เงื่อนไข
การใช้บทช่วยสอนนี้จำเป็นต้องมีความรู้พื้นฐานเกี่ยวกับ Ethereum, ETH, Staking, Testnet, Linux และ MetaMask
บทช่วยสอนนี้จำเป็นต้องติดตั้งและใช้งานก่อนที่จะเริ่ม:เซิร์ฟเวอร์อูบุนตู v20.04 (LTS) amd64
หรือเซิร์ฟเวอร์ Ubuntu รุ่นใหม่ที่ติดตั้งและใช้งานบนเครื่องคอมพิวเตอร์ เครือข่ายของคุณ หรือในระบบคลาวด์ (AWS, Digital Ocean, Microsoft Azure เป็นต้น) ขอแนะนำให้ใช้คอมพิวเตอร์ในระบบเพื่อปรับปรุงการกระจายอำนาจของเครือข่าย - หากผู้ให้บริการคลาวด์หยุดทำงาน โหนดทั้งหมดที่โฮสต์บนผู้ให้บริการนี้จะออฟไลน์MetaMask. คอมพิวเตอร์ที่มีระบบปฏิบัติการ (Mac, Windows, Linux ฯลฯ) และเบราว์เซอร์ (Brave, Safari, FireFox ฯลฯ)
ชื่อระดับแรก
ฉันยังไม่ได้ทดสอบบทช่วยสอนนี้กับ Raspberry Pi เพียงเปลี่ยนซอฟต์แวร์ตามรายการด้านล่างเป็นเวอร์ชัน ARM หากคุณต้องการทดลองใช้ ไม่รับประกันการทำงาน
ชื่อระดับแรก
จำเป็นต้อง
กรณีการใช้งานเซิร์ฟเวอร์ Ubuntu ฉันใช้ v20.04 (LTS) เซิร์ฟเวอร์ amd64 VM
ข้อกำหนดของฮาร์ดแวร์เป็นหัวข้อใหญ่ โดยทั่วไป: CPU ที่ค่อนข้างใหม่, RAM 8GB (ดีกว่า 16GB), SSD ที่มีหน่วยความจำอย่างน้อย 1TB, เครือข่ายที่เสถียร (ความเร็วในการดาวน์โหลดเพียงพอและโควต้าข้อมูลรายเดือน) ประสิทธิภาพเหล่านี้จะทำให้กระบวนการจำนำปลอดภัยและราบรื่นยิ่งขึ้น .
ชื่อระดับแรก
ภาพรวม

บทช่วยสอนนี้ค่อนข้างยาว แผนภาพต่อไปนี้อธิบายขั้นตอนการปักหลักสั้น ๆ ส่วนที่ทำเครื่องหมายด้วยสีเหลืองคือส่วนที่จะกล่าวถึงในบทความนี้:
กระบวนการทั้งหมดสามารถกำหนดเป็นแนวคิดได้ดังนี้:
ตั้งค่าโหนด Eth1 และซิงโครไนซ์ข้อมูลของเครือข่ายการทดสอบ Eth1 Göerli
สร้างคีย์ตัวตรวจสอบความถูกต้องและข้อมูลเงินฝาก
กำหนดค่าไคลเอนต์ Teku และซิงโครไนซ์ข้อมูลโหนด Eth1
เริ่มกันเลย!
ชื่อระดับแรก
ใช้พอร์ต SSH เชื่อมต่อกับเซิร์ฟเวอร์ Ubuntu ของคุณ ตามค่าเริ่มต้น บัญชีรูทจะถูกปิดใช้งานบน Ubuntu อย่างไรก็ตาม ผู้ให้บริการระบบคลาวด์บางรายสามารถเปิดใช้งานบัญชีรูทได้ หากคุณเข้าสู่ระบบในฐานะรูท วิธีที่ดีที่สุดคือสร้างบัญชีผู้ใช้ใหม่ด้วยสิทธิ์ของผู้ดูแลระบบ เนื่องจากมีสิ่งอำนวยความสะดวกมากมายเสี่ยง。
เสี่ยง
# adduser
หมายเหตุ: หากคุณไม่ได้เข้าสู่ระบบในฐานะรูท คุณสามารถข้ามไปยังขั้นตอนที่ 1 ได้โดยตรง
ตั้งรหัสผ่านและกรอกข้อมูลอื่นๆ
# usermod -aG sudo
ให้สิทธิ์ผู้ดูแลระบบแก่ผู้ใช้ใหม่โดยเพิ่มลงในกลุ่ม sudoเมื่อคุณใช้ชื่อผู้ใช้ของคุณ
เมื่อคุณเข้าสู่ระบบ คุณสามารถดำเนินการด้วยสิทธิ์ superuser โดยป้อน sudo ก่อนบรรทัดคำสั่งทางเลือก: หากคุณใช้บัญชีรูทคีย์ ssh
# rsync --archive --chown=: ~/.ssh /home/
ในการเชื่อมต่อกับอินสแตนซ์ Ubuntu คุณจะต้องใช้ข้อมูลคีย์ SSH ของบัญชีรูทเพื่อเชื่อมต่อกับบัญชีใหม่เข้าสู่ระบบเซิร์ฟเวอร์ Ubuntu
ชื่อระดับแรก
ตรวจสอบให้แน่ใจว่าระบบได้รับการอัพเดตเป็นซอฟต์แวร์ล่าสุดและการตั้งค่าความปลอดภัย
$ sudo apt update && sudo apt upgrade$ sudo apt dist-upgrade && sudo apt autoremove
$ sudo reboot
ชื่อระดับแรก
ขั้นตอนที่ 2: รักษาความปลอดภัยเซิร์ฟเวอร์
ความปลอดภัยเป็นสิ่งสำคัญมาก แต่เนื่องจากบทความนี้ไม่ใช่แนวทางเพื่อความปลอดภัย จึงแสดงเฉพาะการตั้งค่าพื้นฐานบางอย่างเท่านั้น
กำหนดค่าไฟร์วอลล์เซิร์ฟเวอร์ Ubuntu 20.04 สามารถใช้ค่าเริ่มต้นได้ไฟร์วอลล์ UFW
เพื่อจำกัดการรับส่งข้อมูลไปยังเซิร์ฟเวอร์ แต่ก่อนอื่นให้ตั้งค่าให้อนุญาตการรับส่งข้อมูลขาเข้าจาก SSH, Go Ethereum, Grafana, Teku
อนุญาต ssh
อนุญาตการเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH ต่อไปเราจะแก้ไขพอร์ตเริ่มต้น 22 เพื่อความปลอดภัย (เนื่องจากเป็นเวกเตอร์โจมตีทั่วไป)
หมายเหตุ: หากคุณเลือกที่จะไม่แก้ไขพอร์ต SSH เริ่มต้น (ไม่แนะนำ) คุณต้องเพิ่มการดำเนินการ - อนุญาตพอร์ต SSH เริ่มต้น *$ sudo ufw allow 22/tcp* แล้วข้ามไปยังขั้นตอนการอนุญาต "ไป อีเธอเรียม".
$ sudo ss -tulpn | grep ':'
เลือกหมายเลขพอร์ตระหว่าง 1024 - 49151 และเรียกใช้คำสั่งต่อไปนี้เพื่อดึงหมายเลขพอร์ตที่ไม่ได้ใช้ หากเป็นสีแดง (ใช้แล้ว) ให้เลือกพอร์ตอื่น ตัวอย่างเช่น: sudo ss -tulpn | grep ':6673'อัปเดตไฟร์วอลล์เพื่ออนุญาต
$ sudo ufw allow /tcp
ของการจราจรขาเข้า. SSH ต้องการโปรโตคอล TCP ตัวอย่างเช่น: sudo ufw อนุญาต 6673/tcp
$ sudo nano /etc/ssh/sshd_config
ถัดไป แก้ไขพอร์ต SSH เริ่มต้นค้นหาพอร์ตเริ่มต้น # พอร์ต 22 หรือพอร์ต 22 จากนั้นแก้ไขหมายเลขพอร์ตของคุณเอง พอร์ต

. ลบ # (ถ้ามี) ดูภาพหน้าจอด้านล่าง เอกสารของคุณควรมีลักษณะคล้ายกับที่แสดงด้านล่าง (ยกเว้นหมายเลขพอร์ตจะแตกต่างกัน) บันทึกและออก.
$ sudo systemctl restart ssh
เริ่มบริการ SSH ใหม่ 。
ใช้หมายเลขพอร์ตของคุณในครั้งต่อไปที่คุณเข้าสู่ระบบผ่าน SSH
$ sudo ufw deny 22/tcp
ทางเลือก: หากคุณใช้ UFW บนพอร์ต 22/TCP อยู่แล้ว ให้อัปเดตไฟร์วอลล์ของคุณเพื่อปฏิเสธการรับส่งข้อมูลขาเข้าบนพอร์ตนั้น อย่าลืมทำเช่นนี้หลังจากที่คุณเข้าสู่ระบบโดยใช้พอร์ต SSH ใหม่
อนุญาต Go EthereumInfuraอนุญาตคำขอขาเข้าจาก Go Ethereum (พอร์ต 30303/TPC และ 30303/UDP) หากคุณใช้บุคคลที่สาม เช่น (
) จัดการโหนด Eth1 คุณสามารถข้ามขั้นตอนนี้ได้
$ sudo ufw allow 30303
หมายเหตุ: หากคุณโฮสต์เซิร์ฟเวอร์ Ubuntu ไว้ในเครื่อง คุณจะต้องกำหนดค่าเราเตอร์เครือข่ายให้อนุญาตการรับส่งข้อมูลขาเข้าจากพอร์ต 30303
อนุญาตเทกุอนุญาตให้มีการเชื่อมต่อแบบเพียร์ทูเพียร์กับเพื่อนของ Teku ดังนั้นบนโหนดบีคอนเชน (Consensysจัดหา
พอร์ตเริ่มต้น 9000/TCP และ 9000/UDP) เพื่อใช้งาน .
$ sudo ufw allow 9000
หมายเหตุ: หากคุณโฮสต์เซิร์ฟเวอร์ Ubuntu ไว้ในเครื่อง คุณจะต้องกำหนดค่าการกำหนดเส้นทางเครือข่ายและไฟร์วอลล์เพื่ออนุญาตการรับส่งข้อมูลขาเข้าจากพอร์ต 9000
อนุญาตให้ Grafana
$ sudo ufw allow 3000/tcp
อนุญาตคำขอขาเข้าไปยังเว็บเซิร์ฟเวอร์ Grafana (พอร์ต 3000/TCP)
อนุญาต Prometheus (ไม่บังคับ)
$ sudo ufw allow 9090/tcp
คุณยังสามารถเปิดพอร์ต 9090/TCP หากคุณต้องการเข้าถึงบริการข้อมูล Prometheus โดยตรง สิ่งนี้ไม่จำเป็นหากคุณใช้ Grafana เพื่อดูข้อมูลเท่านั้น ฉันไม่ได้เปิดพอร์ตนี้
$ sudo ufw enable$ sudo ufw status numbered
จอแสดงผลควรมีลักษณะดังนี้

ชื่อระดับแรก
ขั้นตอนที่ 3: ติดตั้งและเรียกใช้โหนด Go EthereumInfuraติดตั้งและกำหนดค่าโหนด Eth1.0 ที่จะเชื่อมต่อบีคอนเชน หากคุณเลือกบริการของบุคคลที่สาม (เช่น
) คุณสามารถข้ามขั้นตอนนี้ได้
ติดตั้ง Go Ethereum
$ sudo add-apt-repository -y ppa:ethereum/ethereum
ขอแนะนำให้ใช้ PPA (Personal Package Archives, ไฟล์เก็บถาวรการติดตั้งส่วนบุคคล) เพื่อติดตั้งไคลเอ็นต์ Go Ethereum
$ sudo apt update$ sudo apt install geth
อัปเดตแพ็คเกจและติดตั้งเวอร์ชันเสถียรล่าสุด
เรียกใช้ Go Ethereum เป็นบริการพื้นหลัง
$ sudo useradd --no-create-home --shell /bin/false goeth
ต้องสร้างบัญชีเพื่อเรียกใช้บริการนี้ และบัญชีประเภทนี้ไม่สามารถเข้าสู่ระบบเซิร์ฟเวอร์ได้
$ sudo mkdir -p /var/lib/goethereum
สร้างไดเร็กทอรีข้อมูลสำหรับ Eth1 blockchain เพื่อเก็บข้อมูลโหนด Eth1
$ sudo chown -R goeth:goeth /var/lib/goethereum
ตั้งค่าการอนุญาตของไดเร็กทอรี บัญชี goeth ต้องได้รับอนุญาตในการแก้ไขไดเร็กทอรีข้อมูล
$ sudo nano /etc/systemd/system/geth.service
สร้างไฟล์บริการ systemd เพื่อจัดเก็บการกำหนดค่าบริการ เราจะใช้ไฟล์คอนฟิกูเรชันนี้เพื่อสั่งให้ systemd รันกระบวนการ geth
[Unit]Description=Ethereum go client
After=network.target
Wants=network.target[Service]
User=goeth
Group=goeth
Type=simple
Restart=always
RestartSec=5
ExecStart=geth --goerli --http --datadir /var/lib/goethereum[Install]
WantedBy=default.target
คัดลอกและวางการกำหนดค่าบริการต่อไปนี้ลงในเอกสารhttp://localhost:8545)。
flag --goerli ใช้เพื่อค้นหา Göerli testnet และตั้งค่าสถานะ --http ใช้เพื่อแสดงพอร์ต HTTP (

อ้างอิงถึงภาพหน้าจอด้านล่าง บันทึกและออก.
$ sudo systemctl daemon-reload
โหลด systemd ใหม่เพื่อแสดงการเปลี่ยนแปลงข้างต้น
$ sudo systemctl start geth$ sudo systemctl status geth
เริ่มบริการและตรวจสอบเพื่อให้แน่ใจว่าทำงานได้อย่างถูกต้อง

การแสดงผลควรมีลักษณะเหมือนภาพหน้าจอด้านล่าง"หากคุณทำทุกอย่างถูกต้อง มันจะขึ้นว่า "ใช้งานอยู่ (กำลังทำงาน)" เป็นตัวอักษรสีเขียว
. หากไม่ปรากฏขึ้น คุณจะต้องย้อนกลับและทำตามขั้นตอนข้างต้นซ้ำเพื่อแก้ไขปัญหา กด Q เพื่อออก
$ sudo systemctl enable geth
อนุญาตให้บริการ geth เริ่มต้นโดยอัตโนมัติเมื่อรีบูตระบบ
NOTE: Issuing Ctrl+C to quit out of journal doesn’t impact the service. Journal is simply a real-time view of the service logs.
โหนด Go Ethereum จะเริ่มซิงค์ คุณสามารถรันคำสั่งเจอร์นัลเพื่อติดตามความคืบหน้า กด "CTRL+c" เพื่อออก
$ sudo journalctl -fu geth.service
คุณสามารถเพิ่มเพียร์บางคนเมื่อใช้เวลานาน (>10 นาที) ในการค้นหาเพียร์ที่จะซิงค์ เข้าถึงที่นี่ที่นี่
$ sudo systemctl stop geth$ sudo nano /etc/systemd/system/geth.service
หากต้องการรับรายการล่าสุด ให้รันคำสั่งต่อไปนี้เพื่อแก้ไขบริการ geth:
ExecStart=geth --goerli --http --datadir /var/lib/goethereum --bootnodes "enode://46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291@94.237.54.114:30313,enode://119f66b04772e8d2e9d352b81a15aa49d565590bfc9a80fe732706919f8ccd00a471cf8433e398c55c4862aadb4aadf3a010201483b87e8358951698aa0b6f07@13.250.50.139:30303"
แก้ไขบรรทัด ExecStart เพื่อเพิ่มแฟล็ก --bootnodes: แสดงรายการเพียร์ล่าสุดด้านล่าง คั่นด้วยเครื่องหมายจุลภาค
$ sudo systemctl daemon-reload$ sudo systemctl start geth
$ sudo journalctl -fu geth.service
บันทึกไฟล์และออก จากนั้นเริ่มบริการใหม่และดู

ก่อนเรียกใช้บีคอนเชน คุณต้องรอให้โหนดซิงค์ คลิกที่นี่ที่นี่
เข้าถึงบล็อกล่าสุด

ต่อไป เราจะเตรียมข้อมูลการฝากเงินของผู้ตรวจสอบความถูกต้อง หากคุณต้องการตรวจสอบสถานะการซิงค์ คุณสามารถเรียกใช้คำสั่ง sudo journalctl -fu geth.service ได้ตลอดเวลาเพื่อตรวจสอบ
ชื่อระดับแรก
ขั้นตอนที่ 4: สร้างรหัสตัวตรวจสอบและข้อมูลการฝาก
เพื่อให้สามารถเรียกใช้โหนดตัวตรวจสอบความถูกต้องบน Eth2.0 Pyrmont testnet เราจะต้องลงทะเบียนบัญชีตัวตรวจสอบอย่างน้อยหนึ่งบัญชี
หมายเหตุ: หากคุณได้สร้างข้อมูลเงินฝากและส่งเงินฝากจำนำแล้ว คุณสามารถข้ามขั้นตอนนี้ได้ หากคุณสร้างขึ้นที่อื่น คุณจะต้องคัดลอกรหัสยืนยันตัวตนของคุณไปยังเซิร์ฟเวอร์นี้
ขั้นตอนการลงทะเบียนมีดังนี้:
รับ Göerli ETH
สร้างรหัสตรวจสอบความถูกต้อง คีย์แสดงถึงบัญชีผู้ตรวจสอบความถูกต้อง
ฝาก 32 Göerli ETH เข้าแต่ละบัญชีตรวจสอบความถูกต้อง
รอให้บัญชีผู้ตรวจสอบของคุณเปิดใช้งาน
เริ่มกันเลย!
รับ Goerli ETH
ใช้คอมพิวเตอร์ที่ติดตั้งปลั๊กอิน MetaMask ของเบราว์เซอร์
คลิกที่ MetaMask และเข้าสู่ระบบ
คลิกเมนูแบบเลื่อนลงที่ด้านบนและเลือกเครือข่ายทดสอบ Göerli
คลิกที่ชื่อบัญชีและคัดลอกที่อยู่กระเป๋าเงิน Göerli testnet ของคุณauthenticated faucetใช้ที่อยู่ของคุณจากethstaker Discordรับ Göerli ETH หรือผ่านทาง。
#request-goerli-eth channel บนคำสั่งบอท: !goerliEth
หมายเหตุ: ผู้ตรวจสอบต้องการเงินฝาก 32 ETH กระเป๋าเงิน MetaMask ของคุณต้องมี Göerli ETH ที่เพียงพอในไคลเอ็นต์ตัวตรวจสอบแต่ละราย ตัวอย่างเช่น หากคุณต้องการเรียกใช้ตัวตรวจสอบความถูกต้อง 10 ตัว คุณจะต้องใช้ 320 Göerli ETH บวกกับเงินพิเศษ (เช่น 1 Göerli ETH) เพื่อให้ครอบคลุมค่าน้ำมัน
ไปที่
ไปที่ที่นี่ที่นี่

รับ "รุ่นล่าสุด" ของแอปพลิเคชัน Deposit CLI"ใน "สินทรัพย์
$ cd ~$ sudo apt install curl
$ curl -LO https://github.com/ethereum/eth2.0-deposit-cli/releases/download/v1.1.0/eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz
หนึ่งคอลัมน์เพื่อคัดลอกลิงก์นี้ไปยังเวอร์ชัน Linux เราจะใช้ลิงค์นั้นเพื่อดาวน์โหลดตามที่แสดงด้านล่าง แก้ไข URL ในคำสั่งให้เป็นลิงค์ดาวน์โหลดของเวอร์ชันล่าสุด
$ sudo tar xvf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz$ cd eth2deposit-cli-ed5a6d3-linux-amd64
เรียกใช้แอปพลิเคชันเพื่อสร้างข้อมูลเงินฝากและคีย์ตัวตรวจสอบความถูกต้อง
จะจะ
$ sudo ./deposit new-mnemonic --num_validators --mnemonic_language=english --chain pyrmont
เปลี่ยนเป็นจำนวนคีย์ตัวตรวจสอบความถูกต้องที่คุณต้องการสร้าง ตัวอย่างเช่น: --num_validators 5

ระบบจะขอให้คุณสร้างรหัสผ่านกระเป๋าเงิน เราจะใช้สิ่งนี้เพื่อโหลดรหัสตัวตรวจสอบลงในกระเป๋าเงินตัวตรวจสอบความถูกต้องของลูกค้า Teku สำรองข้อมูลไว้ในที่ปลอดภัย

มันสร้างวลีเมล็ด (ช่วยในการจำ) สำรองข้อมูลไว้ที่อื่น นี่เป็นสิ่งสำคัญ คุณจะต้องใช้เพื่อสร้างคีย์การถอนหรือเพิ่มตัวตรวจสอบความถูกต้อง

เมื่อคุณยืนยันความจำของคุณแล้ว รหัสตัวตรวจสอบความถูกต้องของคุณจะถูกสร้างขึ้น
คีย์ตัวตรวจสอบความถูกต้องที่สร้างขึ้นใหม่และไฟล์ข้อมูลเงินฝากจะถูกสร้างขึ้นในสถานที่เฉพาะ ตัวอย่างเช่น: eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys ทำเครื่องหมายไว้ เราจะต้องใช้ในภายหลัง

เนื้อหาของโฟลเดอร์มีดังนี้:secure FTP (SFTP)ไฟล์ deposit_data-[timestamp].json มีรหัสสาธารณะของโปรแกรมตรวจสอบและข้อมูลเกี่ยวกับเงินฝาก เอกสารนี้จะใช้ในขั้นตอนต่อไปเพื่อดำเนินการฝากเงินให้เสร็จสิ้น เนื่องจากเราอยู่บนเซิร์ฟเวอร์และไม่มีเว็บเบราว์เซอร์ ให้ใช้
ย้ายไฟล์ไปยังคอมพิวเตอร์ที่ใช้ MetaMask อย่าลืมทำขั้นตอนนี้ให้เสร็จก่อนดำเนินการต่อ
เอกสาร keystore-m...json มีคีย์การลงนามที่เข้ารหัส บัญชีตัวตรวจสอบความถูกต้องแต่ละบัญชีมีที่เก็บคีย์-m สิ่งเหล่านี้จะใช้เพื่อสร้างกระเป๋าเงินตรวจสอบไคลเอนต์ Teku
$ cd ~$ rm -rf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz
เมื่อคุณมีข้อมูลเงินฝากและไฟล์ที่เก็บคีย์แล้ว ก็ถึงเวลาตั้งค่า Teku เราจำเป็นต้องฝากสินทรัพย์ไว้ในคีย์ (ฝาก Göerli ETH เพื่อเปิดใช้งานตัวตรวจสอบความถูกต้อง) ก่อนตั้งค่า Teku ดังนั้นเราจึงสามารถตรวจสอบการตั้งค่าได้ก่อน หากมีการเปิดใช้งานการฝากเงินของ Validator แต่ระบบยังไม่พร้อม เราจะมีค่าปรับที่ช้าลง
ชื่อระดับแรก
ขั้นตอนที่ 5: เงื่อนไขการติดตั้ง
Teku สร้างขึ้นจากภาษา Java ดังนั้นจึงต้องใช้ Java Runtime Environment (JRE) เพื่อรันและ Java Development Kit (JDK) เพื่อคอมไพล์
$ sudo apt install default-jre default-jdk$ java --version
$ javac --version
จอแสดงผลควรมีลักษณะดังนี้
ethstaker@ETH-STAKER-001:~$ java --versionopenjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
ethstaker@ETH-STAKER-001:~$ javac --version
javac 11.0.9.1
ชื่อระดับแรก
เข้าถึง
เข้าถึงที่นี่ที่นี่

ใช้ฉลาก (ในกรณีนี้ 20.11.0-RC2)
$ cd ~$ git clone --b 20.11.0-RC2 https://github.com/Consensys/teku.git
$ cd teku
ใช้Gradleใช้
$ sudo ./gradlew installDist
เพื่อรวบรวมรหัสเวลาในการสร้างใช้เวลาประมาณ 3-6 นาที ได้เวลาคว้าเครื่องดื่มและเติมน้ำ ยังสามารถอ่านฉัน。
หากการดำเนินการทั้งหมดสำเร็จ โปรดดำเนินการต่อ หากการดำเนินการล้มเหลว โปรดขอความช่วยเหลือในช่อง #teku ของ ConsenSys Discord:https://discord.gg/trQ378WCp4
ชื่อระดับแรก
ขั้นตอนที่ 7: คัดลอกไบนารีของ Teku
$ cd ~$ sudo cp -a teku/build/install/teku/. /usr/local/bin/teku
หมายเหตุ: คุณจะต้องทำเช่นนี้ทุกครั้งที่คุณดึงหรือสร้างไบนารี *teku* เวอร์ชันใหม่ โปรดดูภาคผนวกสุดท้ายของบทช่วยสอนนี้ - Teku Updates
ชื่อระดับแรก
ขั้นตอนที่ 8: กำหนดค่า Beacon Nodes และ Validator Clients
เราจะเรียกใช้ไคลเอนต์ Teku เป็นบริการ ดังนั้นหากระบบรีบูต กระบวนการจะเริ่มต้นใหม่โดยอัตโนมัติ
ตั้งค่าบัญชีและไดเร็กทอรี
$ sudo useradd --no-create-home --shell /bin/false teku
สร้างบัญชีสำหรับการทำงานของโหนดบีคอนและโหนดตัวตรวจสอบความถูกต้อง บัญชีประเภทนี้ไม่สามารถใช้เข้าสู่ระบบเซิร์ฟเวอร์ได้
$ sudo mkdir -p /var/lib/teku$ sudo mkdir -p /etc/teku
สร้างไดเร็กทอรีข้อมูลสำหรับไฟล์ข้อมูลของไคลเอ็นต์ Teku และไดเร็กทอรีการกำหนดค่าสำหรับไฟล์การกำหนดค่าของ Teku
$ sudo cp -a /$HOME/ /var/lib/teku
วิธีนี้ทำให้เรารวมศูนย์เอกสารไว้ในที่เดียวและคัดลอกเอกสารประกอบของ keystore-m...json ไปยังไดเร็กทอรีข้อมูลที่เราสร้างไว้ก่อนหน้านี้ได้กรอกเส้นทางของรหัสยืนยันตัวตนที่คุณสร้างขึ้น
$ cd /var/lib/teku/validator_keys$ ls
$ sudo rm
ตัวอย่างเช่น: eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys เป็นที่น่าสังเกตว่าเราคัดลอกไฟล์ keystore-m เท่านั้น ห้ามคัดลอกเอกสาร deposit_data หากคุณคัดลอกมา ให้ลบออกด้วยรหัสต่อไปนี้

คุณควรได้รับผลลัพธ์ต่อไปนี้ (ขึ้นอยู่กับจำนวนเอกสารตัวตรวจสอบที่คุณมี)
สร้างเอกสารรหัสผ่านตัวตรวจสอบความถูกต้อง
Teku Client กำหนดให้ Authenticators มีไฟล์รหัสผ่านเพื่อเข้าถึงบัญชี Authenticator แต่ละบัญชีในขณะที่เรียกใช้และเริ่มบริการใหม่โดยอัตโนมัติ
$ ls /var/lib/teku/validator_keys
สร้างไฟล์รหัสผ่านที่มีชื่อเดียวกันสำหรับไฟล์ keystore_m*.json แต่ละไฟล์
$ sudo nano /var/lib/teku/validator_keys/.txt
มีอยู่มีอยู่

กรอกชื่อเอกสาร json อย่าลืมใส่ .txt ต่อท้ายด้วย ในไฟล์ txt กรอกรหัสผ่านของที่เก็บรหัสผ่าน (รหัสผ่านที่คุณระบุเมื่อสร้างไฟล์ตัวตรวจสอบความถูกต้องในขั้นตอนที่ 4) ไปยัง YourKeystorePasswordForThisValidator บันทึกและเปิดใช้ ทำซ้ำขั้นตอนข้างต้นสำหรับแต่ละไฟล์ *.json

คุณควรได้รับผลลัพธ์ต่อไปนี้ ขั้นตอนนี้เสร็จสิ้น
หมายเหตุ: ไม่ควรมีไฟล์ *deposit_data-\*.json* อยู่ ถ้ามีให้ลบออก ทำให้เกิดการจับคู่ผิดเนื่องจากไคลเอนต์ Teku คาดว่าจะมีไฟล์รหัสผ่านที่สอดคล้องกัน
การตั้งค่าสิทธิ์
$ sudo chown -R teku:teku /var/lib/teku$ sudo chown -R teku:teku /etc/teku
$ ls -dl /var/lib/teku; ls -dl /etc/teku
ตั้งค่าการอนุญาตไดเรกทอรี บัญชี teku ต้องได้รับอนุญาตในการแก้ไขไดเร็กทอรีหมายเลข ตรวจสอบว่ามีการตั้งค่าสิทธิ์ของไดเร็กทอรีอย่างถูกต้อง

ควรมีลักษณะดังนี้:
$ sudo chmod -R 700 /var/lib/teku/validator_keys$ sudo ls -lh /var/lib/teku/validator_keys
ใช้การอนุญาตเอกสารกับคีย์ผู้รับรองเพื่อเพิ่มชั้นความปลอดภัยและป้องกันการลบโดยไม่ตั้งใจ ให้สิทธิ์ในการอ่าน/เขียน/ดำเนินการแก่ผู้ใช้ (teku) ยืนยันว่าตั้งค่าการอนุญาตเอกสารอย่างถูกต้อง

ผลลัพธ์ควรมีลักษณะเช่นนี้
ตอนนี้เราได้ตั้งค่าคีย์ตัวรับรองความถูกต้องและข้อความรหัสผ่านแล้ว ก็ถึงเวลากำหนดค่าบริการ
สร้างไฟล์กำหนดค่า Teku
$ sudo nano /etc/teku/teku.yaml
ลูกค้า Teku สามารถอ่านตัวเลือกบรรทัดคำสั่งผ่านไฟล์กำหนดค่า สร้างเลย
data-base-path: "/var/lib/teku"network: "pyrmont"eth1-endpoint: "http://127.0.0.1:8545/"validator-keys: "/var/lib/teku/validator_keys:/var/lib/teku/validator_keys"validators-graffiti: ""p2p-port: 9000log-destination: CONSOLEmetrics-enabled: truemetrics-port: 8008rest-api-enabled: true
rest-api-docs-enabled: true
วางรหัสด้านล่างลงในเอกสาร
flagdata-base-path กำหนดตำแหน่งที่บริการเก็บข้อมูล
แฟล็กตัวตรวจสอบคีย์ระบุตำแหน่งของไฟล์คีย์ในไฟล์รหัสผ่าน ด้วยวิธีนี้ พวกเขาทั้งหมดอยู่ในไดเร็กทอรีเดียวกัน
มีอยู่มีอยู่"abcdefg12345"。
ใส่ข้อความที่คุณต้องการ ตัวอย่างเช่น: ตัวตรวจสอบความถูกต้อง-กราฟฟิตี:
ปลายทางล็อก: แนะนำให้ใช้การตั้งค่า CONSOLE เมื่อใช้ systemd

อ้างอิงถึงภาพหน้าจอด้านล่าง เอกสารของคุณควรคล้ายกัน ออกและบันทึก
สร้างและกำหนดค่าบริการ Teku
$ sudo nano /etc/systemd/system/teku.service
สร้างไฟล์บริการ systemd เพื่อจัดเก็บบริการการกำหนดค่า
[Unit]Description=Teku Client
Wants=network-online.target
After=network-online.target[Service]
Type=simple
User=teku
Group=teku
Restart=always
RestartSec=5
Environment="JAVA_OPTS=-Xmx2g"
ExecStart=/usr/local/bin/teku/bin/teku --config-file=/etc/teku/teku.yaml[Install]
WantedBy=multi-user.target
คัดลอกและวางโค้ดด้านล่างลงในเอกสาร
Java (ภาษาโปรแกรมที่ใช้โดย Teku) ได้รับการออกแบบให้ใช้ RAM เป็นจำนวนมากเมื่อทำงาน flagEnvironment="JAVA_OPTS=-Xmx2g" จำกัดขนาดฮีปไว้ที่ 2GB ดังนั้น Teku จึงทำงานโดยมีหน่วยความจำทั้งหมดประมาณ 3–3.5GB

อ้างอิงถึงภาพหน้าจอด้านล่าง เอกสารของคุณควรคล้ายกัน ออกและบันทึก
$ sudo systemctl daemon-reload
โหลด systemd ใหม่เพื่อแสดงการเปลี่ยนแปลง
หมายเหตุ: หากคุณกำลังเรียกใช้โหนด Eth1 ในเครื่อง (ดูขั้นตอนที่ 3) คุณควรรอจนกว่าจะซิงค์อย่างสมบูรณ์ก่อนที่จะเริ่มบริการ Teku ตรวจสอบความคืบหน้าที่นี่: *sudo journalctl -fu geth.service*
$ sudo systemctl start teku$ sudo systemctl status teku
เริ่มบริการและตรวจสอบเพื่อให้แน่ใจว่าทำงานอย่างถูกต้อง

ผลลัพธ์ที่แสดงควรเป็นดังนี้:"หากคุณทำทุกอย่างถูกต้อง มันจะขึ้นว่า "ใช้งานอยู่ (กำลังทำงาน)" เป็นตัวอักษรสีเขียว
. หากไม่ปรากฏขึ้น คุณจะต้องย้อนกลับและทำตามขั้นตอนข้างต้นซ้ำเพื่อแก้ไขปัญหา กด Q เพื่อออก
$ sudo systemctl enable teku
อนุญาตให้บริการรีสตาร์ทโดยอัตโนมัติเมื่อระบบรีสตาร์ท
โหนดสัญญาณจะเริ่มซิงโครไนซ์ข้อมูล อาจใช้เวลาหลายชั่วโมงในการซิงค์ให้สมบูรณ์ คุณสามารถติดตามความคืบหน้าได้โดยการรันคำสั่งเจอร์นัล กด CTRL+c เพื่อออก
$ sudo journalctl -fu teku.service
หมายเหตุ: การกด Ctrl+C เพื่อออกจากเจอร์นัลจะไม่ส่งผลต่อบริการ วารสารบ่งชี้มุมมองตามเวลาจริงของบันทึกการบริการ
Started Teku Client....
INFO - Loading 2 validator keys...
INFO - BLS: loaded BLST library
INFO - Loaded 2 Validators: 96a349b, b7f51b6
...
INFO - Sync Event *** Current slot: 30174, Head slot: 54, Connected peers: 1
INFO - Sync Event *** Current slot: 30175, Head slot: 92, Connected peers: 6
INFO - Sync Event *** Current slot: 30176, Head slot: 128, Connected peers: 8
INFO - Sync Event *** Current slot: 30177, Head slot: 160, Connected peers: 10
ขั้นตอนนี้สิ้นสุดลงแล้ว ตอนนี้เรามีบีคอนเชนและโหนดตัวตรวจสอบความถูกต้อง ยินดีด้วย! คุณยอดเยี่ยมมาก!
ชื่อระดับแรก
ขั้นตอนที่ 9: ทำการฝากเงิน Validator
ตอนนี้การตั้งค่าของคุณเริ่มทำงานแล้ว คุณต้องฝาก 32 Göerli ETH ไปที่ Pyrmont testnet
หมายเหตุ: หากคุณได้ส่งเงินฝากจำนำแล้ว คุณสามารถข้ามขั้นตอนนี้ได้
ขั้นตอนนี้เกี่ยวกับการฝาก Göerli ETH ที่จำเป็นในสัญญาการฝากเงินของ Pyrmont testnet สิ่งนี้จำเป็นต้องเปิดกระเป๋าเงิน MetaMask (หรืออื่น ๆ ) ของคุณผ่านเว็บไซต์ Launchpad ของ Pyrmont บนเบราว์เซอร์
หมายเหตุ: หากบทช่วยสอนนี้มีไว้สำหรับ mainnet (ซึ่งไม่ใช่) คุณจะต้องรอจนกว่าโหนด Eth1 และโหนดบีคอนจะซิงค์อย่างสมบูรณ์ก่อนทำการฝากเงิน หากคุณไม่ทำ คุณอาจถูกปรับให้ทำงานช้าลงเมื่อโหนด Eth1 หรือบีคอนเชนกำลังซิงค์https://pyrmont.launchpad.ethereum.org/
Launchpad สำหรับ Pyrmont testnet:

คลิกผ่านขั้นตอนการเตือนต่อไปเมื่อหน้าจอเปลี่ยนไปจนกว่าจะถึงส่วนการสร้างคู่คีย์ เลือกจำนวนตัวตรวจสอบที่คุณต้องการเรียกใช้ เลือกค่าที่ตรงกับจำนวนไฟล์ผู้รับรองที่คุณสร้างขึ้นในขั้นตอนที่ 4

เลื่อนลงมาเพื่อดูว่าคุณเห็นด้วยกับเนื้อหาหรือไม่ จากนั้นคลิก "ดำเนินการต่อ"

ระบบจะขอให้คุณอัปโหลดไฟล์ deposit_data-[timestamp].json คุณสร้างเอกสารนี้ในอากาศ คัดลอกไปยังคอมพิวเตอร์ด้วยเบราว์เซอร์ เรียกดู/เลือก หรือลากและวางเอกสาร จากนั้นคลิกดำเนินการต่อ

เชื่อมต่อกระเป๋าเงินของคุณ เลือก MetaMask (หรือกระเป๋าเงินอื่นๆ ที่รองรับ) เข้าสู่ระบบ เลือกเครือข่ายการทดสอบ Göerli ที่จัดเก็บ Göerli ETH ของคุณ แล้วคลิก ดำเนินการต่อ
หมายเหตุ: โปรดมั่นใจ 100% ว่าคุณเลือกเครือข่ายทดสอบ Göerli บน MetaMask อย่าส่ง ETH จริงไปยัง Pyrmont testnet

ข้อมูลสรุปจะปรากฏขึ้นโดยแสดงจำนวนผู้ตรวจสอบความถูกต้องและจำนวน Göerli ETH ที่ต้องการ ทำเครื่องหมายในช่องเหล่านั้นหากคุณเห็นด้วย จากนั้นคลิกดำเนินการต่อ

คลิก"Initiate All Transactions"คลิก

(เริ่มการทำธุรกรรมทั้งหมด)

MetaMask หลายอินสแตนซ์จะปรากฏขึ้น โดยแต่ละอินสแตนซ์จะส่งคำขอธุรกรรมสำหรับ 32 Göerli ETH ไปยัง Pyrmont testnet กรุณายืนยันการทำธุรกรรมแต่ละครั้ง

เมื่อธุรกรรมทั้งหมดเสร็จสมบูรณ์ เงินเดิมพันของคุณก็เสร็จสมบูรณ์!

ยินดีด้วย!

จะมีรายการตรวจสอบในตอนท้าย มีข้อมูลที่เป็นประโยชน์มากมายอยู่ในนั้น คุณสามารถดู
ตรวจสอบสถานะเงินฝากตรวจสอบความถูกต้องของคุณ

ผู้ตรวจสอบความถูกต้องที่เข้าร่วมใหม่จะต้องรอ (สองสามชั่วโมงถึงสองสามวัน) เพื่อเปิดใช้งาน คุณสามารถตรวจสอบสถานะของคีย์ได้โดยทำตามขั้นตอนเหล่านี้:
คัดลอกที่อยู่กระเป๋าสตางค์ Göerli testnet ของคุณhttps://pyrmont.beaconcha.in/
ไปที่:

ค้นหาที่อยู่กระเป๋าเงินของคุณ รหัสของคุณจะปรากฏขึ้น

ตอนนี้คุณมี beacon chain ที่ใช้งานได้ โหนดเครื่องมือตรวจสอบความถูกต้อง และ testnet ฝากไว้ข้างหน้าคุณ เมื่อเปิดใช้งานเงินฝากของคุณ คุณจะเริ่มทำงานและรับรายได้ ยินดีด้วย!
ชื่อระดับแรก
Prometheus เป็นระบบโอเพ่นซอร์สที่ให้ความสามารถในการตรวจสอบและกล่องเครื่องมือแจ้งเตือน มันทำงานเป็นบริการบนเซิร์ฟเวอร์ Ubuntu ของคุณและหน้าที่คือการดึงข้อมูล สำหรับข้อมูลเพิ่มเติมโปรดดูที่นี่。
ที่นี่
เราจะใช้ Prometheus เพื่อเปิดเผยบีคอนเชน ข้อมูลรันไทม์ของตัวตรวจสอบความถูกต้อง และข้อมูลเฉพาะอินสแตนซ์
สร้างบัญชีผู้ใช้
$ sudo useradd --no-create-home --shell /bin/false prometheus$ sudo useradd --no-create-home --shell /bin/false node_exporter
บริการเหล่านี้ดำเนินการภายใต้บัญชี บัญชีเหล่านี้ไม่สามารถเข้าสู่เซิร์ฟเวอร์ได้
สร้างไดเร็กทอรี
$ sudo mkdir /etc/prometheus$ sudo mkdir /var/lib/prometheus
ไดเร็กทอรีโปรแกรมและข้อมูล
$ sudo chown -R prometheus:prometheus /etc/prometheus$ sudo chown -R prometheus:prometheus /var/lib/prometheus
ดาวน์โหลดซอฟต์แวร์ Prometheus
จากจากหน้าดาวน์โหลด Prometheus
$ cd ~$ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.22.2/prometheus-2.22.2.linux-amd64.tar.gz
แก้ไขหมายเลขเวอร์ชันของเวอร์ชันล่าสุด ผู้ใช้ Rpi ควรได้รับไบนารี ARM อย่างแน่นอน
$ tar xvf prometheus-2.22.2.linux-amd64.tar.gz
เปิดไฟล์เก็บถาวร tar ประกอบด้วยเอกสารไบนารีสองชุดและเอกสารเนื้อหาบางส่วน
$ sudo cp prometheus-2.22.2.linux-amd64/prometheus /usr/local/bin/$ sudo cp prometheus-2.22.2.linux-amd64/promtool /usr/local/bin/
คัดลอกไบนารีไปยังตำแหน่งต่อไปนี้
$ sudo chown -R prometheus:prometheus /usr/local/bin/prometheus$ sudo chown -R prometheus:prometheus /usr/local/bin/promtool
ตั้งค่าความเป็นเจ้าของไดเร็กทอรี บัญชีโพรจะจัดการสิ่งเหล่านี้
$ sudo cp -r prometheus-2.22.2.linux-amd64/consoles /etc/prometheus$ sudo cp -r prometheus-2.22.2.linux-amd64/console_libraries /etc/prometheus
คัดลอกเอกสารเนื้อหาเหล่านี้ไปยังตำแหน่งต่อไปนี้
$ sudo chown -R prometheus:prometheus /etc/prometheus/consoles$ sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
ตั้งค่าความเป็นเจ้าของไดเร็กทอรีและไฟล์ (-R) บัญชีโพรจะจัดการสิ่งเหล่านี้
$ rm -rf prometheus-2.22.2.linux-amd64.tar.gz prometheus-2.22.2.linux-amd64
ลบไฟล์เก็บถาวรการดาวน์โหลด
แก้ไขไฟล์การกำหนดค่า
Prometheus ใช้ไฟล์คอนฟิกูเรชันเพื่อให้ทราบตำแหน่งที่จะดึงข้อมูล
$ sudo nano /etc/prometheus/prometheus.yml
เปิดไฟล์การกำหนดค่า YAML เพื่อแก้ไข
global: scrape_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "teku"
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets: ["localhost:8008"]
คัดลอกรหัสด้านล่างลงในเอกสาร ระวังอย่าทำการแก้ไขอื่นใด และออกเพื่อบันทึกไฟล์
$ sudo chown -R prometheus:prometheus /etc/prometheus/prometheus.yml
ตั้งค่าความเป็นเจ้าของสำหรับไฟล์ปรับแต่ง บัญชีโพรจะมีความเป็นเจ้าของนี้
$ sudo -u prometheus /usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
สุดท้าย ทดสอบว่าเซิร์ฟเวอร์ทำงานอย่างถูกต้อง
level=info ts=2020-11-22T17:24:35.396Z caller=main.go:684 msg="Server is ready to receive web requests."
ผลลัพธ์ควรเป็นดังนี้ กด Ctrl+C เพื่อออก
ตั้ง Prometheus เป็นบริการเริ่มต้นอัตโนมัติ
$ sudo nano /etc/systemd/system/prometheus.service
สร้างไฟล์บริการ systemd เพื่อจัดเก็บไฟล์กำหนดค่าบริการ ซึ่งจะบอกให้ systemd เรียกใช้ Prometheus ในฐานะผู้ใช้ prometheus วางไฟล์การกำหนดค่าในไดเร็กทอรี /etc/prometheus/prometheus.yml และบันทึกลงในไดเร็กทอรี /var/lib /โพรมีธีอุส.
[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.libraries=/etc/prometheus/console_libraries[Install]
WantedBy=multi-user.target
คัดลอกรหัสต่อไปนี้ลงในเอกสาร ออกและบันทึก
$ sudo systemctl daemon-reload
โหลด systemd ใหม่เพื่อแสดงการเปลี่ยนแปลง
$ sudo systemctl start prometheus$ sudo systemctl status prometheus
จากนั้นเริ่มบริการด้วยคำสั่งด้านล่างและตรวจสอบสถานะเพื่อให้แน่ใจว่าทำงานอย่างถูกต้อง

ผลลัพธ์ควรเป็นดังที่แสดงด้านล่าง"หากคุณทำทุกอย่างถูกต้อง มันจะขึ้นว่า "ใช้งานอยู่ (กำลังทำงาน)" เป็นตัวอักษรสีเขียว
ข้อความ
$ sudo systemctl enable prometheus
ชื่อระดับแรก
ขั้นตอนที่ 11: ติดตั้ง Node ExporterNode_Exporterส่วนขยาย. หากคุณระบุเวอร์ชันอื่นด้านล่าง คุณสามารถค้นหาได้ในที่นี่ที่นี่
$ cd ~$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
ค้นหาเวอร์ชันเสถียรล่าสุด ผู้ใช้ Rpi อย่าลืมรับไบนารี ARM
$ tar xvf node_exporter-1.0.1.linux-amd64.tar.gz
เปิดซอฟต์แวร์ที่ดาวน์โหลดมา
$ sudo cp node_exporter-1.0.1.linux-amd64/node_exporter /usr/local/bin$ sudo chown -R node_exporter:node_exporter /usr/local/bin/node_exporter
คัดลอกไบนารีไปยังไดเร็กทอรี /usr/local/bin และตั้งค่าความเป็นเจ้าของผู้ใช้และกลุ่มเป็นผู้ใช้ node_exporter ที่เราสร้างไว้ก่อนหน้านี้
$ rm -rf node_exporter-1.0.1.linux-amd64.tar.gz node_exporter-1.0.1.linux-amd64
ลบไฟล์เก็บถาวรที่ดาวน์โหลด
ตั้งค่า Node Exporter เป็นบริการที่เริ่มต้นโดยอัตโนมัติ
$ sudo nano /etc/systemd/system/node_exporter.service
สร้างไฟล์บริการ systemd เพื่อจัดเก็บไฟล์กำหนดค่าบริการ ซึ่งจะบอกให้ systemd เรียกใช้ Node_Exporter ในฐานะผู้ใช้ node_exporter
[Unit]Description=Node Exporter
Wants=network-online.target
After=network-online.target[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter[Install]
WantedBy=multi-user.target
คัดลอกรหัสต่อไปนี้ลงในเอกสาร ออกและบันทึก
$ sudo systemctl daemon-reload
โหลด systemd ใหม่เพื่อแสดงการเปลี่ยนแปลง
$ sudo systemctl start node_exporter$ sudo systemctl status node_exporter
จากนั้นเริ่มบริการด้วยคำสั่งด้านล่างและตรวจสอบสถานะเพื่อให้แน่ใจว่าทำงานอย่างถูกต้อง

ผลลัพธ์ควรเป็นดังที่แสดงด้านล่าง"หากคุณทำทุกอย่างถูกต้อง มันจะขึ้นว่า "ใช้งานอยู่ (กำลังทำงาน)" เป็นตัวอักษรสีเขียว
. หากไม่ปรากฏขึ้น คุณจะต้องย้อนกลับและทำตามขั้นตอนข้างต้นซ้ำเพื่อแก้ไขปัญหา กด Q เพื่อออก
$ sudo systemctl enable node_exporter
สุดท้าย อนุญาตให้ Node Exporter เริ่มต้นด้วยการบูตระบบ
ทดสอบ Prometheus และ Node Exporter (ทางเลือก):9090 คุณสามารถเลือกทดสอบการทำงานของมันได้ คุณสามารถเรียกใช้แบบสอบถามเพื่อดูข้อมูลต่างๆ ตัวอย่างเช่น คุณสามารถลองใช้ข้อความค้นหานี้เพื่อดูว่ามีหน่วยความจำเท่าใด:
http://:9090/new/graph?g0.expr=node_memory_MemFree_bytes&g0.tab=1&g0.stacked=0&g0.range_input=1h
ชื่อระดับแรก
ขั้นตอนที่ 12: ติดตั้ง Grafana
Prometheus เป็นแหล่งข้อมูลของเรา และ Grafana ให้ฟังก์ชันการรายงานข้อมูลแดชบอร์ดแก่เรา ถัดไปติดตั้ง Grafana และกำหนดค่าแดชบอร์ด
เราจะใช้ที่เก็บ APT สำหรับการติดตั้ง เนื่องจากจะทำให้การติดตั้งและอัปเดตง่ายขึ้น Grafana สามารถพบได้ในที่เก็บแพ็คเกจอย่างเป็นทางการของ Ubuntu แต่เวอร์ชันนั้นอาจไม่ใช่เวอร์ชันล่าสุด ดังนั้นเราจะใช้ที่เก็บอย่างเป็นทางการของ Grafana
$ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
ดาวน์โหลดคีย์ Grafana GPG ด้วย wget จากนั้นไพพ์ผลลัพธ์ไปยัง apt-key การดำเนินการนี้จะเพิ่มคีย์ในรายการคีย์ที่เชื่อถือได้สำหรับการติดตั้ง APT ของคุณ
$ sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
เพิ่มที่เก็บ Grafana ไปยังแหล่งที่มาของ APT
$ sudo apt update
ล้างแคช apt
$ apt-cache policy grafana
ยืนยันว่า Grafana ได้รับการติดตั้งจากที่เก็บ
grafana: Installed: (none)
Candidate: 7.3.3
Version table:
7.3.3 500
500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
7.3.2 500
500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
7.3.1 500
500 https://packages.grafana.com/oss/deb stable/main amd64
...
ตรวจสอบว่าเวอร์ชันที่แสดงด้านบนตรงกับที่นี่ที่นี่
$ sudo apt install grafana
เวอร์ชันล่าสุดที่แสดงตรงกัน จากนั้นดำเนินการติดตั้งต่อ
$ sudo systemctl start grafana-server$ sudo systemctl status grafana-server
เริ่มเซิร์ฟเวอร์ Grafana และตรวจสอบสถานะเพื่อให้แน่ใจว่าทำงานอย่างถูกต้อง

ผลลัพธ์ควรมีลักษณะดังนี้:"หากคุณทำทุกอย่างถูกต้อง มันจะขึ้นว่า "ใช้งานอยู่ (กำลังทำงาน)" เป็นตัวอักษรสีเขียว
. หากไม่ปรากฏขึ้น คุณจะต้องย้อนกลับและทำตามขั้นตอนข้างต้นซ้ำเพื่อแก้ไขปัญหา กด Q เพื่อออก
$ sudo systemctl enable grafana-server
อนุญาตให้ Grafana เริ่มต้นด้วยการบูตระบบ
กำหนดค่าการเข้าสู่ระบบ Grafanaทำได้ดีมาก! เมื่อตั้งค่าและเรียกใช้ทุกอย่างแล้ว คุณสามารถไปที่ http://
:3000/ หน้าต่างเข้าสู่ระบบ Grafana จะปรากฏขึ้น
ป้อนชื่อผู้ใช้และรหัสผ่านในผู้ดูแลระบบ ระบบจะขอให้คุณเปลี่ยนรหัสผ่าน โปรดดำเนินการ
กำหนดค่าแหล่งข้อมูลของ Grafana

มากำหนดค่าแหล่งข้อมูลกันเถอะ เลื่อนเมาส์ไปที่ไอคอนรูปเฟืองบนแถบเมนูด้านซ้าย เมนูจะปรากฏขึ้น - เลือกแหล่งข้อมูล


คลิก เพิ่มแหล่งข้อมูล และเลือก Prometheus ป้อน http://localhost:9090 ใน URL จากนั้นคลิก บันทึกและทดสอบ
นำเข้าแดชบอร์ด Grafana
เลื่อนเมาส์ไปที่ไอคอน + บนแถบเมนูด้านซ้าย เมนูจะปรากฏขึ้น เลือกนำเข้าใช้รหัส 13457 เพื่อนำเข้าตัวตรวจสอบเดียวอย่างเป็นทางการของ Tekuแผงควบคุมหรือนำเข้า Ben Eddington ด้วยรหัส 12522

แผงควบคุม

ชื่อระดับแรก
เขียนในตอนท้าย
เขียนในตอนท้าย
แค่นั้นแหละ! หวังว่าบทช่วยสอนนี้จะช่วยคุณได้Twitterหากคุณมีข้อเสนอแนะใด ๆ คุณสามารถค้นหาได้ที่Redditหรือ
ติดต่อฉันได้ที่friends linkหากคุณชอบบทช่วยสอนนี้และต้องการให้ผู้อื่นทำตาม โปรดใช้
แบ่งปันบทช่วยสอน!
สนับสนุน: somer.eth
มีอยู่
มีอยู่ที่นี่ที่นี่ค้นหาเวอร์ชันที่คุณต้องการแล้วป้อนลงไป
$ cd ~$ cd teku
$ sudo git fetch --tags && git checkout
$ sudo ./gradlew installDist
$ sudo systemctl stop teku
$ sudo rm -r /usr/local/bin/teku # <-- Delete old build
$ sudo cp -a ~/teku/build/install/teku/. /usr/local/bin/teku
$ sudo systemctl start teku
$ sudo systemctl status teku # <-- Check status
$ sudo journalctl -fu teku # <-- Check status
. ตัวอย่างเช่น $ git fetch --tags && git checkout 20.11.0-RC2
บัญชีอย่างเป็นทางการ: สถานีจีน ETH
เว็บไซต์: ethereum.cn


