本文将以Medalla多客户端测试网为例介绍在ETH2.0上质押的详细步骤。主要基于以下几个技术:
Ubuntu?v20.04(LTS)x64服务器
GoEthereum?节点(代码分支)
PrysmaticLabs?ETH2.0客户端——Prysm
官方多客户端公共测试网?Medalla
浏览器扩展程序钱包?MetaMask
Prometheus?指标
Grafana?控制面板
这篇指南介绍了如何:
配置新运行的Ubuntu服务器实例
配置和运行ETH1.0节点
为ETH2.0Phase0编译并配置PrysmaticLabs信标链和验证者客户端软件,并提供相应的运行服务
安装并配置Prometheus指标,并创建Grafana控制面板用于查看数据和接收警报
致谢和免责声明
这篇指南参考了各种网上资料。没有它们,就没有这篇指南。特此表示感谢!
我本人并不精通这篇指南中列出的所有技术。经过亲身尝试之后,我发现这些技术非常有趣,因此想要分享给其他人。如有任何错误或疏漏之处,烦请见谅。欢迎大家积极反馈!
读者须知
这篇指南并不适合初学者。读者需要具备一些关于以太坊、以太币、质押、Linux和MetaMask的知识。在开始阅读之前,请先运行Ubuntu服务器实例。先安装好MetaMask浏览器插件并配置好也在一定程度上有所帮助。然后,我会引导你完成接下来的步骤。
树莓派用户须知
我没有在树莓派上测试过这个指南。如果你想尝试一下,直接将下文列出的软件换成ARM版本。但是我不保证一定能成功!
要求
Ubuntu服务器实例。我使用的是v20.04(LTS)amd64服务器虚拟机。
安装并配置好的MetaMask密码学钱包浏览器扩展程序。
运行Prysm软件的最低硬件要求:—操作系统:64-bitLinux—处理器:IntelCorei5–760或AMDFX-8100或以上—内存:4GBRAM(推荐8GB)—硬盘:不低于20GB的SSD固态硬盘空间—网络:稳定的宽带连接
目前似乎还没有任何硬性硬盘要求。测试网可能只需要100GB的SSD固态硬盘就够了。对于主网来说,接下来的几年,使用1TB的SSD固态硬盘可能更好。总的来说,最好做好在必要时扩展硬盘容量的准备。
概述
这份指南很长而且细节繁多。所以我画了一张究极简化的示意图来帮助你对接下来要做的事情建立基本概念。下图中的黄色框即是本指南会覆盖到的部分。
整个流程可以概念化表述为:
启动一个Eth1节点并同步Eth1G?erli测试网
生成并激活验证者密钥对
配置信标链节点和验证者客户端
让信标链节点在验证者的帮助下施展魔法
Avalanche将进行Cortina升级,将迁移X-Chain以运行Snowman++共识:3月24日消息,据官方博客,Avalanche宣布将于3月27日在Fuji测试网上发布 Avalanche Cortina升级的预发布代码,Fuji测试网Cortina升级将于北京时间3月30日23:00激活。在Fuji测试网上的Cortina升级成功之前,将公布Avalanche主网激活时间,并发布官方Cortina AvalancheGo版本 (v1.10.0)。
最新版本的AvalancheGo将迁移X-Chain以运行Snowman++共识,这意味着整个网络已经迁移到一个单一的共识引擎,这减少了可信计算基础的规模并增加了现有研发工作的杠杆作用,这解除了Avalanche Warp Messaging (AWM)在X-Chain上的集成,并使交易所更容易支持X-Chain,其中将包含子网上使用的许多质押代币。Cortina升级还引入了批处理授权奖励并将C-Chain gas上限提高至1500 gas。[2023/3/24 13:23:46]
第一步——保护你的系统
安全性很重要。由于本文不是一篇全面的安全性指南,我只介绍一些基本设置:防火墙和用户账号。本文预设你可以访问你的Ubuntu实例的控制台,并作为?root?用户通过SSH登陆控制台。
配置防火墙
Ubuntu20.04服务器可以使用默认的?
UFW防火墙?来限制访问该服务器的流量。我们需要允许来自SSH、GoEthereum、Grafana和Prysm的入站流量。允许SSH——允许通过SSH连接到该服务器
注:出于安全考虑,你可能需要考虑更换你的SSH端口。这里面会有一些细微差别,你可以自己研究一下。
#ufwallow22/tcp
允许GoEthereum——允许来自GoEthereum节点的请求。
注:如果你将你的Ubuntu实例托管在本地,你需要对你的路由器和/或防火墙进行配置,允许来自这些端口的入站流量。
#ufwallow30303/tcp
#ufwallow30303/udp
允许Grafana——允许将入站请求发送至Grafana网络服务器
#ufwallow3000/tcp
允许Prysm——允许对等节点之间进行连接,以便在信标链节点上进行操作。
PrysmaticLabs将端口13000/TCP和12000/UDP列为默认端口。
注:如果你将你的Ubuntu实例托管在本地,你需要对你的路由器和/或防火墙进行配置,允许来自这些端口的入站流量。
#ufwallow13000/tcp
#ufwallow12000/udp
可选项:如果你想要直接访问Prometheus数据服务,你也可以开启端口9090/TCP。如果你只使用Grafana查看数据,那就没必要开启这个端口。我自己就没有开启这个端口。
#ufwallow9090/tcp
现在开启防火墙并检查防火墙是否已经按照上述规则正确配置。
#ufwenable
#ufwstatusnumbered
美股三大指数集体收涨,标普500指数涨1.43%:金色财经报道,美股三大指数集体收涨,道指涨1.58%,纳指涨1.26%,标普500指数涨1.43%,大型科技股多数上涨。[2022/12/13 21:40:45]
输出应如下图所示:
-UFW防火墙设置-
创建一个新的用户账户,并授予其管理权限
使用?
root?账户登陆存在很大的风险。让我们来重新创建一个拥有管理权限的用户账户。
#adduser<yourusername>
你需要输入密码以及其它信息。
将新的用户加入sudo群组,即可授予其管理权限。
#usermod-aGsudo<yourusername>
当你以?
<yourusername>?登陆时,你可以在命令行前键入sudo,即可以超级用户的权限来执行操作。
可选项:如果你使用?SSH密钥连接你的实例,你需要将这个新账户与?root?账户的SSH密钥数据进行关联。
#rsync--archive--chown=<yourusername>:<yourusername>~/.ssh/home/<yourusername>
第二步——升级你的系统
注销你的?root?账户登录状态和SSH,使用你新创建的用户名进入Ubuntu系统,运行下列命令行来升级系统。
$sudoaptupdate&&sudoaptupgrade
$sudoaptdist-upgrade&&sudoaptautoremove
第三步——安装并运行GoEthereum节点
本步的用意是安装并配置好一个将来的你的信标链节点需要连接的以太坊1.0节点。如果你倾向于使用由第三方托管的节点(比如?Infura),那就跳过这一步。
安装GoEthereum
GoEthereum建议使用PPA的。
$sudoadd-apt-repository-yppa:ethereum/ethereum
更新安装包并安装最新的稳定版本。
$sudoapt-getupdate
$sudoapt-getinstallethereum
运行GoEthereum作为后台服务
为要运行的服务创建一个用户。此种类型的用户无法登录服务器。
sudouseradd--no-create-home--shell/bin/falsegoeth
为Eth1区块链创建数据文件夹。这是存储Eth1节点数据所必须的操作。使用?
-p?来创建完整的路径。
$sudomkdir-p/var/lib/goethereum
设定文件夹权限。用户?
数据:Uniswap上的USDC流动性再次创两年新低:金色财经报道,据Glassnode数据显示,Uniswap上的USDC流动性达到104,330,633.82美元,再次创两年新低。
此前2022年11月2日观察到的两年低点为107,514,597.47美元。[2022/11/9 12:37:28]
goeth?需要权限来修改该数据文件夹。
$sudochown-Rgoeth:goeth/var/lib/goethereum
创建一个systemd服务文件来存储服务配置。我们将使用配置文件来命令你的systemd运行?
geth?进程。
$sudonano/etc/systemd/system/geth.service
复制下列服务配置到该文件里面。
Description=Ethereumgoclient
After=network.target
Wants=network.target
User=goethGroup=goethType=simpleRestart=alwaysRestartSec=5ExecStart=geth--goerli--http--datadir/var/lib/goethereum
WantedBy=default.target
那个?
--goerli?标签是用来指定Goerli测试网的,而?
--http?标签则是用来暴露供信标链节点连接的端口(
http://localhost:8545)的。
可以对照下面这张屏幕截图。你的文件也应该像它一样。记得保存然后退出。
重启systemd以使更改生效。
$sudosystemctldaemon-reload
开启这项服务,并确保它正常运行。
$sudosystemctlstartgeth
$sudosystemctlstatusgeth
启动服务后的输出应该像下图一样。
如果一切正常,它应该会用绿色文本显示“active(running)”。如果不正常,那就倒回去,重复这个步骤来解决这个问题。可以按Q退出。
允许geth服务在系统重启时自动启动。
$sudosystemctlenablegeth
GoEthereum会自动开始同步。你可以运行journal命令来查看进度。按Ctrl+C可以退出。
$sudojournalctl-f-ugeth.service
找到对等节点并完成Goerli测试网同步可能要花好一段时间。如果出现了延宕的情况,你可以手动添加节点来帮助同步。到
这个网站找到最新的节点列表,并像这样这样修改geth服务:
Chainlink与MVGX合作探索加密碳交易:金色财经报道,新加坡区块链碳信用交易所Metaverse Green exchange (MVGX)将与加密数据提供商Chainlink合作,探索通证化碳交易。
MVGX是一家提供碳信用交易的代币交易所。该公司的产品包括碳信用代币,称为碳中立代币(CNT),它在以太坊上流通。(forkast)[2022/11/8 12:30:23]
$sudosystemctlstopgeth
$sudonano/etc/systemd/system/geth.service
修改“ExecStart”那一行,加入?
--bootnodes?标签和一些最新的节点。
ExecStart=geth--goerli--http--datadir/var/lib/goethereum--bootnodes"enode://46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291--datadir=/var/lib/prysm/beaconchain--http-web3provider=http://127.0.0.1:8545'
WantedBy=multi-user.target
我们是用一个环境参数来获得这个客户端的IP地址?
Environment="ClientIP=$(curl-sv4.ident.me)"?因为?
ExecStart?不允许内联调用。使用?
--p2p-host-ip=${ClientIP}?是为了应对故障。
--http-web3provider?标签用于定义Eth1节点的端口。如果你使用的是本地的节点,这个值就是?http://127.0.0.1:8545,如果你在使用第三方服务,那就要使用一个外部的端口地址。
看看你的文件是不是也像这个截图一样。应该是一样的。然后你可以保存并退出。
重启systemd以使变更生效。
$sudosystemctldaemon-reload
注意:如果你在本地运行Eth1节点,你需要等待本地的节点同步区块链同步完成,然后才能开始beaconchain服务。使用这个命令行来检查进度:sudojournalctl-f-ugeth.service?。
启动服务并检查它有没有正常运行。
$sudosystemctlstartbeaconchain
$sudosystemctlstatusbeaconchain
屏幕上的输出看起来应该是这样的。
如果你正确地完成了上述步骤,它应该会用绿色字体显示“active(running)”。如果没有这么显示,你要倒回去,重复这些步骤,来修复问题。按Q可以退出。
加拿大养老基金已注销2亿加元的Celsius投资:金色财经报道,加拿大养老基金Caisse de dép?t et placement du Québec (CDPQ) 周三透露,它已注销了2亿加元的Celsius投资。 首席执行官Charles Emond表示,加密货币行业正在转型,该基金“来得太早了”。出于谨慎考虑,他们已经注销了投资。
此前2021年10月12日消息,加密货币借贷平台Celsius Network完成4亿美元股权融资,WestCap和Caisse de dép?t et placement du Québec(CDPQ)领投,投后估值超过30亿美元。[2022/8/18 12:32:14]
让信标链服务能随系统重启而自动重启。
$sudosystemctlenablebeaconchain
然后信标链节点会开始同步。可能需要几个小时才能完成同步。你可以运行journal命令来检查进度。按Ctrl+C来退出。
$sudojournalctl-f-ubeaconchain.service
命令行窗口的输出会给你来自Eth1区块链的、正在处理的保证金的状态信息。
现在你的信标链节点已经作为一项服务在后台运行了。恭喜!虽然节点还在同步,我们可以开始下一步了。
第七步——完成Medalla测试网的引导流程
在启动验证者客户端之前,我们需要先生成我们的验证者密钥对。官方的?Eth2LaunchPad?会引导你完成这个流程,不过,在你开始存入保证金之前,你需要获得一些GoerliETH。
获得GoerliETH
遵照下列步骤:
点击MetaMask浏览器插件并登录
点击顶部的下拉菜单,选择Goerli测试网
点击你的用户名,它会自动复制下你的GoerliETH钱包地址;
你可以通过这个经过认证的水龙头来获得Goerli测试网ETH,或者到?ethstakerDiscord群组的?goerli-eth?频道内使用机器人命令:!goerliEth<walletaddress><numberofvalidators-maximum5>?获取。
如果你在计划运行多个验证者,你可以请求自己想要的额度
等到GoerliETH出现在你的钱包里,你就可以操作下一步了
生成验证者数据
访问官方的?
Eth2LaunchPad?网站,跟随指引完成操作。如果一切顺利,它就能生成一个验证者密钥文件。
根据引导流程、使用命令行工具所生成的JSON文件会存储在你运行“验证者密钥生成”脚本的目录下的?eth2.0-deposit-cli/validator_keys?文件夹里。当我们要运行验证者的时候,我们需要从这个位置引用我们的密钥。如果你需要通过SFTP发送到你的服务器,那可以放心这么做。本指南假定这个文件会存储在这个目录:$HOME/eth2.0-deposit-cli/validator_keys。
第八步——创建验证者钱包
首先我们要使用Prysm的验证者二进制文件来创建一个钱包,就基于上一步我们所创建的密钥。
$cdprysm
$bazelrun//validator:validator--accounts-v2import--keys-dir=$HOME/eth2.0-deposit-cli/validator_keys
你会被程序询问指定一个钱包的存储位置。你可以直接按回车,这样它会存储到默认位置。你还需要输入一个新的钱包口令,请务必把这个口令保管在安全的地方。
接下来你要输入你在?Eth2LaunchPad?网站上创建验证者密钥时候使用的口令。如果你正确输入了,这个账户就会导入到这个新钱包中。
Enterawalletdirectory(default:/home/ethstaker/.eth2validators/prysm-wallet-v2):
Newwalletpassword:
Confirmpassword:
INFOaccounts-v2:Successfullycreatednewwalletwallet-path=/home/ethstaker/.eth2validators/prysm-wallet-v2
Enterthepasswordforyourimportedaccounts:
Importingaccounts,thismaytakeawhile...
Importingaccounts...100%
Successfullyimported40accounts,viewallofthembyrunningaccounts-v2list
确认验证者账户创建成功。
$bazelrun//validator:validator--accounts-v2list
这就完成啦。现在这个
验证者钱包已经配置好了,我们将启动验证者作为一个后台服务。
第九步——配置验证者客户端
建立账户和存储目录
我们将让验证者能作为一项后台服务运行,并且在系统重启时这个线程会自动重启。
为要运行的服务创建一个用户账户。此种类型的账户无法登录服务器。
$sudouseradd--no-create-home--shell/bin/falsevalidator
为验证者客户端创建数据存储目录,也就是跟验证者相关的数据库存放的地方。使用?
-p?来创建完整的地址。
$sudomkdir-p/var/lib/prysm/validator
设置目录的权限。这个?
validator?用户需要修改这个数据目录的权限。
$sudochown-Rvalidator:validator/var/lib/prysm/validator
现在,复制我们之前编译好的?
validator?二机制文件到这个?
/usr/local/bin?目录。
注意:每次你拉取/构建一个新版本的?validator?二进制文件,都要做这一步。
$cdprysm
$sudocpbazel-bin/validator/linux_amd64_stripped/validator/usr/local/bin
把用户和群组权限设给?
validator?用户。
$sudochown-Rvalidator:validator/usr/local/bin/validator
创建和配置服务
创建一个systemd服务文件来存储服务配置。
$sudonano/etc/systemd/system/validator.service
完全复制下列内容到这个文件中,就除了下面的两个例外:
用你正在使用的用户名替代那两个?<yourusername>。
用你的?PrysmPOAP参与奖章值?替换掉?<POARstring>,这样就能获得特殊的NFT奖品!例如?--graffiti"abcdefg12345"
Description=Validator
Wants=network-online.target
After=network-online.target
Type=simpleUser=validatorGroup=validatorRestart=alwaysRestartSec=5ExecStart=/usr/local/bin/validator--datadir/var/lib/prysm/validator--wallet-dir/home/<yourusername>/.eth2validators/prysm-wallet-v2--wallet-password-file/home/<yourusername>/.eth2validators/prysm-wallet-v2/password.txt--graffiti"<POAPstring>"
WantedBy=multi-user.target
检查你的文件,看看是不是跟这个截图一样。保存并退出。
password.txt?是必需的,因为?--wallet-password-file?需要指定一个口令文件。因此我们就创建一个,然后存储在那个位置。
$cd/home/<yourusername>/.eth2validators/prysm-wallet-v2
$touchpassword.txt
$nanopassword.txt
把你的钱包password输入到这个文件中。就像下图一样,然后保存并退出。
重启系统以使变更生效。
$sudosystemctldaemon-reload
启动服务并确保正常运行。
$sudosystemctlstartvalidator
$sudosystemctlstatusvalidator
你的屏幕输出应该看起来像这样。
如果你正确地完成了上述步骤,它应该会用绿色字体显示“active(running)”。如果没有这么显示,你要倒回去,重复这些步骤,来修复问题。按Q可以退出。
让信标链服务能随系统重启而自动重启。
$sudosystemctlenablevalidator
你可以运行journal命令来检查进度。按Ctrl+C来退出。
$sudojournalctl-f-uvalidator.service
等信标链真的启动之后,可能还要等几个小时来激活你的验证者账户。验证者进程的输出会显示进度。
Aug0203:03:25ETH-STAKER-01validator:time="2020-08-0203:03:25"level=infomsg="WaitingforbeaconchainstartlogfromtheETH1.0depositcontract"prefix=validator
你可以通过?
beaconcha.in?检查自己的验证者的状态。只需搜索你的验证者公钥即可。网站上很快就会显示出来。
就这么简单。我们已经开始运行信标链节点和验证者客户端了。恭喜恭喜,你很棒!
原文链接:?https://medium.com/@SomerEsat/guide-to-staking-on-ethereum-2-0-ubuntu-medalla-prysm-4d2a86cc637b作者:?SomerEsat翻译:?闵敏、阿剑
本文来源:证券日报·金融1号院8月17日,2020区块链生态合作大会在上海举行,中国银保监会重点金融机构监事会监事陈伟钢发表题为“区块链政策导向与应用前景“的主题演讲.
本文来源:清华大学互联网产业研究院,原题《健康上链,构建医疗数据市场化格局》 作者:朱岩赵红燕 《健康中国2030规划纲要》指出,到2020年健康服务业总规模要超过8万亿.
一、央行数字货币发行面临的终极问题中央银行或者货币管理当局为什么要发行自己的数字货币,这个问题就和“我是谁,从哪儿来,到哪儿去”一样,是每个当局必须面对的终极问题.
来源:人民日报 商务部今天印发《全面深化服务贸易创新发展试点总体方案》,在“全面深化服务贸易创新发展试点任务、具体举措及责任分工”部分提出:在京津冀、长三角、粤港澳大湾区及中西部具备条件的试点地.
与其他加密资产相比,越来越多的采用、相对的稀缺性和良好的宏观经济背景支撑了比特币独立的价格上升趋势。由于价格屡创新高,7月份突破1万美元大关,比特币从阻力位转向支撑位.
没有无缘无故的爱,也没有无缘无故的恨,更没有无缘无故的上涨或下跌。这两天,加密货币轮动上涨,市场参与者开始相信,牛市正在酝酿中.