以太坊2.0測試網質押(Ubuntu/Pyrmont/Nimbus)

2021-02-23 ETH中文站

來源 | someresat.medium.com

作者 | Somer Esat

提醒:不要按照這個指南與Eth2主網連接。主網指南請參考《以太坊2.0主網質押教學(Ubuntu/Nimbus)》。

本文詳解如何通過多客戶端測試網Pyrmont在以太坊2.0主網質押。主要基於以下幾個技術:

➤ Ubuntu v20.04 (LTS) x64 伺服器

➤ Go Ethereum 節點 (代碼分支)

➤ Status 的以太坊2.0 客戶端,Nimbus (代碼分支)

➤ 正式多客戶端測試網公網,Pyrmont

➤ 瀏覽器插件加密錢包 MetaMask

➤ Prometheus 參數

➤ Grafana 儀錶盤

此篇指南包括以下指令:

➤ 配置一個新運行的Ubuntu伺服器用例

➤ 配置一個以太坊1.0節點並將其作為服務運行

➤ 生成 Pyrmont 驗證者帳戶密鑰並存入資產

➤ 導入 Pyrmont 驗證者帳戶密鑰到 Nimbus 客戶端裡

➤ 給以太坊2.0與 Pyrmont 測試網階段0編譯並配置 Nimbus 客戶端軟體,並把它們作為服務來運行

➤ 安裝和配置 Prometheus 參數,設置一個 Grafana 儀錶盤

本教程參考了網上的各種資料,感謝這些提供資料的貢獻者!

感謝 Nimbus Discord 提供的幫助與審校。

特別感謝 Nimbus 客戶端團隊和以太坊基金會的研究員。他們經過幾年的不懈努力,將我們帶到這難以置信的時刻——Eth2.0成功創世。

此教程僅作教育用途。我不是本文涉及的任何技術的專家。不保證此教程內容的準確性,因遵循此教程而造成的損失,本人概不負責。

歡迎提供反饋!

這個過程可能有些棘手。除了我之外,以下是兩個你可以尋求幫助的好資源 :

➤ EthStaker社區是一個以太坊2.0 Staking 社區,資源豐富且十分友好。

Reddit:https://www.reddit.com/r/ethstaker/

Discord:https://discord.gg/7z8wzehjrJ

➤ Nimbus 客戶端團隊的Discord: https://discord.gg/PBJBuJKfXs,他們是客戶端軟體的工程團隊,是使用 Nimbus 專家。

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

此教程還需要在開始前安裝並運行:

➤ Ubuntu 伺服器 v20.04 (LTS) amd64 或者一個較新的,在本地計算機、你的網絡、或雲端 (AWS、Digital Ocean、Microsoft Azure等)安裝和運行的Ubuntu伺服器。推薦使用本地計算機,以提高網絡的去中心化程度——如果雲端供應商掉線了,那麼託管在這個供應商的節點都會離線。

➤ 已安裝或已配置的瀏覽器插件加密錢包MetaMask。一臺裝有作業系統 (Mac、Windows、Linux等) 和瀏覽器 (Brave、Safari、FireFox等) 的計算機。

我沒有在樹莓Pi上測試過這份教程。如果你想嘗試的話,只需要把下面列出的軟體換成ARM版本。不保證可行。

➤ Ubuntu伺服器用例。我用過v20.04 (LTS) amd64伺服器 VM

➤ 瀏覽器插件加密錢包MetaMask,安裝並配置好

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

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

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

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

➤ 生成驗證者密鑰和存款數據;

➤ 配置 Nimbus 客戶端並同步Eth1節點數據

➤ 存入 32 Göerli 測試網 ETH 以激活驗證者密鑰

那我們現在就開始吧!

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

注意:如果你不是用root登錄的便可以直接跳到第1步。

設置一個密碼並填寫其他信息。

通過把新的用戶加入sudo群組中,來授予其管理權限。

# usermod -aG sudo <yourusername>

當你用你的用戶名 <yourusername> 登錄時,可以通過在命令行前輸入sudo,來以超級用戶的權限執行操作。

可選:如果你通過 root 帳戶使用 SSH 密鑰來連接你的 Ubuntu 實例,你將需要使用 root 帳戶的 SSH 密鑰數據來連接新帳戶。

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

最後,退出登錄你的root帳戶,然後使用你新創建的用戶名<yourusername>登入Ubuntu伺服器。

確保系統更新至最新的軟體和安全設置。

$ sudo apt update && sudo apt upgrade$ sudo apt dist-upgrade && sudo apt autoremove$ sudo reboot

安全性十分重要。但由於本文不是針對安全性的指南,所有只列出了一些基礎的設置:一個防火牆和一個不同的 SSH 埠。

Ubuntu 20.04 伺服器可以使用默認的 UFW 防火牆來限制訪問該伺服器的流量,不過要先設置其允許來自 SSH、Go Ethereum、Grafana、Nimbus 的入站流量。

允許 SSH

允許通過SSH連接到伺服器。為了安全,接下來我們要修改默認埠22 (因為這是一個普遍的攻擊矢量)。

注意:如果你選擇不修改默認SSH埠 (不建議),那就要加一項操作——允許默認SSH埠 *$ sudo ufw allow 22/tcp* ,然後跳到允許「Go Ethereum」這一步。

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

$ sudo ss -tulpn | grep ':<yourSSHportnumber>'

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

$ sudo ufw allow <yourSSHportnumber>/tcp

下一步,修改默認SSH埠。

$ sudo nano /etc/ssh/sshd_config

找到默認埠# Port 22 或Port 22,然後修改你自己的埠號 Port <yourSSHportnumber>。刪掉 #  (如果有的話)。參考下方的截圖,你的文檔應該和下圖展示的類似 (除了埠號不一樣)。保存然後退出。

重啟SSH服務。

$ sudo systemctl restart ssh

下次你通過SSH登錄時就使用你的埠號 <yourSSHportnumber> 。

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

允許 Go Ethereum

允許來自Go Ethereum對等節點 (埠30303/TPC 和 30303/UDP) 的入站請求。如果你使用第三方 (如Infura) 託管的 Eth1 節點,則可以跳過這一步。

注意:如果你在本地託管你的Ubuntu伺服器,你需要配置你的網絡路由以允許來自埠 30303 的入站流量。

允許 Nimbus

允許與 Nimbus 的對等節點進行點對點連接,以便在信標鏈節點上 (埠9000/TCP 和 9000/UDP) 進行操作。.

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

允許 Grafana

允許訪問Grafana web 伺服器 (埠3000/TCP) 的入站請求。

$ sudo ufw allow 3000/tcp

允許 Prometheus (可選) 

如果你想直接訪問Prometheus數據服務,你也可以打開埠9090/TCP。如果你僅使用Grafana查看數據,則沒有必要這樣做。我沒有打開這個埠。.

$ sudo ufw allow 9090/tcp

啟動防火牆,檢查是否已經正確配置。

$ sudo ufw enable$ sudo ufw status numbered

顯示應該是這樣的

Ubuntu 內置了時間同步,並默認使用 systemd『s timesyncd 服務進行激活。驗證其是否正確運行。

激活  NTP service ,運行方式:

$ sudo timedatectl set-ntp on

參考下方的截圖:

安裝並配置Eth1.0的節點,Nimbus 信標鏈將與該節點相連。如果你選擇第三方服務 (如Infura) 的話,可以跳過這一步。

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

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

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

$ sudo apt update$ sudo apt install geth

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

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

為Eth1區塊鏈創建數據目錄,用來存儲Eth1節點數據。選擇 -p 選項以創建完整路徑。

$ 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

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

[Unit]Description=Ethereum go clientAfter=network.target Wants=network.target[Service]User=goeth Group=goethType=simpleRestart=alwaysRestartSec=5ExecStart=geth --goerli --ws --datadir /var/lib/goethereum[Install]WantedBy=default.target

flag --goerli 用於定位 Göerli 測試網,而flag --ws 用來公開與信標鏈節點連接的一個web socket埠 (ws://127.0.0.1:8546) 。

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

重新加載 systemd 以顯示上述的更改。

$ sudo systemctl daemon-reload

啟動服務,並檢查確保其正常運行。

$ sudo systemctl start geth$ sudo systemctl status geth

顯示應如下方截圖。

如果你每一步都做對了,它會用綠色字體顯示」active (running)"。如果沒有顯示,你需要倒回去重複上述步驟,修復問題。按Q退出。

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

$ sudo systemctl enable geth

Go Ethereum節點將會開始同步。你可以運行 journal 命令來追蹤進程。按「CTRL+c」退出。

$ sudo journalctl -f -u geth.service

當你花較長的時間來找到需要同步的對等節點時,你可以添加一些對等節點。訪問此處以獲得最新的清單,並操作下列命令行以修改geth服務:

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

修改 ExecStart 行,添加 --bootnodes flag:在下方羅列出最新的對等點,並以逗號分割。

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 -f -u geth.service

啟動後顯示應該類似下方截圖:

在運行信標鏈之前,你需要等待節點同步完成。點擊此處訪問最新的區塊。

比如,上方截圖顯示了節點正在處理區塊 number=43756 ,再看看下方截圖,顯示最新的區塊是  3196411。也就是說,我們還有一段時間才能完成同步。

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

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

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

註冊步驟如下:

➤ 獲取Göerli ETH

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

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

➤ 等候你的驗證者帳戶被激活

那我們現在就開始吧!

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

➤ 點擊MetaMask然後登錄

➤ 點擊頂部的下拉菜單,選擇Göerli 測試網絡

➤ 點擊帳戶名,複製你的Göerli 測試網錢包地址

➤ 使用你的地址從authenticated faucet獲取Göerli ETH,或者通過在 ethstaker Discord上的#request-goerli-eth頻道使用機器人命令:!goerliEth <yourwalletaddress>。

注意:一個驗證者需要一筆32個ETH的存款。你的MetaMask錢包需要有充足的 Göerli ETH存進每個驗證者客戶端裡。例如,如果你想要運行10個驗證者,拿你就需要320個Göerli ETH以及一些額外的錢 (比如1個Göerli ETH) 來支付gas費。

接下來我們要生成存款數據和驗證者密鑰。Nimbus 驗證者客戶端支持多個驗證者密鑰。在Pyrmont測試網上基本上一個驗證者密鑰代表一個「驗證者帳戶」。存款數據中包含你的質押信息 (如驗證者密鑰清單等)

注意:如果在主網上進行質押,最好是用一臺完全沒有連接過網絡的機器,以防洩漏助記詞。

在「asset"一欄複製這個連結到Linux版本。我們將使用該連結來下載它,如下所示。修改指令裡的URL名為最新版本的下載連結。

$ 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

打開tar存檔並去到其創建的目錄。

$ sudo tar xvf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz$ cd eth2deposit-cli-ed5a6d3-linux-amd64

運行應用來生成存款數據和驗證者密鑰。

將<numberofvalidators>修改為你想要創建的驗證者密鑰數。例如:--num_validators 5

$ sudo ./deposit new-mnemonic --num_validators <numberofvalidators> --mnemonic_language=english --chain pyrmont

它會要求你創建一個錢包密碼。我們將使用它來將驗證者密鑰加載到 Nimbus 客戶端的驗證者錢包。把它備份到安全的地方。

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

一旦你已經確認了你的助記符,你的驗證者密鑰就會被創建。

新創建的驗證者密鑰和存款數據文檔會在一個特定地方被創建。比如:eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys 。標記一下,我們待會會用到。

文件夾的內容見下:

deposit_data-[timestamp].json文檔包含了驗證者的公鑰和存款的相關信息。這個文檔會在下一步用來完成存款進程。由於我們是在一個伺服器上,而沒有一個網絡瀏覽器,因此要使用secure FTP (SFTP) 把文檔遷移到一部運行MetaMask的計算機上。記得先完成這一步再繼續。

keystore-m...json文檔包含加密的籤名密鑰。每個驗證者帳戶都有一個 keystore-m。這些會被用來創建 Nimbus 客戶端驗證者錢包。

通過刪除下載的tar存檔文件進行清理。

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

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

構建 Nimbus 客戶端需要一些開發依賴工具 (C compiler、Maker、Bash、Git)。

$ sudo apt-get install build-essential git

現在我們準備好構建 Nimbus 了。Nimbus 生成一個 nimbus_beacon_node 二進位文件。我們通過輸入不同的子命令或 flags 來執行該二進位文件以獲得我們需要的功能。比如:nimbus_beacon_node deposits import可以將驗證者密鑰導入到客戶端錢包中。輸入nimbus_beacon_node --network=pyrmont 可以運行與 Prymont 網絡連接的一個信標節點實例。

$ cd ~$ git clone https://github.com/status-im/nimbus-eth2$ cd nimbus-eth2

使用 Make 來編譯Nimbus 二進位文件。我們在參數功能中包含 flag  -d:insecure 來進行編譯。

$ make NIMFLAGS="-d:insecure" nimbus_beacon_node

顯示應如下圖:

構建時間長短取決於你的硬體設備狀況。是時候喝點飲料補充補充水分了。也可以閱讀我其他的文章。

如果都操作成功了請繼續,如果操作失敗了請求助 Nimbus Discord :

https://discord.gg/PBJBuJKfXs

接下來複製粘貼已編譯的二進位文件 nimbus_beacon_node 至目錄 /usr/local/bin 中,Nimbus 服務將在那運行。

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

$ sudo cp /$HOME/nimbus-eth2/build/nimbus_beacon_node /usr/local/bin

通過導入在上一步創建的keystore-m JSON文檔創建驗證者錢包。

首先,創建一個目錄來儲存驗證者數據,並給當前用戶權限來訪問數據。當前用戶需要權限,因為他們需要執行導入。在 <yourusername> 修改登入用戶名。

$ sudo mkdir -p /var/lib/nimbus$ sudo chown -R <yourusername>:<yourusername> /var/lib/nimbus

在文件夾設置正確的權限,這一步在錢包創建過程中執行。把權限應用到數據文件夾。

$ sudo chmod 700 /var/lib/nimbus$ ls -dl /var/lib/nimbus

顯示內容如下:

接下來,運行驗證者密鑰導入,使用nimbus_beacon_node deposits import 功能。我們需要提供生成的keystore-m文檔所在位置的目錄。例如:$HOME/eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys。

$ cd ~$ cd nimbus-eth2$ build/nimbus_beacon_node deposits import --data-dir=/var/lib/nimbus $HOME/eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys

flag--data-dir指定錢包數據輸出的位置。

你會被要求提供驗證者密鑰的密碼。這個密碼是你在第5步設置的。

這一步完成了!現在驗證者密鑰已經導入,我們將把Nimbus客戶端作為服務來設置。

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

為信標節點與驗證者節點的運行創建一個帳戶。這種類型的帳戶不能用來登錄進入伺服器。

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

設置目錄權限。我們在前一步創建了一個數據目錄(/var/lib/nimbus)。nimbus 帳戶需要修改數目目錄的權限。

$ sudo chown -R nimbus:nimbus /var/lib/nimbus$ ls -dl /var/lib/nimbus

你的用戶帳戶不能再訪問目錄了。顯示應如下:

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

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

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

[Unit]Description=Nimbus Beacon NodeWants=network-online.targetAfter=network-online.target[Service]Type=simpleUser=nimbusGroup=nimbusRestart=alwaysWorkingDirectory=/var/lib/nimbusEnvironment="ClientIP=$(curl -s v4.ident.me)"ExecStart=/bin/bash -c '/usr/local/bin/nimbus_beacon_node --network=pyrmont --data-dir=/var/lib/nimbus --web3-url=ws://127.0.0.1:8546 --metrics --metrics-port=8008 --rpc --rpc-port=9091 --nat=extip:${ClientIP} --validators-dir=/var/lib/nimbus/validators --secrets-dir=/var/lib/nimbus/secrets --log-level=INFO --log-file=/var/lib/nimbus/beacon_node.log'[Install]WantedBy=multi-user.target

如果你使用的是一個遠程的或第三方Eth1節點,你需要修改--web3-url。如果你是在本地創建Eth1節點 (從第4步),你不需要修改這個值。

提供的flag如下:

➤ --network——客戶端連接的網絡。在這裡就是Pyrmont。

➤ --data-dir——儲存信標節點和驗證者數據的目錄。

➤ --web3-url——指向Eth1節點 (本地或遠程的)的web socket (ws) 的URL。

➤ --metrics——開啟數據伺服器。

➤ --metrics-port——冗餘,因為它被設為默認值,但為了方便還是把它包含在內。必須與在Prometheus 的配置文檔裡的Nimbus數據相匹配。

➤ --rpc——開啟RPC API

➤ --rpc-port——需要避免與Prometheus衝突

➤ --nat ——你的伺服器的外部IP位址。我們使用環境變量 Environment="ClientIP=$(curl -s v4.ident.me)"來獲取客戶端IP位址,因為 ExecStart不允許內聯調用。用--nat=extip:${ClientIP}就能解決問題。

➤ --validators-dir ——驗證者密鑰數據所在的目錄。

➤ --secrets-dir——驗證者密鑰秘密所在的目錄。

➤ --log-level——日誌記錄的詳細程度。INFO用作表示性能。

➤ --log-file——是所需,這樣服務才能創建日誌文檔。路徑必須與服務的WorkingDirectory匹配。

參看下方截圖。你的文檔應該如此。退出並保存。

重新加載systemd以顯示更改。

$ sudo systemctl daemon-reload

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

啟動服務並檢查,確保運行正確。

$ sudo systemctl start nimbus$ sudo systemctl status nimbus

顯示的結果應該是這樣:

如果你每一步都做對了,它會用綠色字體顯示」active (running)"。如果沒有顯示,你需要倒回去重複上述步驟,修復問題。按Q退出。

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

$ sudo systemctl enable nimbus

信標節點將開始同步數據。它可能要花幾個小時才能完全實現同步。你可以通過運行journal命令來追蹤進程。按CTRL+c退出。

$ sudo journalctl -fu nimbus.service

日誌輸出類似於這樣:

Nov 24 22:25:56 ETH-STAKER-001 bash[65560]: INF 2020-11-24 22:25:31.197+00:00 Slot start                                 topics="beacnde" tid=65560 file=nimbus_beacon_node.nim:473 lastSlot=46326 scheduledSlot=46327 beaconTime=6d10h25m24s197ms907us264ns peers=1 head=1e6df25a:242 headEpoch=7 finalized=542c17b2:128 finalizedEpoch=4Nov 24 22:25:56 ETH-STAKER-001 bash[65560]: NOT 2020-11-24 22:25:31.203+00:00 Syncing in progress; skipping validator duties for now topics="beacval" tid=65560 file=validator_duties.nim:519 slot=46327 headSlot=242Nov 24 22:25:56 ETH-STAKER-001 bash[65560]: INF 2020-11-24 22:25:31.203+00:00 Slot end                                   topics="beacnde" tid=65560 file=nimbus_beacon_node.nim:559 slot=46327 nextSlot=46328 head=1e6df25a:242 headEpoch=7 finalizedHead=542c17b2:128 finalizedEpoch=4Nov 24 22:25:56 ETH-STAKER-001 bash[65560]: NOT 2020-11-24 22:25:34.396+00:00 Reached new finalization checkpoint        topics="chaindag" tid=65560 file=chain_dag.nim:910 finalizedHead=6ad92bbe:189@192 heads=1 newHead=23e933aa:256

如果想知道當前epoch與headEpoch的距離,你可以在pyrmont.beaconcha.in查看比較。

例如,上面的日誌輸出顯示現節現在正在處理headEpoch: 7,然後看下面截圖的地方,你會看到最新一個epoch是23582。基於此,我們知道離完成數據同步還需要一些時間。

現在你的信標鏈已經作為服務來運行了。恭喜!

注意:當信標節點完全同步之後,驗證者客戶端會自動開始證明/提議區塊。

你可以通過 pyrmont.beaconcha.in查看你的驗證者狀態,只需搜索你的驗證者公鑰或用你的MetaMask錢包地址搜索。可能要過一段時間你的信息才會出現在網站上。

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

注意:如果你已經提交了你的質押存款,你可以跳過這一步。

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

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

Pyrmont測試網的

Launchpad:https://pyrmont.launchpad.ethereum.org/

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

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

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

連接你的錢包。選擇MetaMask (或者是其他支持的錢包),登錄,選擇存有你的Göerli ETH的Göerli測試網絡,然後點擊Continue。

注意:請100%確定你在MetaMask上選的是Göerli測試網絡。不要把真的ETH發送到 Pyrmont測試網。

你的MetaMask餘額就會顯示出來。如果你選擇了Göerli測試網絡且你有充足的Göerli ETH餘額,網站會允許你繼續下一步。

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

點擊"Initiate All Transactions" (啟動所有交易)。

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

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

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

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

2. 前往:https://pyrmont.beaconcha.in/

3. 搜索你的錢包地址。你的密鑰會顯示出來。

點進某個驗證者詳情,每個驗證者激活後你會看到在Status那一欄有預估時間。

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

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

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

$ sudo chown -R prometheus:prometheus /etc/prometheus$ sudo chown -R prometheus:prometheus /var/lib/prometheus

從Prometheus下載頁面修改最新版本的版本號。Rpi用戶一定要獲取ARM二進位文檔。

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

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

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

複製二進位文檔到下列位置。

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

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

$ 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

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

$ sudo chown -R prometheus:prometheus /etc/prometheus/consoles$ sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

移除下載存檔。

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

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

打開YAML配置文檔來編輯。

$ sudo nano /etc/prometheus/prometheus.yml

複製下面的代碼到文檔,注意不要進行任何其他編輯,並退出保存文件。

global:  scrape_interval:     15s   evaluation_interval: 15sscrape_configs:  - job_name: 'nimbus'    static_configs:            - targets: ['localhost:8008']  - job_name: 'node_exporter'    static_configs:      - targets: ['localhost:9100']

scrape_config對不同的分工名稱給出定義。我們有三個分工名稱:validator (驗證者)、beacon node (信標節點) 和node_exporter。前兩個的職責很明顯,最後一個是用作與伺服器用例本身 (內存、CPU、磁碟、網絡等) 相關的數據。我們將在下面安裝並配置node_exporter。

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

$ 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

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

level=info ts=2020-09-12T22:16:21.179Z caller=web.go:524 component=web msg="Start listening for connections" address=0.0.0.0:9090level=info ts=2020-09-12T22:16:21.181Z caller=main.go:700 fs_type=EXT4_SUPER_MAGIClevel=info ts=2020-09-12T22:16:21.181Z caller=main.go:701 msg="TSDB started"level=info ts=2020-09-12T22:16:21.182Z caller=main.go:805 msg="Loading configuration file" filename=/etc/prometheus/prometheus.ymllevel=info ts=2020-09-12T22:16:21.182Z caller=main.go:833 msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.ymllevel=info ts=2020-09-12T22:16:21.183Z caller=main.go:652 msg="Server is ready to receive web requests."

創建一個systemd服務文檔來保存服務配置,它會告訴systemd文檔把Prometheus作為prometheus用戶來運行,配置文檔在目錄的保存路徑為/etc/prometheus/prometheus.yml,並把數據保存在目錄的這裡/var/lib/prometheus .

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

將下面的代碼複製粘貼到文檔。退出並保存。

[Unit]Description=PrometheusWants=network-online.targetAfter=network-online.target[Service]Type=simpleUser=prometheusGroup=prometheusRestart=alwaysRestartSec=5ExecStart=/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

重新加載systemd以顯示更改。

$ sudo systemctl daemon-reload

然後用下面的命令來啟動服務,並查看狀態以確保運行正確。

$ sudo systemctl start prometheus$ sudo systemctl status prometheus

輸出應該如下圖:

如果你每一步都做對了,它會用綠色字體顯示」active (running)"。如果沒有顯示,你需要倒回去重複上述步驟,修復問題。按Q退出 。

最後,允許Prometheus隨系統啟動而啟動。

$ sudo systemctl enable prometheus

Prometheus會提供關於信標鏈和驗證者的數據。如果我們想要我們Ubuntu用例的數據,我們需要一個叫Node_Exporter的extension。如果你在下面指定其他版本,你可以在這裡找到最新的穩定版本。Rpi用戶記得要獲取ARM二進位文檔。

$ 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

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

$ 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

移除下載了的存檔。

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

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

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

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

[Unit]Description=Node ExporterWants=network-online.targetAfter=network-online.target[Service]User=node_exporterGroup=node_exporterType=simpleExecStart=/usr/local/bin/node_exporter[Install]WantedBy=multi-user.target

重新加載systemd以顯示更改。

$ sudo systemctl daemon-reload

然後按下面的命令啟動服務並檢查狀態,確保運行正確。

$ sudo systemctl start node_exporter$ sudo systemctl status node_exporter

輸出應該如下圖。

如果你每一步都做對了,它會用綠色字體顯示」active (running)"。如果沒有顯示,你需要倒回去重複上述步驟,修復問題。按Q退出 。

最後,允許Node Exporter隨系統啟動而啟動。

$ sudo systemctl enable node_exporter

測試Prometheus和Node Exporter (可選)

所有東西都準備就緒了。通過在防火牆打開一個埠 (請參閱步驟2)和瀏覽http://<yourserverip>:9090你可以有選擇性地測試它的功能。在那裡你可以運行查詢以查看不同的數據。例如,你可以試這個查詢來看還有多少可用內存:

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

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

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

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

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

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

刷新apt緩存。

確認Grafana是從倉庫安裝的。

$ apt-cache policy 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

啟動Grafana伺服器和檢查狀態,確保運行正確。

$ sudo systemctl start grafana-server$ sudo systemctl status grafana-server

輸出應該如下圖:

如果你每一步都做對了,它會用綠色字體顯示」active (running)"。如果沒有顯示,你需要倒回去重複上述步驟,修復問題。按Q退出。

允許Grafana隨系統啟動而啟動。

$ sudo systemctl enable grafana-server

能做到這一步已經很棒了!現在一切都設置好並開始運行了,你可以在瀏覽器裡前往http://<yourserverip>:3000/,會出現Grafana的登錄窗口。

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

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

點擊 Add Data Source,然後選擇Prometheus。在URL輸入http://localhost:9090,然後點擊 Save and Test。

現在開始導入儀錶盤。移動你的滑鼠到左邊菜單欄的+圖標,會有一個菜單彈出,選擇 Import。

從這裡(從原始數據)複製粘貼JSON,點擊Load,然後 Import。你應該可以看到儀錶盤。

注意:很明顯這是個非常基礎的儀錶盤。該團隊正在努力加入更多的數據 (比如:驗證者數、每個驗證者的證明量、每個驗證者的提議量、每個驗證者的餘額等)。現在官方的儀錶盤還在開發中,請看這裡。

你還可以在Telegram和Discord看到警報信息。這裡是有指引。

如果因為Git倉庫的修改你需要更新代碼,請按這些步驟來獲取最新的文檔並構建你的二進位文檔。

$ cd ~$ cd nimbus-eth2$ git pull$ make update$ make NIMFLAGS="-d:insecure" nimbus_beacon_node

接下來,我們會停止信標鏈和驗證者服務,並複製粘貼二進位文檔到目錄/usr/local/bin,然後再次啟動服務。

$ sudo systemctl stop nimbus$ sudo cp /$HOME/nimbus-eth2/build/nimbus_beacon_node /usr/local/bin$ sudo systemctl start nimbus$ sudo systemctl status nimbus $ sudo journalctl -fu nimbus.service 

完成了!服務已經更新好了。

如果你需要更新到最新版本的Geth,請按以下步驟:

$ sudo systemctl stop geth$ sudo systemctl stop nimbus$ sudo apt update && upgrade$ sudo systemctl start geth$ sudo systemctl status geth $ sudo journalctl -f -u geth $ sudo systemctl start nimbus$ sudo systemctl status nimbus $ sudo journalctl -f -u nimbus.service 

點擊「閱讀原文」獲取文章內部連結!

原文連結:https://someresat.medium.com/guide-to-staking-on-ethereum-2-0-ubuntu-pyrmont-nimbus-e6592c110843

ECN的翻譯工作旨在為中國以太坊社區傳遞優質資訊和學習資源,文章版權歸原作者所有,轉載須註明原文出處以及ETH中文站。若需長期轉載,請聯繫eth@ecn.co進行授權。

相關焦點

  • 以太坊2.0測試網質押(Ubuntu/Pyrmont/Teku)
    主網指南請參考《以太坊2.0主網質押教學(Ubuntu/Teku)》。本文詳解如何通過多客戶端測試網Pyrmont在以太坊2.0主網質押。➤ Grafana 儀錶盤此篇指南包括以下指令:➤ 連接並安全配置一個新運行的Ubuntu伺服器用例➤ 配置一個以太坊1.0節點並將其作為服務運行➤ 生成Pyrmont驗證者帳戶密鑰並存入資產➤ 導入Pyrmont驗證者帳戶密鑰到Teku客戶端裡➤ 給以太坊2.0與Pyrmont測試網階段0編譯並配置
  • 以太坊2.0客戶端Prysm與Lighthouse實現交互 多客戶端測試網發布更...
    圖片來源:pixabay幾個月來,他一直在努力讓這個節點與另一個以太坊2.0客戶端Lighthouse進行「對話」,他的工作從去年11月份就開始了,最近又在今年2月初加大了力度。我們被告知存儲合約有望在4月前就緒,以太坊2.0協調員Danny Ryan似乎正在開發一個新的規範。信標鏈(Beacon chain)規範已經進行了審計,結果進行了一些更改,因此新規範0.11版是啟動多客戶端測試網的關鍵一步。此時它基本上仍然是在實驗室條件下用虛擬資金運行,而不是使用真正的ETH。
  • AOFEX解讀:以太坊2.0如何參與質押?
    隨著以太坊2.0的質押達到預定目標,其創世區塊也將在12月1日準時啟動。以太坊2.0是針對以太坊1.0所遇到的困境做出的重大升級;其中最大的亮點在於以太坊兩個版本是兩條單獨的鏈組成,採用不同的機制,並在以太坊2.0上進行了交易容量、安全機制、經濟模型等各方面的升級。
  • CEX備戰以太坊2.0上線
    一周後的12月1日晚8點,以太坊2.0如期迎來歷史性時刻:創世區塊正式啟動,從此邁出從工作量證明(PoW)共識機制向權益證明(PoS)轉型「萬裡長徵」的第一步。毫無疑問,以太坊2.0升級被認為是2020年加密貨幣行業裡最受關注的事件之一。此前以太坊一直因為吞吐量較低、費用過高被加密社區詬病,而現在終於開始向擴展性更強、效率更高、費用更低的網絡邁進。
  • 以太坊2.0蓄勢待發,倒數三天市場表現幾何
    一、總覽長久以來被戲稱為「永遠還有十八個月」的以太坊2.0,最近一個月終於有了突破性的新進展。本月初以太坊基金會官方開放了ETH質押合約,該地址最後在有效質押期限成功達到信標鏈上線的最低標準,接下來如無意外,ETH 2.0 Phase 0階段將於12月1日正式啟動。
  • 以太坊2.0第0階段信標鏈上線|超級牛市來臨?
    近期有關V神發推與ETH Gas Station創始人互動引起了轟動,互動內容主要以太坊2.0測試網BUG。ETH Gas Station創始人表示其運行了Medalla測試網的節點,也經歷了測試網的時鐘bug。在經歷時鐘bug前後幾個星期裡,其Medalla驗證器一直在運行,沒有受到任何幹擾或出現任何問題。
  • 以太坊2.0:為什麼升級?升級後有何不同?
    而這次ETH2.0的升級,需要單個驗證者質押32ETH,這是一個不大不小的金額,不算大是因為一般人都能夠拿的出來,不算小說的是幾乎沒有人願意捨棄32ETH去冒險,而更重要的一點是這樣的設計使驗證者更加分散,往往控制人相比控制機器更加有難度。以太坊2.0升級後有什麼不同?
  • 上線第一天600多驗證人遭Slash罰款,以太坊2.0還好嗎?
    來自 Turstnode 編譯 | PANews到目前為止,以太坊2.0運行的非常順利,參與率達到了約97%,遠高於任何測試網。另一方面,以太坊2.0網絡在約束驗證人不當行為方面也做得不錯,尤其是防止他們做出任何越過代碼要求的違規行為。
  • 以太坊 2.0 是會幫助還是阻礙 Visa
    圖像:CC BY-SA 3.0 Nick Youngson / Alpha Stock Image數據說話:Visa以太坊在谷歌的搜索量增長超過5000%。isa也開始接觸以太坊區塊鏈上的USDC(按市值計算,它是世界第二大穩定幣)。
  • Staking才是以太坊2.0最大贏家?
    以太坊2.0的大幕已經正式拉開,11月24日,質押到 ETH 2.0 存款合約裡的 ETH 超過了 524,288 枚。因此,信標鏈將按計劃,於最早上線時間——北京時間12月1日晚8點正式上線。這對於以太坊整個社區來說,可以說是一個轉折點。
  • MyEtherWallet創始人:以太坊2.0仍有很長的路要走
    以太坊2.0周二發布了其信標鏈,標誌著該項目向PoS挖掘算法過渡。MyEtherWallet的創始人兼執行長Kosala Hemachandra最近解釋了以太坊2.0的下一個障礙。Hemachandra表示:「基本上,在信標鏈發布後,以太坊將專注於第一階段的規範。它將經歷很多迭代,類似於階段0和大量錯誤修復。由於會有很多問題,因此很難確定下一個障礙是什麼。」為了擴展以太坊網絡,Eth2是多年工作和多次延遲的結果。
  • 簡明版以太坊 2.0 介紹:概念、團隊與規劃方向
    那就是以太坊 2.0 。以太坊 2.0 就是新一代以太坊,我們甚至不該稱之為以太坊。以太坊 2.0 是一個完全不同的項目,在區塊鏈的架構上採用了全新的思路。以太坊 2.0 的目標是提高以太坊的可擴展性、安全性和可編程性。
  • 以太坊2.0正式啟動 中幣推出替代品QETH
    以太坊2.0不像Filecoin一樣,上線日期一拖再拖,甚至以太坊 2.0 的信標鏈在短時間內超過市場預期,達到質押啟動的最低門檻,以太坊2.0如期上線,可謂是眾望所歸。信標鏈是以太坊2.0的第一個階段,信標鏈主要解決的問題是共識機制,也就是從POW到POS的轉型。既然是POS權益證明,那就一定需要質押資產成為以太坊2.0網絡的驗證人,為了成為以太坊2.0的驗證人身份,很多幣友是爭先搶後的爭奪名額。信標鏈沒有啟動前,很多人懷疑是否能預期達到足夠的驗證人和質押的總以太坊數量。沒想到的是,質押的總量遠超預期的數量。
  • 對以太坊2.0來說意味著什麼?
    作者 | 宇星 出品|白話區塊鏈 12月1日晚上,以太坊2.0信標鏈正式啟動,截止12月2日11時,已質押以太坊92萬枚。
  • ETH2.0強勢來襲,質押挖礦首選幣安
    本網12月10日訊 以太坊2.0在上半年賺足了幣圈用戶的眼球,甚至有人認為今年突然爆火的DeFi概念與以太坊升級2.0有著千絲萬縷的關係。終於在12月1日,ETH2.0熱熱鬧鬧的上線信標鏈(Beacon Chain)。
  • 以太坊2.0在1.5階段完成之後的一段時間內將迎來短暫的熊市 但未來...
    12月1日,Eth  2.0開始創建區塊,現在已經進入正常運營階段,但大家最關心的還是資金問題。有人認為以太坊的價格已經很高了,也有人認為還沒有迎來真正的牛市。Eth 2.0認捐數已超過百萬,年利率15.7%。根據目前的進度預測,Eth  2.0更新路線圖後可能會再次出現大量的承諾,我認為未來ETH  2.0可能會有四大事件。
  • 金色觀察丨為什麼說交易所對以太坊2.0的作用不容小覷?
    金色財經 區塊鏈12月14日訊今年加密貨幣行業裡最受關注的事件之一,想必就是以太坊2.0升級了。此前,以太坊由於自身性能存在的限制,比如吞吐量較低、區塊空間不足、高昂gas費、高昂交易費、確認速度緩慢等一直被加密社區詬病。但不可否認的是,以太坊依然是這個世界上最重要的區塊鏈技術之一。
  • Altona 測試網上線,解讀以太坊2.0治理機制
    鏈上治理是權益證明公鏈主流的治理機制,但由於此機制容易導致大戶權力過大及賄賂等等問題,並不一定適合以太坊2.0。本文將分三個部分介紹: 第一部分介紹區塊鏈的治理機制,主要分為鏈上治理及鏈下治理;第二部分介紹以太坊目前的治理流程及存在的問題;第三部分介紹以太坊轉型2.0後能夠改善的方向。
  • ETH觸及年內高點,以太坊勝過其他的關鍵原因
    自2020年初以來,對以太坊2.0的期待(這將使用戶受益)推動了對ETH的需求。當從以太坊網絡中淘汰礦工時,質押可使用戶獲得激勵。權益證明共識算法不需要在協議上使用礦工。取而代之的是,在ETH中有利益的用戶通過質押共同處理數據和信息。作為回報,他們獲得ETH激勵。
  • 2021以太坊 2.0遊戲計劃:以太的價值將受到什麼影響?
    以太坊2.0被稱為為向更好的共識機制的過渡,在過去的一年裡,這一特殊的"過渡"一直在研究之中。開發過程於 2018 年啟動,需要一段時間才能到達第 0 階段。在過去的18-20個月裡,以太坊基金會處理了延誤、更新的路線圖、關於項目合法性的多條謠言線索,以及來自競爭對手項目支持者(比特幣最大化主義者)的大量懷疑。