- A+
➤ Ubuntu v20.04 (LTS) x64 服务器
➤ Go Ethereum 节点 (代码分支)
➤ Sigma Prime’s ETH 2.0 客户端 —— Lighthouse (代码分支)
➤ 浏览器插件加密钱包 MetaMask
提示:参与质押至少需要32 ETH 以及额外的gas费。在搞清楚之前切记不要向任意地址发送ETH。本教程介绍了如何安全地将你的ETH存入存款合约。请牢记不要将ETH发送给任何人。
感谢EthStaker管理团队和提供教程的社区成员、Eth2 客户端团队、以及质押社区的帮助和校对。
特别感谢Eth2 客户端团队和以太坊基金会的研究员。他们经过几年的不懈努力,将我们带到这难以置信的时刻——Eth2.0成功创世。
➤ EthStaker社区是一个以太坊2.0 Staking 社区,资源丰富且十分友好。
Reddit: https://www.reddit.com/r/ethstaker/
Discord: https://discord.gg/7z8wzehjrJ
➤ Lighthouse 客户端团队,Discord:
https://discord.gg/gdq27tnKSM
还需要准备:
➤ Ubuntu 服务器 v20.04 (LTS) amd64 或者一个较新的,在本地计算机或云端安装和运行的Ubuntu服务器。运行本地电脑有助于去中心化,因为如果云服务商崩溃了,那么托管在此服务商的所有节点都会随之崩溃。
➤ 已安装或已配置的浏览器插件加密钱包MetaMask (或Portis、Fortmatic)。一台装有操作系统 (Mac、Windows、Linux等) 和浏览器 (Brave、Safari、FireFox等) 的计算机。
注意:检查你的可用磁盘空间。尽管你有一个容量较大的SSD,Ubuntu也会出现仅剩200GB可用空间的状况。如果你遇到这种情况,请查看附录C —— 扩展逻辑卷。
➤ 生成验证者密钥对和存款数据
➤ 准备Ubuntu服务器 (防火墙、安全设置等)
➤ 设置一个Eth1 节点并同步Eth1 区块链的数据
➤ 配置Lighthouse客户端并同步Eth1 节点数据
➤ 存款并激活验证者密钥对
那我们现在就开始吧!
注意:如果你的存款数据和验证者密钥对已经生成,可以跳过这一步。
一个验证者节点需要存32 ETH,你的MetaMask钱包里要有相应足够的ETH。比如,如果你计划运行5个验证者节点,你将需要准备160 ETH (32*5) 并且预留一些gas费。存款过程会稍后再讲解,下面教大家怎么把设备运行起来。
下载链接:
https://github.com/ethereum/eth2.0-deposit-cli/releases/
建议方案:将这份二进制文件复制粘贴到USB驱动器里。连接到一台此前从未连接过网络的计算机,将文件复制到计算机里并开始运行。
不建议方案:在当前使用的计算机上运行。但是网络连接可能会导致你的助记词密钥泄漏。如果没有未联网的计算机,那就在开始运行之前断开网络。
准备好之后,在终端窗口 (或windows的命令提示符CMD) 中运行这份文件以继续使用下面列出的命令。确定好你要运行的验证者节点的数量之后,用该数字替换 <NumberOfValidators>
。比如:--num_validators 2
Linux/Mac:
./deposit new-mnemonic --num_validators <NumberOfValidators> --chain mainnet
Windows:
deposit.exe new-mnemonic --num_validators <NumberOfValidators> --chain mainnet
在你选择的计算机执行上面的步骤之后,你将被要求创建一个验证者密钥存储库 (validator keystore) 密码,并保存在一个安全的地方。在后面的步骤中,你将需要这个keystore来上传验证者密钥到Lighthouse的验证者钱包里。
➤ 文件 deposit_data-[timestamp].json
包含验证者公钥和质押存款信息。该文件将用于完成随后的ETH存款过程。
➤ 文件 keystore-m...json
包含经过加密的验证者签名密钥。每一个验证者节点对应一个“keystore-m”。该文件将被导入到Lighthouse验证者钱包中以备质押时使用。随后需要将这些文件复制粘贴到Ubuntu服务器中。
注意:此时还不能进行存款。
首先完成并验证你的质押设置非常重要。如果你的ETH存款激活了,但是质押设置还没准备好的话,你将会受到怠工惩罚。
root
登录,最好是重新创建一个拥有管理权限的用户账户,因为使用root
用户登录存在很大的风险。
注意:如果你不是用root
登录的便可以直接跳到第三步。
创建一个新账户。在 <yourusername>
中填入你的用户名,然后设置一个安全系数较高的密码,并输入其他可选信息。
# adduser <yourusername>
通过把新的用户加入sudo
群组中,来授予其管理权限。这样用户在命令行前输入sudo
,便会以超级用户的权限来执行操作。
# usermod -aG sudo <yourusername>
可选项:如果你使用SSH密钥通过root
用户连接你的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
在1024 — 49151之间选择一个端口号,然后运行以下命令以检索尚未使用的端口号。没有其他显示便意味着该端口号未被使用;显示红色便意味着已被使用,请尝试其他端口号。比如:sudo ss -tulpn | grep ':6673'
$ sudo ss -tulpn | grep ':<YourSSHPortNumber>'
确定端口号可用之后,通过升级SSH设置来修改默认端口。
$ sudo nano /etc/ssh/sshd_config
在文件中检索或者添加 (如果没有的话) Port 22
命令行。删掉#
(如果有的话) 并在下面的命令行中输入端口号。
Port <YourSSHPortNumber>
参考下方的截图。按CTRL+x 然后选 ‘y’ ,按回车保存并退出。
$ sudo systemctl restart ssh
登出并使用你的SSH端口号<YourSSHPortNumber>
重新登入。
安装 UFW 防火墙
按照下面的命令行输入以保证在默认情况下安装 UFW。
$ sudo apt install ufw
应用 UFW 默认值
明确地应用默认值,拒绝入站流量,允许出站流量。
$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
允许 SSH
允许你此前设置的端口号 <YourSSHPortNumber>
的入站流量。SSH 要求 TCP 协议。比如:sudo ufw allow 6673/tcp
$ sudo ufw allow <yourSSHportnumber>/tcp
拒绝 SSH 端口号22
拒绝端口 22/TCP 的入站流量。
注意:当你完成了修改 SSH 默认端口之后再做这一步。
$ sudo ufw deny 22/tcp
允许 Go Ethereum
允许与 Go Ethereum 的对等节点 (端口 30303) 进行点对点 (P2P) 连接。如果你使用第三方托管的 Eth1 节点,则可以跳过这一步。
注意:如果你在本地托管你的Ubuntu服务器,你需要配置你的网络路由以允许来自端口 30303 的入站流量。
$ sudo ufw allow 30303
允许 Lighthouse 客户端
允许与 Lighthouse 的对等节点进行点对点连接,以便在信标链节点上 (Lighthouse 的默认端口为 9000) 进行操作。
注意:如果你在本地托管你的Ubuntu服务器,你需要配置你的网络路由以允许来自端口9000 的入站流量。
$ sudo ufw allow 9000
开启防火墙并检查是否已按上述步骤正确地配置。
$ sudo ufw enable
$ sudo ufw status numbered
参考下方的截图。
$ timedatectl
激活 NTP service
,运行方式:
$ sudo timedatectl set-ntp on
参考下方的截图:
$ ntpq -p
$ sudo apt-get remove ntp
注意:检查你的可用磁盘空间。一个Eth1节点需要大概400GB的存储空间。尽管你有一个容量较大的固态硬盘,Ubuntu也可能显示仅剩200GB的可用空间。如果你遇到这种情况,请查看附录C —— 扩展逻辑卷。
$ sudo add-apt-repository -y ppa:ethereum/ethereum
$ sudo apt update
$ sudo apt install geth
将Go Ethereum作为后台服务来运行,运行该服务需要创建一个账户。此种类型的账户无法登录服务器。
$ sudo useradd --no-create-home --shell /bin/false goeth
为Eth1区块链创建数据目录,用来存储Eth1节点数据。
$ sudo mkdir -p /var/lib/goethereum
设置目录的权限。goeth
账户需要权限来修改该数据目录。
$ sudo chown -R goeth:goeth /var/lib/goethereum
创建一个systemd服务配置文件来对该服务进行配置。
$ sudo nano /etc/systemd/system/geth.service
将下列的服务配置复制粘贴到文档中。
[Unit]
Description=Go Ethereum Client
After=network.target
Wants=network.target[Service]
User=goeth
Group=goeth
Type=simple
Restart=always
RestartSec=5
ExecStart=geth --http --datadir /var/lib/goethereum --cache 2048 --maxpeers 30[Install]
WantedBy=default.target
需要注意的 flags:
➤flag --http
用来公开与Lighthouse信标链节点连接的一个HTTP端口 (http://localhost:8545)。
➤ flag --cache
指的是内部缓存的大小,以GB为单位。数值的增减取决于你的可用系统内存。设置 2048
将大概需要使用 4-5 GB的内存。
➤ flag --maxpeers
指的是所连接节点的最大数值。节点数量越多,意味着越多的网络数据可用空间。所以记得不要将该数值设置得太低,否则你的Eth1节点将难以保持同步。
参考下方的截图。按CTRL+x 然后选 ‘y’ ,按回车保存并退出。
$ sudo systemctl daemon-reload
$ sudo systemctl start geth
$ sudo systemctl status geth
参考下方的截图:
允许geth服务在系统重启时自动启动。
$ sudo systemctl enable geth
Go Ethereum节点将会开始同步。你可以运行下列命令来追踪进程或检查错误。按“CTRL+c”退出 (此操作不会影响geth服务)。
$ sudo journalctl -fu geth.service
参考下方的截图:
geth attach http://127.0.0.1:8545
> eth.syncing
如果显示结果是 false
,表明你的同步已完成。如果显示结果是同步数据,表明你仍在同步。作为参考,大概有7-8亿个已知状态 knownStates
。
参考下方的截图
geth attach http://127.0.0.1:8545
> net.peerCount
对等节点总数 peerCount
不会超过你所设置的最大对等节点总数 --maxpeers
。如果无法找到需要同步的对等节点,参阅下一部分。
完成后按“CTRL+d”以退出
访问https://gist.github.com/rfikki/a2ccdc1a31ff24884106da7b9e6a7453 获得最新的清单并根据下列操作修改geth服务:
$ sudo systemctl stop geth
$ sudo nano /etc/systemd/system/geth.service
修改 ExecStart
行,添加 --bootnodes
flag:在下方罗列出最新的对等节点,并以逗号分割。
ExecStart=geth --http --datadir /var/lib/goethereum --cache 2048 --maxpeers 30 --bootnodes "enode://d0b4a09d072b3f021e233fe55d43dc404a77eeaed32da9860cc72a5523c90d31ef9fab7f3da87967bc52c1118ca3241c0eced50290a87e0a91a271b5fac8d0a6@157.230.142.236:30303,enode://5070366042daaf15752fea340e7ffce3fd8fc576ac846034bd551c3eebac76db122a73fe8418804c5070a5e6d690fae133d9953f85d7aa00375d9a4a06741dbc@116.202.231.71:30303"
保存文件之后退出。然后重启服务并观察。
$ sudo systemctl daemon-reload
$ sudo systemctl start geth
$ sudo journalctl -fu geth.service
注意:需要按照一系列特定的步骤来更新Geth。更多信息请参见“附录A:更新Geth”。
首先,访问
https://github.com/sigp/lighthouse/releases并找到最新发布的Lighthouse版本。通常在页面的最顶部,比如:
注意:那里有两种类型的二进制文件 (可移植/不可移植),他们的区别这里有解释:https://lighthouse-book.sigmaprime.io/installation-binaries.html 。可移植二进制文件可以在更广泛的硬件中运行,但是需要花费20%的性能成本。
$ cd ~
$ sudo apt install curl
$ curl -LO https://github.com/sigp/lighthouse/releases/download/v1.0.2/lighthouse-v1.0.2-x86_64-unknown-linux-gnu.tar.gz
从归档文件中提取二进制文件并复制到 /usr/local/bin
目录,Lighthouse客户端会在该处运行这些文件。根据需求修改文档名。
$ tar xvf lighthouse-v1.0.2-x86_64-unknown-linux-gnu.tar.gz
$ sudo cp lighthouse /usr/local/bin
输入下列命令以确认这些二进制文件是否能在你的服务器CPU上运行,如果不可以,返回并下载可移植版本,重新操作。
$ cd /usr/local/bin/
$ ./lighthouse --version # <-- should display version information
注意:有时会遇到这样的情况——版本信息已显示,但后续命令仍操作失败。如果你在运行account validator import
命令时遇到错误 Illegal instruction (core dumped)
,那么你需要换成可移植版本。
清理所提取的文档。
$ cd ~
$ sudo rm lighthouse
$ sudo rm lighthouse-v1.0.2-x86_64-unknown-linux-gnu.tar.gz
注意:需要按照一系列特定的步骤来更新Lighthouse。更多信息请参见“附录B:更新Lighthouse”。
keystore-m…json
不是在你的Ubuntu服务器上生成的,那么你就需要将这些文件复制粘贴到你的本地目录中。你可以用 USB 把文件拷过去 (如果你的服务器是本地的),也可以使用安全的FTP (SFTP)。
将文件放置在:$HOME/eth2deposit-cli/validator_keys
。如果需要的话创建文件目录。
<yourusername>
修改登入用户名。
$ sudo mkdir -p /var/lib/lighthouse
$ sudo chown -R <yourusername>:<yourusername> /var/lib/lighthouse
运行验证者密钥导入进程。你需要提供放置已生成的密钥存储文件的路径。比如:$HOME/eth2deposit-cli/validator_keys
$ cd /usr/local/bin
$ lighthouse --network mainnet account validator import --directory
$HOME/eth2deposit-cli/validator_keys --datadir /var/lib/lighthouse
你将需要输入密码以访问验证者密钥对,该密码你在第一步设置过。
访问每一个密钥都需要输入密码,逐个输入。确保密码输入正确,因为验证器将作为服务运行时需要将密码保存到文件中以访问密钥。
注意:验证者数据被保存在下列路径/var/lib/lighthouse/validators
,该路径在密钥存储文件导入进程中创建。
参考下方截图。
lighthouse
目录。
sudo chown -R root:root /var/lib/lighthouse
导入完成,钱包已设置好。
$ sudo useradd --no-create-home --shell /bin/false lighthousebeacon
为Lighthouse信标节点的数据库创建数据目录和设置权限。
$ sudo mkdir -p /var/lib/lighthouse/beacon
$ sudo chown -R lighthousebeacon:lighthousebeacon /var/lib/lighthouse/beacon
$ sudo chmod 700 /var/lib/lighthouse/beacon
$ ls -dl /var/lib/lighthouse/beacon
参考下方的截图。
$ sudo nano /etc/systemd/system/lighthousebeacon.service
将下面这段代码复制粘贴到文档里
[Unit]
Description=Lighthouse Eth2 Client Beacon Node
Wants=network-online.target
After=network-online.target[Service]
User=lighthousebeacon
Group=lighthousebeacon
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/lighthouse bn --network mainnet --datadir /var/lib/lighthouse --staking --eth1-endpoints http://127.0.0.1:8545[Install]
WantedBy=multi-user.target
需要注意的 flags.
➤ bn
子命令指示Lighthouse二进制文件运行信标节点。
➤ --eth1-endpoints
一个或多个逗号分隔的服务器终端,用于Web3连接。如果给定多个端点,则按照给定的顺序将端点作为回退。同时启动flag -- eth1
。例如:--eth1-endpoints
参考下方的截图。按 CTRL+x然后'y',按回车保存然后退出。
$ sudo systemctl daemon-reload
注意:如果你正在运行一个本地Eth1节点 (查看第6步),你应该等它完全同步完再启动lighthousebeacon的服务。
启动服务并查看,确保其正确运行。
$ sudo systemctl start lighthousebeacon
$ sudo systemctl status lighthousebeacon
参考下方的截图。
$ sudo systemctl enable lighthousebeacon
如果Eth2 链处于创世后的状态,Lighthouse信标链会开始同步数据。它可能要花几个小时才能完全实现同步。你可以通过运行journalctl
命令来追踪进程或检查错误。按CTRL+c退出 (将不会影响lighthousebeacon的服务)
$ sudo journalctl -fu lighthousebeacon.service
日志的截位视图会显示以下状态信息。
[注意: 目前出现了一个问题导致出现错误信息]INFO Waiting for genesis
wait_time: 5 days 5 hrs, peers: 50, service: slot_notifier
当Eth2主网启动,信标链和验证者将自动开始处理数据。输出数据会给出与Eth1节点完全同步的指示。
$ sudo useradd --no-create-home --shell /bin/false lighthousevalidator
在第8步创建验证者钱包时已经创建了这个目录:/var/lib/lighthouse/validators
。现在设置权限,使得只有lighthousevalidator
可以修改这个目录。
$ sudo chown -R lighthousevalidator:lighthousevalidator /var/lib/lighthouse/validators
$ sudo chmod 700 /var/lib/lighthouse/validators
$ ls -dl /var/lib/lighthouse/validators
参考下方的截图
$ sudo nano /etc/systemd/system/lighthousevalidator.service
将下面这段代码复制粘贴到文档里
[Unit]
Description=Lighthouse Eth2 Client Validator Node
Wants=network-online.target
After=network-online.target[Service]
User=lighthousevalidator
Group=lighthousevalidator
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/lighthouse vc --network mainnet --datadir /var/lib/lighthouse --graffiti "<yourgraffiti>"[Install]
WantedBy=multi-user.target
需要注意的 flags.
➤ vc
子命令指示Lighthouse二进制文件运行信标节点。
➤ --graffiti "<yourgraffiti>"
填上你的涂鸦字串符。出于安全和隐私,应避免使用能唯一辨识你的信息。比如--graffiti "Hello Eth2! From Dominator"
。
参考下方的截图。按CTRL+x 然后选 ‘y’ ,按回车保存并退出。
$ sudo systemctl daemon-reload
$ sudo systemctl start lighthousevalidator
$ sudo systemctl status lighthousevalidator
参考下方的截图
允许服务随系统重启而自动重启。
$ sudo systemctl enable lighthousevalidator
你可以通过运行journalctl
命令来追踪进程或检查错误。按CTRL+c退出(将不会影响lighthousevalidator的服务)
$ sudo journalctl -fu lighthousevalidator.service
日志的截位视图会显示以下状态信息。
INFO Lighthouse started version: Lighthouse/v1.0.2-c6baa0e
INFO Configured for testnet name: mainnet
WARN The mainnet specification is being used. This not recommended (yet).
INFO Starting validator client validator_dir: "/var/lib/lighthouse/validators", beacon_node: http://localhost:5052/
INFO Completed validator discovery new_validators: 0
INFO Enabled validator voting_pubkey: 0xaa...
INFO Enabled validator voting_pubkey: 0x90...
INFO Initialized validators enabled: 2, disabled: 0
INFO Connected to beacon node version: Lighthouse/v1.0.2-c6baa0e/x86_64-linux
INFO Starting node prior to genesis seconds_to_wait: 444946
INFO Waiting for genesis seconds_to_wait: 444946, bn_staking_enabled: true
创世后 (即信标链已经开始处理数据后)存入的存款可能需要等几个小时到几天的时间才能激活。
Eth2主网启动后,信标链和验证者将会自动开始处理数据。
你可以在 beaconcha.in查看你的验证者状态。只需要搜索你的验证者公钥或使用你的MetaMask (或其他)钱包地址进行搜索。你的数据可能要过一段时间才会在网站上显示。
注意:如果你已经提交了你的质押存款,你可以跳过这一步。
这一步是关于将所需的ETH存入Eth2.0的存款合约。不要把ETH发送到存款合约。这需要在浏览器上通过Eth2.0的Launchpad网站启动你的MetaMask (或其他) 钱包。
注意:如果是在创世后进行的话,你需要在你的Eth1节点和信标链都完全同步完之前存入你的存款。如果你不这样做,当你的Eth1节点或信标链在同步时,Lighthouse会处于怠工状态,而你可能要遭遇怠工惩罚。
以太坊2.0 Launchpad:
https://launchpad.ethereum.org/
一直随着屏幕切换点击这些警告步骤,直到你到达密钥对生成的部分。选择你打算运行的验证者数量。选择一个与你在步骤1中生成的验证者文件数量相匹配的值。
deposit_data-[timestamp].json
文档。这个文档你是在步骤1生成的。浏览/选择或拖拉这个文档,然后点击Continue。
你的MetaMask余额就会显示出来。如果你选择了主网且你有充足的ETH余额,网站会允许你继续下一步。
当所有的交易都成功完成时,你的质押也完成了!
➤ 复制你的MetaMask (或其他)钱包地址。
➤ 前往这里: beaconcha.in/
➤ 用你的钱包地址搜索你的密钥
恭喜你:你终于正式成为了一名以太坊质押者!
是时候来一顿肥宅水狂欢了。
后续步骤:
➤ 检查三次所有密钥与密码备份。
➤ 重启你的电脑并确保服务都能自动启动。
➤ 了解如何升级客户端与服务器软件。
➤ 使用htop
来监测本地电脑的资源
➤ 熟悉beaconcha.in ,这样你就能监测你的验证者情况,其提供警报功能 (通过邮件发送,需要注册)和最多3个POAP。
➤ J 加入 Ethstaker和 Lighthouse的Discord,留意重要通知。
➤ 请在Discord、 Twitter、或Reddit分享对这份教程的反馈。
➤ 在 Ethstaker 的discord上帮助其他人设置。
➤ 用friend link分享这份教程
➤ 支持一下:somer.eth
如果作者对这些资源还没测试或验证过,而你采用了的话,是要自己承担风险的。
➤ 客户端团队的官方文档 Prysm | Lighthouse | Teku | Nimbus
➤ /r/EthStaker Sticky
➤ 以太坊2.0客户端的非官方docker环境
➤ 如何在Ubuntu上设置Eth2主网验证者系统
➤ 指南 | 如何在ETH2主网设置验证者
➤ 指南 | ETH2验证者信标链节点的安全最佳实践
➤ ETH2质押节点的额外监察
➤ 以太坊2.0质押的Telegram服务
$ sudo systemctl stop lighthousevalidator
$ sudo systemctl stop lighthousebeacon$ sudo systemctl stop geth
$ sudo apt update && sudo apt upgrade
$ sudo systemctl start geth
$ sudo systemctl status geth # <-- Check for errors
$ sudo journalctl -fu geth # <-- Monitor$ sudo systemctl start lighthousebeacon
$ sudo systemctl status lighthousebeacon # <-- Check for errors
$ sudo journalctl -fu lighthousebeacon # <-- Monitor$ sudo systemctl start lighthousevalidator
$ sudo systemctl status lighthousevalidator # <-- Check for errors
$ sudo journalctl -fu lighthousevalidator # <-- Monitor
首先,前往这里找出最新的Linux发布。
注意:会有两种类型的二进制文件——可移植的不可移植的。这里解释了两者的区别。确认你选的是正确的类型。
$ cd ~
$ sudo apt install curl
$ curl -LO https://github.com/sigp/lighthouse/releases/download/v1.0.2/lighthouse-v1.0.2-x86_64-unknown-linux-gnu.tar.gz
停止Lighthouse客户端服务。
$ sudo systemctl stop lighthousevalidator
$ sudo systemctl stop lighthousebeacon
从存档里提取出二进制文档,并复制 /usr/local/bin
到目录。如果需要的话,修改URL名。
$ tar xvf lighthouse-v1.0.2-x86_64-unknown-linux-gnu.tar.gz
$ sudo cp lighthouse /usr/local/bin
重新启动服务并检查错误。
$ sudo systemctl start lighthousebeacon
$ sudo systemctl status lighthousebeacon # <-- Check for errors
$ sudo journalctl -fu lighthousebeacon # <-- Monitor$ sudo systemctl start lighthousevalidator
$ sudo systemctl status lighthousevalidator # <-- Check for errors
$ sudo journalctl -fu lighthousevalidator # <-- Monitor
清理抽出的文档。
$ cd ~
$ sudo rm lighthouse
$ sudo rm lighthouse-v1.0.2-x86_64-unknown-linux-gnu.tar.gz
Fatal: Failed to register the Ethereum service: write /var/lib/goethereum/geth/chaindata/383234.ldb: no space left on device
为了解决这个问题,假设你有一个大于200GB的固态硬盘,你可以通过下列步骤为 LVM (逻辑卷管理) 扩大容量:
$ sudo lvdisplay # <-- Check your logical volume size
$ sudo lvm
> lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
> lvextend -l +100%FREE -r /dev/ubuntu-vg/ubuntu-lv
> exit
$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
$ df -h # <-- Check results
这会重新调整你的硬盘至它的最大可用空间。
如果你在这方面需要支持,请在 EthStaker 的Discord上寻求帮助。
- 我的微信
- 这是我的微信扫一扫
- 我的电报
- 这是我的电报扫一扫