本文以Centos7环境为例,同时提供了主网和测试网的eth2.0节点搭建教程。阅读时需要特别注意加入的网络和参数。
eth版本 | 主网代号 | 测试网代号 |
---|---|---|
eth1.0 | mainnet | goerli |
eth2.0 | mainnet | pyrmont |
例如:加入主网的话,eth1.0节点和beacon节点都加入mainnet即可;如果是加入测试网,eth1.0节点需要加入goerli测试网,beacon节点需要加入pyrmont测试网。
eth2.0节点搭建教程可以简化为以下几个步骤:
- 生成validator相关文件
- 运行并同步eth1.0节点
- 运行并同步beacon节点
- 导入钱包并运行validator
测试网的代币领取地址:https://faucet.goerli.mudit.blog/
1. 生成validator相关文件
validator相关文件有两个:
1. deposit_data-***.json
2. keystore-***.json
加入的网络不同,参数也需要不同,而且生成的validator相关文件当中的部分参数也不同,不能混淆使用。
下载源码
git clone -b master --single-branch https://github.com/ethereum/eth2.0-deposit-cli.git
安装配置好python3,然后执行并生成 主网 的validator
相关文件
python3 setup.py install
pip3 install -r requirements.txt
python3 ./eth2deposit/deposit.py new-mnemonic --chain mainnet
执行,生成 ***测试网***的validator
相关文件
python3 setup.py install
pip3 install -r requirements.txt
python3 ./eth2deposit/deposit.py new-mnemonic --chain pyrmont
注意:–chain参数声明了你要生成的
validator
相关文件对应的网络类型。
2. 安装、运行eth1.0节点
- 下载并安装geth https://geth.ethereum.org/downloads/
- 执行以下脚本即可运行geth加入 主网 并开始同步
nohup geth --datadir <your_eth1_mainnet_data_dir> --syncmode "fast" --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpccorsdomain "*" --rpcapi web3,personal,admin,db,net,eth,miner,rpc,txpool,clique
若要加入 goerli测试网,执行:
nohup geth --datadir <your_eth1_goerli_data_dir> --syncmode "fast" --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpccorsdomain "*" --rpcapi web3,personal,admin,db,net,eth,miner,rpc,txpool,clique --goerli
注意:不建议eth1.0节点输出日志,可能导致磁盘io过大,同步跟不上。
3. 安装、运行beacon节点
等待eth1.0节点同步完成,即可开始安装beacon节点。这里使用prysm,建议编译源码安装https://gitee.com/HAYPO/prysm.git
在源代码目录下执行并加入 主网
sh prysm.sh beacon-chain --datadir=<your_beaconnode_mainnet_data_dir> --http-web3provider=<YOUR_ETH1_NODE_ENDPOINT>
若要加入pyrmont测试网执行并加入 pyrmont测试网
sh prysm.sh beacon-chain --datadir=<your_beaconnode_pyrmont_data_dir> --http-web3provider=<YOUR_ETH1_NODE_ENDPOINT> --pyrmont
注意:beacon节点
datadir
的和eth1.0节点的datadir
不是同一个路径。执行上面的命令后会在dist
文件夹下产生可执行文件。YOUR_ETH1_NODE_ENDPOINT是eth1的http路径。不建议beacon节点输出日志,可能导致磁盘io过大,同步跟不上。
完成质押
主网:访问https://launchpad.ethereum.org/完成资料填写、上传 主网 的deposit_data-***.json
,将会发送合约交易,并质押32ETH
测试网:访问https://pyrmont.launchpad.ethereum.org/完成资料填写、上传 测试网 的deposit_data-***.json
,将会发送合约交易,并质押32GoETH
4. 导入钱包账户,运行validator
执行命令,输入密码和钱包路径,完成导入。
主网
sh prysm.sh validator accounts import --keys-dir=<your_mainnet_validator_keys_dir>
pyrmont测试网
sh prysm.sh validator accounts import --keys-dir=<your_pyrmont_validator_keys_dir> --pyrmont
/eth2.0-deposit-cli/validator_keys就是上面的validator相关文件路径。需要设置一个 总密码 ,管理钱包路径里的全部账户
运行validator
执行命令,运行validator
主网
sh prysm.sh validator --wallet-dir=<your_wallet_dir> --wallet-password-file=<your_wallet_password_dir>/password.txt > <your_log_dir>/validator.log
测试网
sh prysm.sh validator --wallet-dir=<your_wallet_dir> --wallet-password-file=<your_wallet_password_dir>/password.txt > <your_log_dir>/validator.log --pyrmont
注: <your_wallet_password_dir>/password.txt保存的是 总密码 ,这样可以保持validator后台运行并且输出日志。
等待5-12小时,加入eth2.0
主网查看加入进度访问https://beaconcha.in
测试网查看加入进度访问https://pyrmont.beaconcha.in
注意事项!!!!
Service | Default Port |
---|---|
Geth | 30303TCP/UDP |
Lighthouse | 9000 TCP/UDP |
Nimbus | 9000 UDP/TCP |
Prysm | 12000 UDP, 13000 TCP |
Teku | 9000 TCP/UDP |
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' http://<你的eth1.0节点的地址>:8545
上面的8545可以替换成实际使用的端口。如果返回客户端版本号说明验证通过
-
保持系统同时运行 Beacon-chain 和 Validator 两个进程,然后等待 Validator 激活,持续获得收益。
-
若要监控beacon节点和validator的状态可以使用grafana
<版权归属HAYPO所有,未经授权不允许转载>