買比特幣 買比特幣
Ctrl+D 買比特幣
ads

SUDO:操作指南 | 如何用Ubuntu和Prysm參與Medalla測試網?_ETH

Author:

Time:1900/1/1 0:00:00

本文將以 Medalla 多客戶端測試網為例介紹在 ETH 2.0 上質押的詳細步驟。主要基于以下幾個技術:

Ubuntu?v20.04 (LTS) x64 服務器

Go Ethereum?節點 (代碼分支)

Prysmatic Labs?ETH 2.0 客戶端 —— Prysm(代碼分支)

官方多客戶端公共測試網?Medalla

瀏覽器擴展程序錢包?MetaMask

Prometheus?指標

Grafana?控制面板

這篇指南介紹了如何:

配置新運行的 Ubuntu 服務器實例

配置和運行 ETH 1.0 節點

為 ETH 2.0 Phase 0(Medalla 測試網)編譯并配置 Prysmatic Labs 信標鏈和驗證者客戶端軟件,并提供相應的運行服務

安裝并配置 Prometheus 指標,并創建 Grafana 控制面板用于查看數據和接收警報(編者注:該部分內容未選入)

這篇指南參考了各種網上資料。沒有它們,就沒有這篇指南。特此表示感謝!

我本人并不精通這篇指南中列出的所有技術。經過親身嘗試之后,我發現這些技術非常有趣,因此想要分享給其他人。如有任何錯誤或疏漏之處,煩請見諒。歡迎大家積極反饋!

這篇指南并不適合初學者。讀者需要具備一些關于以太坊、以太幣、質押、Linux 和 MetaMask 的知識。在開始閱讀之前,請先運行 Ubuntu 服務器實例。先安裝好 MetaMask 瀏覽器插件并配置好也在一定程度上有所幫助。然后,我會引導你完成接下來的步驟。

我沒有在樹莓派上測試過這個指南。如果你想嘗試一下,直接將下文列出的軟件換成 ARM 版本。但是我不保證一定能成功!

Ubuntu 服務器實例。我使用的是 v20.04 (LTS) amd64 服務器虛擬機。

安裝并配置好的 MetaMask 密碼學錢包瀏覽器擴展程序。

運行 Prysm 軟件的最低硬件要求: — 操作系統:64-bit Linux — 處理器:Intel Core i5–760 或 AMD FX-8100 或以上 — 內存:4GB RAM (推薦 8GB) — 硬盤:不低于 20GB 的 SSD 固態硬盤空間 — 網絡:穩定的寬帶連接

目前似乎還沒有任何硬性硬盤要求(無論是 Medalla 測試網還是 ETH 2.0 主網)。測試網可能只需要 100GB 的 SSD 固態硬盤就夠了。對于主網來說,接下來的幾年,使用 1TB 的 SSD 固態硬盤(信標鏈和分片鏈各占一半)可能更好。總的來說,最好做好在必要時擴展硬盤容量的準備。

Vasily Gerasimov:加密市場的分散性和操作參與者的匿名性使得無法創建用于控制交易的清晰算法:金色財經報道,白俄羅斯國家控制委員會部門主席Vasily Gerasimov表示,加密市場的分散性和操作參與者的匿名性使得無法創建用于控制交易的清晰算法。對外國加密貨幣平臺施加法律影響的可能性是有限的,盡管如此,發達的技術使委員會能夠識別涉及數字資產的計劃。目前已經創建了虛擬加密錢包的注冊表[used in illegal activities],我們正在逐步識別它。委員會最近確定了大約70個虛擬加密錢包。我們看到這些加密錢包越多,我們可以追蹤的交易就越多。[2023/6/20 21:49:38]

這份指南很長而且細節繁多。所以我畫了一張究極簡化的示意圖來幫助你對接下來要做的事情建立基本概念。下圖中的黃色框即是本指南會覆蓋到的部分。

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

啟動一個 Eth1 節點并同步 Eth1 G?erli 測試網

生成并激活驗證者密鑰對

配置信標鏈節點和驗證者客戶端

讓信標鏈節點在驗證者(簽名功能)的幫助下施展魔法(處理區塊、見證消息和罰沒事件)

安全性很重要。由于本文不是一篇全面的安全性指南,我只介紹一些基本設置:防火墻和用戶賬號。本文預設你可以訪問你的 Ubuntu 實例的控制臺,并作為?root?用戶通過 SSH 登陸控制臺。

Ubuntu 20.04 服務器可以使用默認的?UFW 防火墻?來限制訪問該服務器的流量。我們需要允許來自 SSH、Go Ethereum、Grafana 和 Prysm 的入站流量。 允許 SSH —— 允許通過 SSH(端口 22/TCP )連接到該服務器

注:出于安全考慮,你可能需要考慮更換你的 SSH 端口(默認端口是 22 )。這里面會有一些細微差別,你可以自己研究一下。

#?ufw?allow?22/tcp允許 Go Ethereum —— 允許來自 Go Ethereum 節點(端口 30303/TPC 和 30303/UDP)的請求。

注:如果你將你的 Ubuntu 實例托管在本地,你需要對你的路由器和/或防火墻進行配置,允許來自這些端口的入站流量。

允許 Grafana —— 允許將入站請求發送至 Grafana 網絡服務器(端口 3000/TCP)

#?ufw?allow?3000/tcp允許 Prysm —— 允許對等節點之間進行連接,以便在信標鏈節點上進行操作。Prysmatic Labs 將端口 13000/TCP 和 12000/UDP 列為默認端口。

可選項:如果你想要直接訪問 Prometheus 數據服務,你也可以開啟端口 9090/TCP 。如果你只使用 Grafana 查看數據,那就沒必要開啟這個端口。我自己就沒有開啟這個端口。

跨鏈互操作性協議Poly Network上線Arbitrum:10月13日消息,跨鏈互操作性協議 Poly Network 宣布已支持以太坊 Layer2 擴容方案 Arbitrum,成為兼容 Layer1 與 Layer2 的跨鏈協議。開發者與用戶可通過 Poly Network 在數分鐘內實現從 Arbitrum 跨鏈至包括比特幣、以太坊、Neo、Ontology、火幣生態鏈(HECO)、幣安智能鏈(BSC)、OKExChain (OEC)、Polygon 等在內的多條異構區塊鏈,并享受更快交易速度,更低費用和更安全的資產跨鏈、跨鏈兌換和 NFT 跨鏈服務。[2021/10/13 20:25:45]

#?ufw?allow?9090/tcp現在開啟防火墻并檢查防火墻是否已經按照上述規則正確配置。

輸出應如下圖所示:

使用?root?賬戶登陸存在很大的風險。讓我們來重新創建一個擁有管理權限的用戶賬戶。

#?adduser?<yourusername>你需要輸入密碼以及其它信息。

將新的用戶加入 sudo 群組,即可授予其管理權限。

#?usermod?-aG?sudo?<yourusername>當你以?<yourusername>?登陸時,你可以在命令行前鍵入 sudo ,即可以超級用戶的權限來執行操作。

可選項:如果你使用?SSH 密鑰連接你的實例,你需要將這個新賬戶與?root?賬戶的 SSH 密鑰數據進行關聯。

#?rsync?--archive?--chown=<yourusername>:<yourusername>?~/.ssh?/home/<yourusername>第二步 —— 升級你的系統注銷你的?root?賬戶登錄狀態和 SSH,使用你新創建的用戶名進入 Ubuntu 系統,運行下列命令行來升級系統。

本步的用意是安裝并配置好一個將來的你的信標鏈節點需要連接的以太坊 1.0 節點。如果你傾向于使用由第三方托管的節點(比如?Infura),那就跳過這一步。

Go Ethereum 建議使用 PPA 的(Personal Package Archives,個人安裝包歸檔)。

$?sudo?add-apt-repository?-y?ppa:ethereum/ethereum更新安裝包并安裝最新的穩定版本。

為要運行的服務創建一個用戶。此種類型的用戶無法登錄服務器。

sudo?useradd?--no-create-home?--shell?/bin/false?goeth為 Eth1 區塊鏈創建數據文件夾。這是存儲 Eth1 節點數據所必須的操作。使用?-p?來創建完整的路徑。

央行今日將進行500億元人民幣14天期逆回購操作:央行公開市場今日將進行500億元人民幣14天期逆回購操作,因今日無逆回購到期,當日實現凈投放500億元[2021/2/7 19:07:11]

$?sudo?mkdir?-p?/var/lib/goethereum設定文件夾權限。用戶?goeth?需要權限來修改該數據文件夾。

$?sudo?chown?-R?goeth:goeth?/var/lib/goethereum創建一個 systemd 服務文件來存儲服務配置。我們將使用配置文件來命令你的 systemd 運行?geth?進程。

$?sudo?nano?/etc/systemd/system/geth.service復制下列服務配置到該文件里面。

那個?--goerli?標簽是用來指定 Goerli 測試網的,而?--http?標簽則是用來暴露供信標鏈節點連接的端口(http://localhost:8545)的。

可以對照下面這張屏幕截圖。你的文件也應該像它一樣。記得保存然后退出。

重啟 systemd 以使更改生效。

$?sudo?systemctl?daemon-reload開啟這項服務,并確保它正常運行。

啟動服務后的輸出應該像下圖一樣。

如果一切正常,它應該會用綠色文本顯示 “active (running)”。如果不正常,那就倒回去,重復這個步驟來解決這個問題。可以按 Q 退出。

允許 geth 服務在系統重啟時自動啟動。

$?sudo?systemctl?enable?gethGo Ethereum 會自動開始同步。你可以運行 journal 命令來查看進度。按 Ctrl+C 可以退出。

$?sudo?journalctl?-f?-u?geth.service找到對等節點并完成 Goerli 測試網同步可能要花好一段時間。如果出現了延宕的情況,你可以手動添加節點來幫助同步。到這個網站找到最新的節點列表,并像這樣這樣修改 geth 服務:

修改 “ExecStart” 那一行,加入?--bootnodes?標簽和一些最新的節點(用逗號分隔)。

保存文件并退出。重啟服務并觀察。

結果應該像這樣:

注意:在你運行信標鏈節點之前,要先等這個 Eth1 節點同步完成。可以在這里找到最新的區塊。

接下來,我們要下載 Prysm 軟件(用于運行信標鏈節點和驗證者)。從這里開始你可以開啟一個新的命令行窗口,這樣你就能繼續觀察 Eth1 節點的同步情況了。

Bazel 是一個開源構建工具。我們將使用它來編譯 Prysm 軟件。

動態 | bZx:第二次攻擊是oracle操作攻擊 與此前不同:Defi協議bZx再次遭受攻擊。對此,BZX發推稱,第二次攻擊是一次oracle操作攻擊,與第一次攻擊完全不同。攻擊者從系統中獲得了大約60萬美元的凈利潤。Kyber上的sUSD儲備金包含APR和Uniswap池。我們認為,攻擊者能夠同時操縱這兩者,并繞過相關檢查。我們將實施一項更改,允許交易者和借款方平倉。在此期間我們將加強協議安全以確保不會再次發生類似事件。另外,我們正在與chainlink和其他Oracle網絡合作,以創建更安全的Oracle網絡和縮小協議可攻擊范圍。Bitcoinist指出,bZx遭受二次攻擊表明需要對DeFi智能合約進行徹底審計。[2020/2/19]

我們還需要使用?Curl?來下載 Prysm 代碼。

$?sudo?apt?install?curl?gnupg下載 Bazel gpg distribution URI 并將其添加為包源。你在復制命令行時,別漏了 “add” 后的(-):sudo apt-key add -sudo apt-key add -。

根據 Bazel 的文檔,保留組建名 “jdk1.8” 只是出于歷史遺留原因,不再代表支持或包含哪些 JDK 版本。

安裝 Bazel 。先安裝最新版本,然后安裝 3.2.0 版本。Prysm 目前需要 3.2.0 版本。

Prysm 由兩部分二進制文件組成:信標鏈和驗證者。我們將構建這兩部分。

克隆 Prysm 的主代碼庫。

使用 Bazel Build 來編譯信標鏈和驗證者二進制文件。

信標鏈文件需要一段時間才能構建完成。現在我們可以喝杯水小憩一下。或許可以讀一下我的其它文章。

構建驗證者文件會快一些,因為我們已經下載和/或構建好相關項了。

如果二者均構建完成,就可以執行后續步驟了。如果失敗了,可以去?Prysm 的 Discord?尋求幫助。

注:務必在完成本指南中的所有步驟后再執行該步驟,否則請直接跳到第六步。

如果你因為 Git 代碼庫變化而需要更新代碼,請執行以下步驟獲得最新文件,并創建你的二進制文件:

別忘了停止信標鏈和驗證者服務,并將二進制文件復制到?/usr/local/bin?目錄下,然后再開始啟動服務:

在這一步驟中,我們將讓信標鏈節點作為后臺服務運行,如果系統重啟,信標鏈節點進程也會自動重啟。

為這項服務創建一個用戶。此種類型的用戶無法登錄服務器。

$?sudo?useradd?--no-create-home?--shell?/bin/false?beaconchain也要為信標鏈節點創建數據目錄(文件夾)。這是存儲信標鏈數據庫所必需的。使用?-p?來創建完整的路徑。

聲音 | 鄧建鵬:泰達幣涉嫌黑箱操作 是加密貨幣市場最大的潛在風險:中央財經大學法學院教授鄧建鵬今日發表評論:“穩定幣泰達幣一天交易量可達280億美元,這個黑箱操作的公司,當前是加密貨幣市場最大的潛在風險!美國僅有少數人使用泰達幣交易虛擬貨幣,紐約州總檢察長即以保護消費者權益為名,起訴泰達公司。中國公民是使用泰達幣極大的群體,卻沒有監管機構為本國公民權益保護做點什么。視而不見,并不是說不存在。”據悉,紐約最高法院今日將對紐約總檢察長辦公室起訴Bitfinex和Tether案件召開聽證會。[2019/7/29]

$?sudo?mkdir?-p?/var/lib/prysm/beaconchain設置文件夾權限。這個?beaconchain?用戶需要權限來更改這個數據庫目錄。-R?表示遞歸。

$?sudo?chown?-R?beaconchain:beaconchain?/var/lib/prysm/beaconchain接下來,把新編譯的?beacon-chain?二進制文件復制到?/usr/local/bin?目錄。我們會在這個文件夾里運行它。

注意:每次你 拉取/構建 一個新版本的?beacon-chain?二進制文件的時候,都要做這一步驟。

$?sudo?cp?bazel-bin/beacon-chain/linux_amd64_stripped/beacon-chain?/usr/local/bin把所有權設給我們上面創建的用戶賬戶?beaconchain。

$?sudo?chown?-R?beaconchain:beaconchain?/usr/local/bin/beacon-chain創建和配置服務創建一個 systemd 服務文件來存儲這個服務的配置。

$?sudo?nano?/etc/systemd/system/beaconchain.service復制下列內容到這個文件里面。

我們是用一個環境參數(Environment variable)來獲得這個客戶端的 IP 地址?Environment="ClientIP=$(curl -s v4.ident.me)"?因為?ExecStart?不允許內聯調用(call in-line)。使用?--p2p-host-ip=${ClientIP}?是為了應對故障(work-around)。

--http-web3provider?標簽用于定義 Eth1 節點的端口。如果你使用的是本地的節點,這個值就是?http://127.0.0.1:8545,如果你在使用第三方服務,那就要使用一個外部的端口地址。

看看你的文件是不是也像這個截圖一樣。應該是一樣的。然后你可以保存并退出。

重啟 systemd 以使變更生效。

$?sudo?systemctl?daemon-reload注意:如果你在本地運行 Eth1 節點(見第三步),你需要等待本地的節點同步區塊鏈同步完成,然后才能開始 beaconchain 服務。使用這個命令行來檢查進度:sudo journalctl -f -u geth.service?。

啟動服務并檢查它有沒有正常運行。

屏幕上的輸出看起來應該是這樣的。

如果你正確地完成了上述步驟,它應該會用綠色字體顯示 “active (running)”。如果沒有這么顯示,你要倒回去,重復這些步驟,來修復問題。按 Q 可以退出。

讓信標鏈服務能隨系統重啟而自動重啟。

$?sudo?systemctl?enable?beaconchain然后信標鏈節點會開始同步。可能需要幾個小時才能完成同步。你可以運行 journal 命令來檢查進度。按 Ctrl+C 來退出。

$?sudo?journalctl?-f?-u?beaconchain.service命令行窗口的輸出會給你來自 Eth1 區塊鏈的(對應于 Medalla 測試網的就是 Goerli 測試網)、正在處理的保證金的狀態信息。

現在你的信標鏈節點已經作為一項服務在后臺運行了。恭喜!雖然節點還在同步,我們可以開始下一步了。

在啟動驗證者客戶端之前,我們需要先生成我們的驗證者密鑰對。官方的?Eth2 Launch Pad?會引導你完成這個流程(生成驗證者密鑰對、存入 Goerli ETH),不過,在你開始存入保證金之前,你需要獲得一些 Goerli ETH。

遵照下列步驟:

點擊 MetaMask 瀏覽器插件并登錄

點擊頂部的下拉菜單,選擇 Goerli 測試網

點擊你的用戶名,它會自動復制下你的 Goerli ETH 錢包地址;

你可以通過這個經過認證的水龍頭來獲得 Goerli 測試網 ETH,或者到?ethstaker Discord 群組的?goerli-eth?頻道內使用機器人命令:!goerliEth <walletaddress> <numberofvalidators-maximum5>?獲取。

如果你在計劃運行多個驗證者,你可以請求自己想要的額度(32ETH 乘以你想運行的驗證者數量)

等到 Goerli ETH 出現在你的錢包里,你就可以操作下一步了(記得要選擇 Goerli 測試網!)

訪問官方的?Eth2 Launch Pad?網站,跟隨指引完成操作。如果一切順利,它就能生成一個驗證者密鑰文件(每一個驗證者都會有一個專門的文件,你想運行幾個驗證者,就要生成幾個)。

(編者注:Launch Pad 的使用流程簡介可見此處。)

根據引導流程、使用命令行工具所生成的 JSON 文件會存儲在你運行 “驗證者密鑰生成” 腳本的目錄下的?eth2.0-deposit-cli/validator_keys?文件夾里。當我們要運行驗證者的時候(下一步),我們需要從這個位置引用我們的密鑰。如果你需要通過 SFTP(SSH 文件傳輸協議)發送到你的服務器,那可以放心這么做。本指南假定這個文件會存儲在這個目錄:$HOME/eth2.0-deposit-cli/validator_keys。

首先我們要使用 Prysm 的驗證者二進制文件(我們之前就編譯好的)來創建一個錢包,就基于上一步我們所創建的密鑰。

你會被程序詢問指定一個錢包的存儲位置。你可以直接按回車,這樣它會存儲到默認位置。你還需要輸入一個新的錢包口令,請務必把這個口令保管在安全的地方。

接下來你要輸入你在?Eth2 Launch Pad?網站上創建驗證者密鑰時候使用的口令。如果你正確輸入了,這個賬戶就會導入到這個新錢包中。

確認驗證者賬戶創建成功。

$?bazel?run?//validator:validator?--?accounts-v2?list這就完成啦。現在這個驗證者錢包已經配置好了,我們將啟動驗證者作為一個后臺服務。

我們將讓驗證者能作為一項后臺服務運行,并且在系統重啟時這個線程會自動重啟。

為要運行的服務創建一個用戶賬戶(系統賬戶)。此種類型的賬戶無法登錄服務器。

$?sudo?useradd?--no-create-home?--shell?/bin/false?validator為驗證者客戶端創建數據存儲目錄,也就是跟驗證者相關的數據庫存放的地方。使用?-p?來創建完整的地址。

$?sudo?mkdir?-p?/var/lib/prysm/validator設置目錄的權限。這個?validator?用戶需要修改這個數據目錄的權限。

$?sudo?chown?-R?validator:validator?/var/lib/prysm/validator現在,復制我們之前編譯好的?validator?二機制文件到這個?/usr/local/bin?目錄。

注意:每次你 拉取/構建 一個新版本的?validator?二進制文件,都要做這一步。

把用戶和群組權限設給?validator?用戶。

$?sudo?chown?-R?validator:validator?/usr/local/bin/validator創建和配置服務創建一個 systemd 服務文件來存儲服務配置。

$?sudo?nano?/etc/systemd/system/validator.service完全復制下列內容到這個文件中,就除了下面的兩個例外:

用你正在使用的用戶名替代那兩個?<yourusername>。

用你的?Prysm POAP 參與獎章值?替換掉?<POARstring>,這樣就能獲得特殊的 NFT 獎品(POAP 獎章)!例如?--graffiti "abcdefg12345"

檢查你的文件,看看是不是跟這個截圖一樣。保存并退出。

password.txt?是必需的,因為?--wallet-password-file?需要指定一個口令文件。因此我們就創建一個,然后存儲在那個位置。

把你的錢包 password 輸入到這個文件中。就像下圖一樣,然后保存并退出。

重啟系統以使變更生效。

$?sudo?systemctl?daemon-reload啟動服務并確保正常運行。

你的屏幕輸出應該看起來像這樣。

$?sudo?systemctl?enable?validator你可以運行 journal 命令來檢查進度。按 Ctrl+C 來退出。

$?sudo?journalctl?-f?-u?validator.service等信標鏈真的啟動之后,可能還要等幾個小時來激活你的驗證者賬戶。驗證者進程的輸出會顯示進度。

Aug?02?03:03:25?ETH-STAKER-01?validator[5203]:?time="2020-08-02?03:03:25"?level=info?msg="Waiting?for?beacon?chain?start?log?from?the?ETH?1.0?deposit?contract"?prefix=validator你可以通過?beaconcha.in?檢查自己的驗證者的狀態。只需搜索你的驗證者公鑰即可。網站上很快就會顯示出來。

就這么簡單。我們已經開始運行信標鏈節點和驗證者客戶端了。恭喜恭喜,你很棒!

(編者注:下文的內容為指導用戶安裝 Prometheus、節點瀏覽器、Gafuna,主要是幫助用戶管理自己的節點和驗證者,但這恐怕不是用戶最需要的。如果用戶了解足夠多的背景知識,使用區塊瀏覽器基本上也能滿足自己監控驗證者的需求,只是自動化程度差一些。因此我們不選入。感興趣的用戶可以自己到原文閱讀。)

Tags:ETHUDOSUDOTORethicallyNarudosudo幣何時上交易所Reflector Finance

萊特幣最新價格
PLE:進軍NFT市場 日本NFT文化協會預將發行草間彌生畫作NFT_DEFI

2021年是 NFT 爆炸式增長的一年,NFT持有人總數超140萬地址,總交易量在2021年達到183.31億美元,總市值高達100億美元,是2020年的 173 倍.

1900/1/1 0:00:00
區塊鏈:NFT登場 對藝術收藏市場的影響有多大?_verse幣今日價格

“NFT藝術品”,被譽為藝術圈的比特幣,最近很爆!就像比特幣已經與摩根互動起來了一樣很真實!但NFT對絕大多數藝術愛好者都還很陌生.

1900/1/1 0:00:00
ETH2.0:質押基礎服務商Rocket Pool們的ETH2.0生意_ETH

為啟動ETH2.0網絡,需要質押524,288個ETH(16,384個驗證者),截止到藍狐筆記寫稿時,目前質押的ETH為60,928個,完成度只有11.6%左右,距離最低啟動要求還有較遠的距離.

1900/1/1 0:00:00
EOS:人人皆談Web3 但Web3核心要素到底是什么?_區塊鏈dapp開發

2022年6月15日20:00,EOS網絡基金會最新一期非正式柚談欄目開播,本期話題將圍繞Web3展開.

1900/1/1 0:00:00
EFI:數字文藝復興基金會董事總經理曹寅:?波卡將成為未來DeFi2.0的底層基礎設施_MarhabaDeFi

金色財經現場報道,9月20日,由金色財經主辦,水橋區塊鏈總冠名的“共為·創業者大會”在廈門舉辦。數字文藝復興基金會董事總經理曹寅做了主題為《波卡上的DeFi新大陸》的演講.

1900/1/1 0:00:00
ARI:NFT解放了想象力:需要解決的性別差距_HEARIFYAI價

導數據顯示,只有16%的NFT創作者是女性——這一巨大的性別差距反映出女性在當今NFT生態系統中的代表性不足.

1900/1/1 0:00:00
ads