Prysm是优秀的ETH2.0的实现,也是目前Medalla测试网上运行最多的实现。Prysm采用BeaconChainNodeValidatorNode的架构,前者负责同步区块数据,后者负责签名出块和见证。由于ValidatorNode可同时负载多个验证人,为了对其可负载验证人数量以及相关验证人部署步骤有一个定性和定量的认知,我们特安排此次测试。??
测试结论
我们复刻了Medalla测试网,搭建HashQuark自己的ETH2.0BeaconChain,进行了两轮测试,一共14个测试用例,跑了数十万计Validator。Prsym的实现非常优秀,对于拥用少量ETH想参与以太坊Staking的普通用户而言,一台4核8G的云服务器就能够平稳地运行BeaconChainNode和Validator,但运行过程中遇到的技术问题都不是非技术人员的普通用户能解决的。
对于运行上万个Validator的专业化PoS矿池,需要更高的配置才能保证超高出块率。出块率会随着Validator数量的增加而减少。
我们接下来会在公开测试网Medalla进行下一轮测试,以更贴近主网环境,目前我们已经在Medalla正常运行了近3000个Validator,占整个网络的5%。
测试环境
我们采用geth来搭建私有ETH1.0网络,与公开测试网Rinkeby或goerli一样,采用『clique』proof-of-authority算法,因为其相比PoW对资源需求更少。Prysm采用测试时的最新的release版本。
Bitfarms在巴拉圭签订150兆瓦水电合同:金色财经报道,矿业公司Bitfarms在巴拉圭签署了两份购电协议(PPA),购买多达150兆瓦的生态友好型水力发电:比利亚里卡(Villarrica)多达50兆瓦,毗邻公司在巴拉圭的现有业务;伊瓜苏(Yguazu)多达100兆瓦,靠近世界第三大水电大坝伊泰普(Itaipu)大坝。
Villarrica项目计划于2023年第三季度开工,首先建设一个变电站,然后建设第二个采矿设施。在伊瓜苏,Bitfarms有机会开发一个采矿能力高达100兆瓦的新矿场,具体时间表正在确定中。这两个地点的水力发电合同成本约为每千瓦时3.9美分(未含增值税),并且不受年度通货膨胀调整的影响。[2023/7/19 11:05:13]
以下测试采用的云主机部署,我们选取通用型N机型,CPU平台为Intel/Broadwell。系统采用Ubuntu18.04.2LTS。geth版本为1.9.19-stable,Prysm版本为v1.0.0-alpha.24。
第一阶段初步尝试
测试方案
我们先从不同数量的验证人对服务器资源的压力进行简单测试以获得基本认知。
采用最基础的两台ETH1.0节点两台ETH2.0BeaconChainNode两台ValidatorNode架构搭建私网作为起始尝试方案。网络稳定运行一天为观察的时间段。
测试用例
下表为我们进行测试的概览:
Crypto.com:并不像金融时报声称的那样依赖自营交易作为收入来源:金色财经报道,Crypto.com称,它并不像英国《金融时报》声称的那样依赖自营交易作为收入来源。拥有内部做市商不是一种有争议的做法。??虽然我们确实有一些做市活动,例如,我们在美国为我们受CFTC监管的产品Up/Downs拥有内部做市商。??这种做市活动是一种受监管的做法,只要有一个公平的竞争环境,即所有做市商都必须遵循相同的规则集,以确保市场公平和诚信。?
金色财经此前报道,英国《金融时报》周一报道称,Crypto.com拥有自营交易和做市团队,但声称不依赖自营交易作为收入来源。[2023/6/20 21:48:22]
表1
测试指标
测试过程中我们收集了各个实例服务器的CPU、内存、磁盘IO、网络带宽IO等指标。??
测试过程
在测试1中,2核4G的BeaconChainNode内存阶段性上升,在运行约6小时后,内存使用率达到100%,导致进程出现内存不足错误被迫停止,同时CPU使用率也逐步提高。如下图所示:??
图1??
图2
之后,我们提升了BeaconChainNode的配置为4核8G。
在实例2-5中,依次提升验证者数量1k-10k来观察服务器CPU、内存、磁盘IO、带宽等指标数据,均无压力,也没有异常。
之后我们在不同地区部署ETH2.0节点,来观察不同地区的网络互联情况是否会对各指标产生较大影响,实验结果均无异常。
Maitri Capital推出加密量化交易基金,拟募资2.5亿美元:5月20日消息,英国资产管理公司 Maitri Capital 宣布推出加密量化交易基金 Maitri Cento Quant Fund,该基金的融资目标为 2.5 亿美元,当前正在等待在英国金融行为监管局注册。Maitri Capital 联合创始人 Thomas Caddick 表示,Maitri Cento Quant Fund 是一个机构级的投资工具,将采用机器学习建立量化交易模型并将专注于 30 种最具流动性的加密货币交易对。[2023/5/20 15:15:34]
测试小结
根据私网测试情况来看,BeaconChainNode建议4核8G配置,Validator节点2核4G的配置够用,但是在导入key文件时会占用1核CPU,该CPU占用率为100%,稳妥起见,建议4C6G的配置。??
图3
第二阶段对比测试
测试方案?
第一阶段主要测试了不同数量的验证人对于服务器资源的压力,此外,验证者的出块和见证也是也是对于验证人很重要的指标。为此我们进行了对比测试。在同一个网络中,将不同数量的验证人部署在不同的地区来进行对比测试。
测试指标?
测试过程中我们将收集各个实例服务器的CPU、内存、磁盘IO、网络带宽IO、应出的块数、实际出块数、应该见证的块数、实际见证的块数等指标。
PREMINT提醒用户不要签署任何设置批准所有的交易:7月17日消息,NFT 访问列表工具 PREMINT 发推提醒用户不要签署任何显示设置批准所有的交易(set approvals for all)。根据推特用户反映称,PREMINT 疑似遭到攻击。[2022/7/17 2:19:20]
测试用例?
以下为我们的测试用例:??
表2??
ETH1.0网络由三台2核4G云服务器组成,两台位于香港,一台位于圣保罗。出块时间设置为15s。
我们分别在香港、新加坡、洛杉矶、法兰克福、圣保罗、伦敦六个地区部署了BeaconChainNode和ValidatorNode。各个地区的BeaconChainNode和ValidatorNode通过内网连接。配置和相应的验证人数量如上图。
实例1和实例2都是1k验证人,区别在于ValidatorNode的配置,用于对比不同配置的验证人数量对指标的影响。
实例3,4,5,6增加了验证人数量。鉴于实际情况下我们不太可能将超过10k的验证人置于单台机器上,因此我们将测试数量停在了20k。
各个地区的BeaconChainNode与其余node相连。
测试网参数选择?
我们先在ETH1.0网络上部署了deposit合约,生成所需数量的验证人密钥后,批量发送了存款交易。Prysm启动时修改了以下参数:
Cardano创始人:区块链将使政府服务数字化:金色财经报道,Cardano创始人Charles Hoskinson在接受采访时表示,区块链将使政府服务数字化,这些服务将部署在区块链上,以形成一种“彻底透明”的新治理方式。Hoskinson表示,加密货币和区块链技术的意义在于,将那些本应成为公共产品的资源,如果它们是可数字化的,让它们处于完全开放的状态,并在它们之上建立业务。(雅虎财经)[2022/7/16 2:17:22]
MinGenesisActiveValidatorCount设置为8192,由于我们的测试中包含了40k验证人,所以能够满足;
Eth1FollowDistance设置为20,也就是ETH1.0网络上的存款合约在5分钟后会被ETH2.0网络监测到;
SecondsPerETH1Block设置为15,这与ETH1.0网络每个块时间设置的一致;
MinGenesisTime设置为1599811200,也就是说最早在2020-09-11T16:00:0008:00启动。
实际上,由于我们事先发送了所有的存款交易,满足最早启动时间设置的最小验证人数量,整个ETH2.0网络在1599811207(2020-09-11T16:00:0708:00)启动。
数据统计和测试结果?
我们额外部署了一个BeaconChainNode来连接到ETH2.0私有网络,来查询数据。加上--slots-per-archive-point=1的参数来持久化存储每个区块的数据,从而加快查询速度。加上--rpc-max-page-size=1000的参数,使得我们每次可以查询更多的数据,从而减少请求次数加快总体速度。
我们选取了网络相对稳定的一段时间,从75epoch到1200epoch采样,获取这段时间内处于不同实例中验证者的出块和见证的数据加以分析,得出如下结果:
所有验证人都成功出块,无漏块情况;
不同地区的验证者见证情况略有差异:
表3??
这里我们定义见证率为在一段时间内被包含的见证数除以被分配到见证数。不难看出,总体来说,随着验证人数量的上升,见证率会下降。但在实例3中,虽然验证人只有2k,但见证率却比6k甚至10k的见证率都要低。
为了探究导致实例3总体见证率异常的原因,我们统计每个实例里验证者的见证率加以分析,看是否由于个别验证者出了问题拉低总体比例。
我们将每个验证者比例按照范围划分,得到以下数据:??
表4
由于各个实例验证人数量不同,换算成比例会更加直观:?
?表5
可以看到,实例3中大多数验证人的见证率都不高,这也意味着实例3应该出了问题。
为此,我们检查了实例3的日志,发现BeaconChainNode与其它节点以及ETH1.0的连接并不稳定,猜测是由此导致了见证率的异常,有待后续检验。
服务器压力?
在本轮测试中,我们观察到如下表的性能指标数据:??
-BeaconChainNode
实例1-5中,BeaconChainNode的CPU使用率在5%-10%之间,实例6的BeaconChainNode的CPU使用率约为12%。内存方面呈现平稳增加,在12%-17%之间,磁盘IO与带宽无明显差异。
-ValidatorNode
随着验证者数量的增加,ValidatorNode的各项指标均平稳增多,可以看到,磁盘IO与带宽基本上正比于验证者的数量。
此外,生成验证者密钥文件方面,我们采用的是一个推荐的python命令后工具(https://github.com/ethereum/eth2.0-deposit-cli),该工具生成密钥的效率相对不高,在多核的机器上只占用1核,生成2000个密钥对需要2.5小时左右。另一方面,ValidatorNode导入密钥对也是单核执行,导入2000个密钥对的时间大约为40分钟。
测试小结?
通过本轮测试,我们在私有网络中观察到,验证人数量的增加会影响节点上所有验证人的出块率,对于单个验证人来说,在最好的情况和最坏的情况下,平均每天少见证约10个块。出块方面在我们的测试中并未发现不同。内存与磁盘IO的使用率相对于CPU和带宽,更加明显地随着验证人数量的增加而提升。
后续测试方案和待优化步骤
在本轮测试中,以下几方面占据较多的准备时间:
验证者密钥对生成
部署deposit合约
ValidatorNode导入密钥对
在后续方案中,计划对上述步骤采取优化,提高测试效率。
此外,在后续测试计划中,考虑到不同地区的网络之间的稳定性及其对验证人指标的影响,可以考虑以下几点改进:
在同一地区增加多个测试实例,来对比是否为地区造成的差异;
部署多个ETH1.0节点,使BeaconChainNode能够畅通连接ETH1.0网络,减少造成的影响;
增加单独同一地区对比测试,增加验证者数量,控制变量,单纯比较验证者数量的影响。
在统计数据方面,考虑增加更多维度,如考虑到见证被包含的距离等,可参考这篇关于见证效率的文章。
测试问题汇总
GRPC数据量超过默认大小
当增加到近4k验证人时,ValidatorNode会报错grpc获取的消息大小5350532(5M)超过最大值4194304。??
图4?
解决方案:启动ValidatorNode时通过--grpc-max-msg-size参数将grpc允许的消息大小适量调大。
Beaconchainnode无法同步
进行第一轮测试时,在网络中只存在两个BeaconChainNode的情况下,容易出现两个节点之间无法同步区块的问题,两个节点都不认为对方是合适的peers。如下图所示:
?图5??
解决方案:我们目前采用清除节点的数据重新同步来解决。测试中我们发现,随着BeaconChain节点的数量增多,该问题便不再发生。
存款金额误报不够
如发生下述计算activeEpoch过大或存款金额不够而实际已够的情况,则表示Prysm实现存在问题,参考这个issue(https://security.feishu.cn),该问题已在编写本报告的最新版本修复。
图6
原文来源:王泽枢,HashQuark社区?
亲爱的BKEXer:?? ?? BKEX挖矿宝产品将于2020年9月28日20:00新增EOS为参与币种,用户通过在BKEX挖矿宝投入EOS即可参与市场中的流动性挖矿,获取收益奖励.
1900/1/1 0:00:00重点事件 BHPWalletAndroid0.1.0beta正式发布2020年9月22日,BHPWalletAndroid公测版正式发布上线 市场活动 《双重福利庆上线.
1900/1/1 0:00:00截至今日11:00,BitgetBTC/USDT合约过去24小时成交额10.3亿余美金,相关数据如下.
1900/1/1 0:00:00尊敬的库币用户:库币合约将于2020年09月28日16:00上线Uniswap(UNI)和Yearn.finance(YFI)永续合约,支持1-50倍杠杆,以USDT稳定币结算,敬请期待.
1900/1/1 0:00:00Vbit正式启动2.0计划,全新的VbitPro交易版本已上线,现有永续合约Maker手续费调整为-0.025%,给予流动性提供者负费率补贴奖励.
1900/1/1 0:00:00链闻消息,据检察日报报道,江苏省盐城经开区检察院提起公诉的PlusToken网络案一审结果已公开:法院以组织、领导活动罪判处陈某、丁某、彭某等16名被告人两年至十一年不等的有期徒刑,并处罚金.
1900/1/1 0:00:00