木星链 木星链
Ctrl+D收藏木星链

STA:以太坊阶段式同步:重构完全同步模式(Full Sync)

作者:

时间:1900/1/1 0:00:00

阶段式同步重构自Go-Ethereum的完全同步模式,以实现更好的性能。

阶段式同步需要进行大量读写操作。虽然我们的目标是能够在机械硬盘上同步节点,但是我们仍建议使用固态硬盘。

顾名思义,阶段式同步需要依次执行10个阶段。

阶段式同步是如何运作的

Turbo-Geth客户端会向每个对等节点了解该节点的HEAD区块,然后依次执行每个阶段、寻找本地HEAD区块和对等节点的HEAD区块之间缺失的区块。

第一个阶段会设置本地HEAD区块。

各阶段会按顺序执行。在每个阶段执行期间,只有节点本地的状态达到目标状态,该阶段才会结束。

也就是说,在理想情况下,每个阶段只需执行一次,即可完成初始同步。

最后一阶段结束后,整个同步流程会重新开始,寻找新的区块头下载。

巨鲸地址向交易所转入1.5万枚以太坊:金色财经报道,据Lookonchain监测,此前在USDT脱锚后从Aave借出5000万枚USDC进行套利的巨鲸地址,已从Aave撤回1.5万枚以太坊并转入币安、Kraken和Coinbase。目前该地址已开始从交易所提出稳定币来偿还Aave上的贷款。[2023/6/19 21:47:48]

如果你在两个阶段之间重启应用,应用会从第一阶段开始重启。

如果你在某个阶段执行期间重启应用,应用会从当前阶段开始重启,以完成该阶段。

每个阶段需要耗时多久?

通过下方的饼状图,我们可以看出每个阶段的耗时占比。虽然这些数据并不精确,但是足以作为参考。

重组/回退

如果区块链发生重组,我们需要“回退”部分同步数据。

回退指的是从最后一个阶段倒退回第一个阶段。但是,需要注意的一点是,我们执行完回退之后才会更新交易池,因此我们知道新的nonce。

距以太坊合并还剩10242个区块,当前难度12.37PH:9月13日消息,据OKLink多链浏览器“以太坊合并倒计时”页面显示,当前区块高度为15526845,最新出块来源于unknown,当前难度为12.38PH,预计离以太坊合并还剩10242个区块。

此前消息,OKLink已于8月19日上线“以太坊合并倒计时”专题页,根据区块难度和实时算力的影响,为用户提供7*24H的合并进度监控,当前合并进度已达99.79%。[2022/9/13 13:27:31]

回退的阶段顺序如下例所示。

state.unwindOrder=*Stage{

??//Unwindingoftxpool(reinjectingtransactionsintothepoolneedstohappenafterunwindingexecution)

巴西数字银行Nubank推出比特币和以太坊交易:金色财经报道,巴西市值最大的数字银行Nubank周三宣布,该公司将为客户增加在其平台上买卖比特币和以太坊的选项。加密交易和托管服务将由Paxos的区块链基础设施提供。Paxos表示,该产品将于周四逐步向巴西的Nubank用户开放并补充称,该产品将在7月底前覆盖所有客户。据Paxos称,用户将可以用巴西雷亚尔买卖加密货币,但最初不能提取或存入加密货币。根据Nubank的网站,到目前为止,该公司只允许用户通过其投资部门NuInvest提供的交易所交易基金投资加密货币。(coindesk)[2022/5/12 3:08:40]

??stages,stages,stages,stages,stages,stages,stages,stages,stages,stages,

?}

通过?ETL?进行预处理

在OpenSea进行过交易的以太坊地址数已超过80万:12月16日消息,据Dune Analytics数据显示,在Open Sea进行过交易的以太坊地址数已超过80万。同时,在OpenSea进行过交易的Polygon地址数已超过75万。[2021/12/16 7:43:56]

在将数据插入数据库之前,一些阶段会使用我们的ETL框架根据键值对数据进行排序。

这样就可以极大减少数据库写入放大的情况。

因此,当我们生成索引或者说哈希值化状态时,我们会执行一个多步骤流程。

将处理过的数据写入位于数据目录的几个临时文件中;

然后使用一个堆栈把临时文件中的数据插入到数据库中,并且使按照能够最小化数据库写入放大现象的顺序插入数据。

这种优化有时会将写入速度提高几个数量级。

动态 | Tether向以太坊网络新增发1500万枚USDT:据DAppTotal.com稳定币专题页面数据显示:09月25日04时24分 ,USDT发行方Tether向以太坊网络新增发1笔价值1,500万美元的USDT, 块高度为:8613884,交易哈希值为:0x31f01e3f69d763c70e9965c370475f454338effdcca4beb2e69a2bd992989a87 。截至目前,Tether在以太坊网络上的ERC20 USDT总发行量已达1,965,057,493枚。

DAppTotal敬请广大投资者警惕行情变动,谨慎应对市场风险。[2019/9/25]

各阶段

每个阶段都包含两个函数,分别是向前推进阶段的ExecFunc?和向后回退阶段的?UnwindFunc。

从理论上来说,部分阶段可以离线工作,但是当前版本并未实现这一功能。

阶段1:下载区块头

在这一阶段,我们会下载本地HEAD区块和对等节点的HEAD区块之间的所有区块头。

这一阶段是CPU密集型的,适合使用多核处理器,因为要验证区块头的工作量证明。

由于区块链重组,大多数回退都是在这一阶段开始的。

这一阶段会推动本地HEAD的指针。

阶段2:区块哈希值

从区块头中抽取出一个从区块哈希值映射成区块号的索引表,以支持更快速的查找功能,并让同步过程对机械硬盘更为友好。

阶段3:下载区块体

在这一阶段,我们会将上一阶段已下载区块头的区块体也下载下来。

这一阶段需要保持良好的联网连接。绝大多数数据都在这一阶段下载。

阶段4:复原发送者

这一阶段会复原出并存储每个已下载区块中的每笔交易的发送者。

这一阶段同样是CPU密集型的,适合使用多核处理器。

这一阶段不需要联网。

阶段5:执行区块

在这一阶段,我们会执行之前下载的所有区块中的每一笔交易。

需要注意的一点是,在执行区块的过程中,我们不会验证根哈希,甚至不会创建默克尔树。

这一阶段是单线程的,无需联网,需占用大量磁盘空间。如果区块执行失败,可以回退该阶段。

阶段6:计算状态根

这一阶段会构建默克尔树,并验证当前状态的根哈希。

这一阶段也会构建中间哈希值,并将它们存储到数据库中。

如果之前没有存储任何中间哈希值,这一阶段会构建出完整的默克尔树及其根哈希。

如果数据库中没有中间哈希值,这一阶段就会利用区块的历史记录来弄清楚哪些哈希值已经过时,哪些哈希值是最新的,然后使用最新的哈希值来构建部分默克尔树,只重构过时的哈希值。

如果根哈希无法匹配,就会向后回退一个区块。

这一阶段不需要联网。

阶段7:生成哈希值化状态

在执行期间,Turbo-Geth使用无格式状态存储。

无格式状态:在标准状态中,账户和存储项的地址是?keccak256(address)?,但是在一般状态中,二者的地址就是?address?。

尽管如此,为了确保一些API能够正常运作并与其它客户端保持兼容,我们也会生成哈希值化状态。

如果哈希值化状态不是空值,我们会查看历史记录变更集,并且只更新已更改的项。

这个阶段不需要联网。

阶段8、9、10?:生成索引

同步期间会生成3个索引。

这3个索引可能会被禁用,因为所有API都不使用它们。

这一阶段不需要联网。

交易查询索引

该索引表由从交易哈希值到区块号的映射构成。

账户历史索引

该索引存储了从账户地址到区块列表的映射。

存储历史索引

该索引存储了从存储项地址到区块列表的映射。

阶段11:交易池

在这一阶段,我们会启动交易池或更新其状态。例如,如果我们已下载的区块中包含了某些交易,就把这些交易从交易池中移除。

在回退时,我们会将被回退的区块中的交易重新添加到交易池中。

这个阶段不需要联网。

原文链接:

https://github.com/ledgerwatch/turbo-geth/tree/master/eth/stagedsync

作者:?AlexSharov

翻译&校对:闵敏?&?阿剑

标签:STA以太坊TAGGESISTARDUST以太坊币是哪个国家的币High VoltageBitgesell

火币交易所热门资讯
区块链:产业周刊 | 多地密集发布区块链支持政策 或将全面进入商业部署阶段

金色周刊是金色财经推出的一档每周区块链行业总结栏目,内容涵盖一周重点新闻、行情与合约数据、矿业信息、项目动态、技术进展等全行业动态。本文是其中的产业周刊,带您一览本周的区块链产业动态.

1900/1/1 0:00:00
YGG:币海生金:以太发起冲锋号角 ETH操作策略

没有走不到顶的山,只有找不到路的人,持仓就像两个拉着橡皮筋的人,受伤的总是不愿意放手的那个,总有一段路崎岖,总有一时雾霾,不要为曾经的错失忿忿不平,无须为走远的风景扼腕叹息.

1900/1/1 0:00:00
EOS:火币7月销毁 276.9万个HT 公链主网将于四季度上线

8月15日,火币全球站发布了7月份HT运营月报。月报显示,7月火币共销毁276.9万个HT,销毁金额约1182.9万USDT,销毁金额环比6月份上升15.7%.

1900/1/1 0:00:00
比特币:BTC 人气保持快速上升,DeFi 金融搜索值连创历史新高

据数据显示,反映区块链行业整体表现的TI指数北京时间8月15日8时报963.56点,较昨日同期上涨1.94点,涨幅为0.2%.

1900/1/1 0:00:00
比特币:币汐柔:8.16比特币投资技巧之K线中的平行线画法

币汐柔:8.16比特币投资技巧之K线中的平行线画法常常看见K线图上有一组组的平行线,当中有一些水平的,有一些是斜向上或斜向下的,它们看上去似乎把K线“规管”在某个范围之内.

1900/1/1 0:00:00
AAVE:Aave V2 上线:刺激锁仓量涨到10亿美金跃居第二

最近市场热点是一个接一个,从YAM到CRV,流动性挖矿不断上演,调动大家的神经,让大家感动,连睡觉都是浪费。?在DeFi头部协议中,Aave是一个宣布要搞流动性挖矿,而还没搞的一个重磅项目.

1900/1/1 0:00:00