BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

手把手帶你參與以太坊2.0 Pyrmont測試網質押

ECN以太坊中国
特邀专栏作者
本文約20212字,閱讀全文需要約29分鐘
如何參與Pyrmont測試網質押,Teku篇。
AI總結
展開
如何參與Pyrmont測試網質押,Teku篇。

來源|someresat.medium.com

來源|

來源|

參數

  • 此篇指南包括以下指令:

  • 儀錶盤

  • 此篇指南包括以下指令:

  • 連接並安全配置一個新運行的Ubuntu服務器用例

  • 一級標題

  • 一級標題

提醒

提醒

不要按照這份指南連接Eth2主網。主網專用指南請參考《以太坊2.0主網質押教學(Ubuntu/Teku)》。

一級標題

一級標題

致謝與免責聲明ConsenSys Discord感謝EthStaker本教程參考了網上的各種資料,感謝這些提供資料的貢獻者!

一級標題

一級標題

支持

支持

條件

條件

條件

  • 條件使用本教程需要對以太坊、ETH、Staking、測試網、Linux 和MetaMask 有一定的背景知識。

  • 此教程還需要在開始前安裝並運行:MetaMask。一台裝有操作系統(Mac、Windows、Linux等) 和瀏覽器(Brave、Safari、FireFox等) 的計算機。

一級標題

一級標題

一級標題

  • 要求

  • 一級標題

  • 硬件要求是一個比較大的話題。總的來說:一個相對較新的CPU、8GB內存的RAM (16GB更佳)、一個內存至少1TB 的SSD 、穩定的網絡(足夠快的下載速度以及月度數據額度),這些性能都會讓質押過程更加安全順暢。

一級標題

一級標題

一級標題

  • 概覽

  • 本教程篇幅較長,下面這個圖表簡要說明了質押的步驟,標黃的即是本文會覆蓋到的部分:

  • 整個流程可以概念化表述為:

  • 設置一個Eth1 節點並同步Eth1 Göerli 測試網的數據;

那我們現在就開始吧!

一級標題

使用一個SSH端口,連接至你的Ubuntu服務器。在默認情況下,Ubuntu上的root賬戶通常都是禁用的,然而有些雲提供商可以啟動root賬戶。如果你用root登錄,最好是重新創建一個擁有管理權限的用戶賬戶,因為使用root用戶登錄存在很大的風險。

風險

# adduser

風險

風險

# usermod -aG sudo

注意:如果你不是用root登錄的便可以直接跳到第1步。設置一個密碼並填寫其他信息。

通過把新的用戶加入sudo群組中,來授予其管理權限。當你用你的用戶名登錄時,可以通過在命令行前輸入sudo,來以超級用戶的權限執行操作。

# rsync --archive --chown=: ~/.ssh /home/

可選:如果你通過root 賬戶使用登入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

$ sudo ss -tulpn | grep ':'

允許通過SSH連接到服務器。為了安全,接下來我們要修改默認端口22 (因為這是一個普遍的攻擊矢量)。注意:如果你選擇不修改默認SSH端口(不建議),那就要加一項操作——允許默認SSH端口*$ sudo ufw allow 22/tcp* ,然後跳到允許“Go Ethereum”這一步。

$ sudo ufw allow /tcp

在1024 — 49151之間選擇一個端口號,然後運行以下命令以檢索尚未使用的端口號。如果顯示紅色(被使用了),就選擇另一個端口。比如: sudo ss -tulpn | grep ':6673'

$ sudo nano /etc/ssh/sshd_config

更新防火牆,允許的入站流量。 SSH要求TCP協議。比如:sudo ufw allow 6673/tcp

下一步,修改默認SSH端口。

$ sudo systemctl restart ssh

找到默認端口# Port 22 或Port 22,然後修改你自己的端口號Port 。

。刪掉# (如果有的話)。參考下方的截圖,你的文檔應該和下圖展示的類似(除了端口號不一樣)。保存然後退出。

$ sudo ufw deny 22/tcp

重啟SSH服務

下次你通過SSH登錄時就使用你的端口號Infura可選:如果你已經使用端口22/TCP 的UFW了,那就更新防火牆以拒絕該端口的入站流量。請務必在你使用新SSH端口登錄之後在操作這一步。

允許Go Ethereum

$ sudo ufw allow 30303

允許來自Go Ethereum對等節點(端口30303/TPC 和30303/UDP) 的入站請求。如果你使用第三方(如(

) 託管的Eth1 節點,則可以跳過這一步。允許Teku提供

允許與Teku 的對等節點進行點對點連接,以便在信標鏈節點上(Consensys

$ sudo ufw allow 9000

提供

的默認端口9000/TCP和9000/UDP) 進行操作。 .

$ sudo ufw allow 3000/tcp

注意:如果你在本地託管你的Ubuntu服務器,你需要配置你的網絡路由和防火牆以允許來自端口9000 的入站流量。

允許Grafana

$ sudo ufw allow 9090/tcp

允許訪問Grafana web 服務器(端口3000/TCP) 的入站請求。

$ sudo ufw enable$ sudo ufw status numbered

顯示應該是這樣的

一級標題

一級標題Infura一級標題

第3步:安裝並運行Go Ethereum 節點

安裝並配置Eth1.0的節點,信標鏈將與該節點相連。如果你選擇第三方服務(如

$ sudo add-apt-repository -y ppa:ethereum/ethereum

) 的話,可以跳過這一步。

$ sudo apt update$ sudo apt install geth

安裝Go Ethereum

建議使用PPA (Personal Package Archives,個人安裝包存檔) 安裝Go Ethereum客戶端。

$ sudo useradd --no-create-home --shell /bin/false goeth

更新軟件包並安裝最新的穩定版本。

$ sudo mkdir -p /var/lib/goethereum

將Go Ethereum作為後台服務來運行

$ sudo chown -R goeth:goeth /var/lib/goethereum

運行該服務需要創建一個賬戶,此種類型的賬戶無法登錄服務器。

$ sudo nano /etc/systemd/system/geth.service

為Eth1區塊鏈創建數據目錄,用來存儲Eth1節點數據。

[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

設置目錄的權限。 goeth 賬戶需要權限來修改該數據目錄。http://localhost:8545)。

創建一個systemd服務文件來儲存該服務配置。我們將使用該配置文件來命令systemd運行geth 進程。

將下列的服務配置複製粘貼到文檔中。

$ sudo systemctl daemon-reload

flag --goerli 用於定位Göerli 測試網,而flag --http 用來公開與信標鏈節點連接的一個HTTP端口 (

$ sudo systemctl start geth$ sudo systemctl status geth

參考下方的截圖。保存然後退出。

重新加載systemd 以顯示上述的更改"啟動服務,並檢查確保其正常運行。

顯示應如下方截圖。

$ sudo systemctl enable geth

如果你每一步都做對了,它會用綠色字體顯示”active (running)

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.

。如果沒有顯示,你需要倒回去重複上述步驟,修復問題。按Q退出。

$ sudo journalctl -fu geth.service

當你花較長的時間(>10分鐘) 來找到需要同步的對等節點時,你可以添加一些對等節點。訪問此處此處

$ sudo systemctl stop geth$ sudo nano /etc/systemd/system/geth.service

此處

ExecStart=geth --goerli --http --datadir /var/lib/goethereum --bootnodes "enode://46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291@94.237.54.114:30313,enode://119f66b04772e8d2e9d352b81a15aa49d565590bfc9a80fe732706919f8ccd00a471cf8433e398c55c4862aadb4aadf3a010201483b87e8358951698aa0b6f07@13.250.50.139:30303"

此處

$ sudo systemctl daemon-reload$ sudo systemctl start geth
$ sudo journalctl -fu geth.service

以獲得最新的清單,並操作下列命令行以修改geth服務:

在運行信標鏈之前,你需要等待節點同步完成。點擊此處此處

此處

接下來,我們將準備驗證者存款數據。如果你想查看同步狀態,你可以在任意時間運行命令sudo journalctl -fu geth.service 以查看。

一級標題

一級標題

一級標題

第4步:生成驗證者密鑰和存款數據

  • 為了能在Eth2.0 Pyrmont測試網上運行驗證者節點,我們將需要註冊一個或多個驗證者賬戶。

  • 注意:如果你已經生成了你的存款數據並提交了你的質押存款,你可以跳過這一步。如果你是在別處生成的,你需要復制你的驗證者密鑰到這個服務器上。

  • 註冊步驟如下:

  • 獲取Göerli ETH

生成驗證者密鑰。一個密鑰代表一個驗證者賬戶。

向每個驗證者賬戶各存入32個Göerli ETH

  • 等候你的驗證者賬戶被激活

  • 那我們現在就開始吧!

  • 獲取Goerli ETH

  • 使用已經安裝了瀏覽器插件MetaMask的計算機。

  • 點擊MetaMask然後登錄authenticated faucet點擊頂部的下拉菜單,選擇Göerli 測試網絡ethstaker Discord點擊賬戶名,複製你的Göerli 測試網錢包地址。

使用你的地址從

前往

前往

前往這裡這裡

這裡"在“asset

$ 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

獲取存款命令行接口應用的“最新發布”。

$ 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 客戶端的驗證者錢包。把它備份到安全的地方。

它會生成一個種子短語(助記符)。把它備份到其他地方。這很重要,你將需要它來生成提款密鑰或者添加驗證者。

一旦你已經確認了你的助記符,你的驗證者密鑰就會被創建。secure FTP (SFTP)新創建的驗證者密鑰和存款數據文檔會在一個特定地方被創建。比如:eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys 。標記一下,我們待會會用到。

文件夾的內容見下:

deposit_data-[timestamp].json文檔包含了驗證者的公鑰和存款的相關信息。這個文檔會在下一步用來完成存款進程。由於我們是在一個服務器上,而沒有一個網絡瀏覽器,因此要使用

$ cd ~$ rm -rf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz

現在你已經有了存款數據和密鑰存儲文件,接下來就可以設置Teku 了。我們要先把資產存入密鑰中(存入Göerli ETH以激活驗證者)再設置Teku,這樣我們就可以首先驗證設置了。如果驗證者存款被激活了,但係統沒準備好的話,我們會受到怠工懲罰。

一級標題

一級標題

一級標題

$ 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

使用使用。

如果都操作成功了請繼續,如果操作失敗了請求助ConsenSys Discord 的#teku 頻道:https://discord.gg/trQ378WCp4

一級標題

一級標題

$ cd ~$ sudo cp -a teku/build/install/teku/. /usr/local/bin/teku

注意:每一次你拉取或構建一個新版本*teku* 二進製文件,你都需要做這一步。請看此教程的最後附錄——Teku更新。

一級標題

一級標題

一級標題

第8步:配置信標節點和驗證者客戶端

$ sudo useradd --no-create-home --shell /bin/false teku

我們將把Teku客戶端作為服務來運行,因此如果系統重啟,這個進程將自動重新開始。

$ sudo mkdir -p /var/lib/teku$ sudo mkdir -p /etc/teku

設置賬戶和目錄

$ sudo cp -a /$HOME/ /var/lib/teku

為信標節點與驗證者節點的運行創建一個賬戶。這種類型的賬戶不能用來登錄進入服務器。為Teku客戶端的數據文檔創建數據目錄,並為Teku的配置文檔創建config目錄。

$ cd /var/lib/teku/validator_keys$ ls
$ sudo rm

這樣我們可以把文檔集中在一個位置,複製keystore-m...json的文檔到我們之前創建的數據目錄。

把你生成的驗證者密鑰的路徑填到

,例如:eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys。值得注意的是我們只複製keystore-m文檔。不要復制deposit_data文檔。如果你複製了,只需要通過以下代碼進行刪除。

你應該會得到以下結果(取決於你有多少個驗證者文檔)

$ ls /var/lib/teku/validator_keys

給每個keystore_m*.json文檔創建一個命名相同的密碼文檔。

$ sudo nano /var/lib/teku/validator_keys/.txt

在在

在

在

填入json文檔的名字。不要忘了在最後加上.txt。在txt文檔裡,把密碼儲存的密碼(你在第4步創建驗證者文檔時提供的密碼)填到YourKeystorePasswordForThisValidator。保存並推出。給每個*.json文檔重複以上步驟。

你應該會得到以下結果,這一步就完成了。

$ sudo chown -R teku:teku /var/lib/teku$ sudo chown -R teku:teku /etc/teku
$ ls -dl /var/lib/teku; ls -dl /etc/teku

注意:不應該有*deposit_data-\*.json*文檔的出現。如果有,把它刪了。它會導致錯誤配對,因為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

現在我們設好了驗證者密鑰於密碼,現在開始配置服務。

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

創建Teku配置文檔

Teku客戶端可以通過配置文檔讀取命令行選項。現在創建。

flag validators-keys指示密鑰文檔於密碼文檔的位置。這樣,它們都處在同一個目錄。

在在"abcdefg12345"。

在

在

輸入你想要的文字。例如:validators-graffiti:

在使用systemd中推薦log-destination: CONSOLE 設置

$ sudo nano /etc/systemd/system/teku.service

參考下方的截圖。你的文檔應該跟它差不多。退出並保存。

[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

創建和配置Teku服務

創建一個systemd服務文檔來儲存配置服務。

將下面這段代碼複製粘貼到文檔裡

$ sudo systemctl daemon-reload

Java (Teku使用的編程語言)執行運行時在設計上就需要佔用大量RAM。 flagEnvironment=”JAVA_OPTS=-Xmx2g”限制了堆積大小為2GB,因此Teku的運行可用總內存約為3–3.5GB。

參考下方的截圖。你的文檔應該跟它差不多。退出並保存。

$ sudo systemctl start teku$ sudo systemctl status teku

重新加載systemd以顯示更改。

注意:如果你是運行本地的Eth1節點(看第3步),你應該等待至它完全同步完數據再啟動Teku服務。在這裡查看進程:*sudo journalctl -fu geth.service*"啟動服務並檢查,確保運行正確。

顯示的結果應該是這樣:

$ sudo systemctl enable teku

如果你每一步都做對了,它會用綠色字體顯示”active (running)

。如果沒有顯示,你需要倒回去重複上述步驟,修復問題。按Q退出。

$ sudo journalctl -fu teku.service

允許服務隨系統重啟而自動重啟。

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步:進行驗證者存款

現在你的設置已經完成並在運行中了,你需要給Pyrmont測試網存入32個Göerli ETH。

注意:如果你已經提交了你的質押存款,你可以跳過這一步。https://pyrmont.launchpad.ethereum.org/

這一步是關於將所需的Göerli ETH存入Pyrmont測試網的存款合約。這需要在瀏覽器上通過Pyrmont的Launchpad網站啟動你的MetaMask (或其他) 錢包。

注意:如果這份教程是用於主網(它不是),你需要等到你的Eth1節點和信標節點完全同步完再開存入你的存款。如果你不這樣做,當你的Eth1節點或信標鏈在同步時,你可能要遭遇怠工懲罰。

Pyrmont測試網的Launchpad:

一直隨著屏幕切換點擊這些警告步驟,直到你到達密鑰對生成的部分。選擇你打算運行的驗證者數量。選擇一個與你在步驟4中生成的驗證者文件數量相匹配的值。

往下滾動,看這些內容你是否同意,然後點擊“Continue” (繼續)。

你會被要求上傳deposit_data-[timestamp].json文檔。這個文檔你是在之氣生成的,把它複製到有瀏覽器的計算機裡。瀏覽/選擇或拖拉這個文檔,然後點擊Continue。

然後會出現一個Summary (總結),顯示驗證者數和所需的Göerli ETH數量。如果你同意的話就給那些方框打勾,然後點擊Continue。

點擊"Initiate All Transactions"點擊

點擊

點擊

會有多個MetaMask實例彈出,每個都對Pyrmont測試網提出一個32個Göerli ETH的交易請求。請確認每一筆交易。

恭喜!

當所有的交易都成功完成時,你的質押也完成了!

恭喜!

  • 在最後會有一個清單。裡面有非常多有用信息。可以看一下

  • 新加入的驗證者需要等一下(幾個小時到幾天不等)才能激活。你可以以下幾步來查看你的密鑰狀態:https://pyrmont.beaconcha.in/

  • 前往:

複製你的Göerli測試網錢包地址

現在你面前有一個條正在運作的信標鏈、一個驗證者節點以及你的測試網存款。一旦你的存款被激活,你將開始工作並賺取收益。恭喜你!

一級標題

Prometheus是一個提供監測功能和警報工具箱的開源系統。它在你的Ubuntu服務器上作為一個服務來運行,而它的職責就是去抓取數據。更多信息請看這裡。

這裡

這裡

這裡

$ sudo useradd --no-create-home --shell /bin/false prometheus$ sudo useradd --no-create-home --shell /bin/false node_exporter

我們會使用Prometheus公開信標鏈、驗證者的運行時數據和特定實例數據。

創建用戶賬戶

$ 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軟件

從從從

$ cd ~$ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.22.2/prometheus-2.22.2.linux-amd64.tar.gz

從

$ tar xvf prometheus-2.22.2.linux-amd64.tar.gz

Prometheus下載頁面

$ sudo cp prometheus-2.22.2.linux-amd64/prometheus /usr/local/bin/$ sudo cp prometheus-2.22.2.linux-amd64/promtool /usr/local/bin/

修改最新版本的版本號。 Rpi用戶一定要獲取ARM二進製文檔。

$ sudo chown -R prometheus:prometheus /usr/local/bin/prometheus$ sudo chown -R prometheus:prometheus /usr/local/bin/promtool

打開tar存檔。它包含兩個二進製文檔和一些內容文檔。

$ 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

設置目錄的所有權。 prometheus賬戶會管理這些。

$ rm -rf prometheus-2.22.2.linux-amd64.tar.gz prometheus-2.22.2.linux-amd64

複製這些內容文檔到下列位置。

設置目錄和文檔(-R) 的所有權。 prometheus賬戶會管理這些。

移除下載存檔。

$ sudo nano /etc/prometheus/prometheus.yml

編輯配置文檔

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"]

Prometheus使用一個配置文檔,這樣它就知道去哪裡獲取數據。

$ sudo chown -R prometheus:prometheus /etc/prometheus/prometheus.yml

打開YAML配置文檔來編輯。

$ 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."

給config文檔設置所有權。 prometheus賬戶將擁有這個所有權。

最後,測試服務器是否運行正確。

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

輸出應該如下。按Ctrl + C退出。

[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

把Prometheus設置為自動啟動的服務

$ sudo systemctl daemon-reload

創建一個systemd服務文檔來儲存服務config文檔,它會告訴systemd把Prometheus作為prometheus用戶來運行,把配置文檔放在目錄/etc/prometheus/prometheus.yml,並保存在目錄/var/lib/prometheus。

$ sudo systemctl start prometheus$ sudo systemctl status prometheus

複製下列代碼到文檔。退出並保存。

重新加載systemd以顯示更改。"正文

正文

$ sudo systemctl enable prometheus

一級標題

的extension。如果你在下面指定其他版本,你可以在Node_Exporter的extension。如果你在下面指定其他版本,你可以在這裡這裡

$ cd ~$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz

這裡

$ 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

找到最新的穩定版本。 Rpi用戶記得要獲取ARM二進製文檔。

$ rm -rf node_exporter-1.0.1.linux-amd64.tar.gz node_exporter-1.0.1.linux-amd64

打開下載了的軟件。

複製二進製文檔到目錄/usr/local/bin,並設置用戶與群組對我們在前面創建的node_exporter用戶的所有權。

$ sudo nano /etc/systemd/system/node_exporter.service

移除下載了的存檔。

[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

將Node Exporter設置為自動啟動的服務

$ sudo systemctl daemon-reload

創建一個systemd服務文檔來儲存服務config文檔,它會告訴systemd把Node_Exporter 作為node_exporter用戶來運行。

$ sudo systemctl start node_exporter$ sudo systemctl status node_exporter

複製下列代碼到文檔。退出並保存。

重新加載systemd以顯示更改。"然後按下面的命令啟動服務並檢查狀態,確保運行正確。

輸出應該如下圖。

$ sudo systemctl enable node_exporter

如果你每一步都做對了,它會用綠色字體顯示”active (running)

。如果沒有顯示,你需要倒回去重複上述步驟,修復問題。按Q退出。:9090你可以有選擇性地測試它的功能。在那裡你可以運行查詢以查看不同的數據。例如,你可以試這個查詢來看還有多少可用內存:

http://:9090/new/graph?g0.expr=node_memory_MemFree_bytes&g0.tab=1&g0.stacked=0&g0.range_input=1h

一級標題

一級標題

一級標題

第12步:安裝Grafana

$ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

Prometheus是我們的數據來源,而Grafana則給我們提供報告儀錶盤數據的功能。接下來安裝Grafana並配置儀錶盤。

$ sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

我們會用一個APT倉庫來安裝,因為這會使得安裝和更新更簡單。 Grafana可以在官方的Ubuntu軟件包倉庫中找到,但那個版本可能不是最新的,因此我們將使用Grafana的官方倉庫。

$ sudo apt update

用wget下載Grafana GPG的密鑰,然後將輸出傳送到apt-key。這會將密鑰添加到你的APT安裝的信任密鑰列表中。

$ apt-cache policy grafana

把Grafana倉庫加到APT的來源里。

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服務器和檢查狀態,確保運行正確。

輸出應該如下圖:

$ sudo systemctl enable grafana-server

如果你每一步都做對了,它會用綠色字體顯示”active (running)

。如果沒有顯示,你需要倒回去重複上述步驟,修復問題。按Q退出。允許Grafana隨系統啟動而啟動。

配置Grafana登錄

能做到這一步已經很棒了!現在一切都設置好並開始運行了,你可以在瀏覽器裡前往http://

:3000/,會出現Grafana的登錄窗口。

在admin輸入用戶名和密碼。系統會讓你修改密碼,請務必修改。

配置Grafana的數據來源

讓我們配置數據來源吧。把你的鼠標移至左邊菜單欄的齒輪圖標處,會彈出一個菜單——選擇Data Sources。

點擊Add Data Source,然後選擇Prometheus。在URL輸入http://localhost:9090,然後點擊Save and Test。導入Grafana儀錶盤移動你的鼠標到左邊菜單欄的+圖標,會有一個菜單彈出,選擇Import。用代碼13457來導入官方Teku的單個驗證者

一級標題

一級標題

寫在最後

寫在最後

  • 寫在最後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.

網站:ethereum.cn

ETH
开发者
歡迎加入Odaily官方社群