如何把握以太坊合并“准确时间”?TTD,了解一下...

2023-12-11 16:50

本文主要是介绍如何把握以太坊合并“准确时间”?TTD,了解一下...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

9月,我们将一起见证以太坊“合并”完成。

编辑|小欧

出品|欧科研究院

“合并”是以太坊2.0升级过程中的重要步骤之一,具体来说是推出“分片链”之前进行主网与信标链权益证明系统的“合并”,这将让“挖矿”在以太坊网络成为历史。

以往的区块链网络升级一般会指定在某一区块高度发生,因此可以相对准确地预估在某一天发生。而这一次以太坊“合并”发生并不基于特定区块高度,而是根据以太坊基金会宣布的终端总难度(TTD)来执行。

TTD 是以太坊由PoW过渡到PoS之前将要开采的最终区块所需的总难度,因此“合并”完成时间受每一个区块难度和实时算力的影响

也就是说,这次合并完成的时间只能以时间段来预估,比如以太坊基金会在8月26日的公告中就预告“合并”完成的时间在9月10日至9月20日期间。

据OKLink的以太坊合并倒计时显示,目前合并的整体进度已超过98%,距离合并完成还有大约9天。那么在这段等待的时间内,我们不妨了解一下如何预估以太坊合并完成时间。

以太坊的“合并”已经在三个测试网RopstenSepolia 以及Goerli上成功进行了测试,与这三个测试网执行合并的流程一致,以太坊主网与信标链的合并将分两个步骤进行。

1

共识层网络升级,代号Bellatrix

该升级,由特定的“时段高度(Epoch)”触发。时段高度是以太坊共识层网络区块认证机制的有机组成部分,一个时段高度包含32个“插槽(Slot)”,每个插槽只能创建一个有效区块,在每一个时段高度的期限内,将随机由验证节点处理交易并将数个交易打包进区块放入插槽。信标链Bellatrix升级安排在时段高度144896进行,即北京时间9月6日19:34:47。

2

PoW过渡到PoS的Paris升级

该升级,由特定的终端总难度Terminal Total Difficulty (TTD) 触发,目前TTD的触发值被设定为 58750000000000000000000。

达到设定 TTD 的确切日期直接决定了合并完成的具体时间,因此何时触发设定的 TTD 就是预估以太坊合并时间的关键

一种简单的预估方法是,计算当前 TTD 与目标 TTD 之间的差值,然后用这一差值除以平均区块难度,这样我们就能计算出达到目标TTD以前还需要挖出多少个区块,最后用计算出的区块数量乘以平均出块时间,就可以粗略地得到合并前的剩余时间。

即:

(目标 TTD-当前TTD)/平均区块难度*平均出块时间 

不过这种方式预估的时间是不够精确的,要想更加准确地预估TTD,可以参考 Mário Havel 在他的一篇技术博客中介绍的方法。当然,你也可以参阅 bordel.wtf 和 797.io/themerge 更加直接地获得比较精确的时间。

最后,在以太坊的执行层总难度达到或超过 TTD 后,后面的区块将由信标链验证节点负责生成。

也就是说,主网/执行层第一个触及TTD的区块生成后,信标链上的验证节点会接过接力棒抓紧对区块进行确认,确认后合并过渡即视为完成。

这篇关于如何把握以太坊合并“准确时间”?TTD,了解一下...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/481403

相关文章

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

一文带你深入了解Python中的GeneratorExit异常处理

《一文带你深入了解Python中的GeneratorExit异常处理》GeneratorExit是Python内置的异常,当生成器或协程被强制关闭时,Python解释器会向其发送这个异常,下面我们来看... 目录GeneratorExit:协程世界的死亡通知书什么是GeneratorExit实际中的问题案例

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息