织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

一分钟速览以太坊 Turbo-Geth 客户端 Beta 版功能

时间:2021-01-29 19:46来源:未知 作者:admin 点击:
原文标题:《引介 | Turbo-Geth 客户端:Beta 版的目标》 撰文:ledgerwatch 翻译:阿剑 我们没有定死从 Alpha 阶段转向 Beata 阶段的时间点。我们是反过来,确定了一些转向 Beta 版的先决条件

原文标题:《引介 | Turbo-Geth 客户端:Beta 版的目标》
撰文:ledgerwatch
翻译:阿剑

我们没有定死从 Alpha 阶段转向 Beata 阶段的时间点。我们是反过来,确定了一些转向 Beta 版的先决条件;实现了这些条件,就意味着 turbo-geth 已经准备好了。下面就是我们要实现的清单:

挖矿功能

让 turbo-geth 支持高效挖矿的难点在于:在任意时间点,都只有一个状态是 「公认最新」 的状态。而挖矿,需要节点产生 「投机」 区块以及 「投机」 状态,以计算出新区块的区块头中需要的状态根哈希值。目前的想法是,「投机」 状态是一块放在内存里的缓存,而且是可以 「复制」 的。「复制」 的意思是,创建该缓存的 lazy-shallow 副本,因此对该副本的改动不会影响节点所保存的公认最新状态。

不过,事实也证明了,当前由哈希化状态(HashedState)和中间哈希值(IntermediateHashes)组成的数据模式不适合于维护这样的缓存。所以我们正在开展纠正数据模式的工作,希望实现可以复制的状态缓存,然后实现挖矿功能。

简化区块头和区块体下载

当前的阶段式同步中,区块头和区块体下载分别安排在阶段 1 和阶段 3。这两个阶段不管看起来还是用起来,都跟其它阶段非常不同,因为它们是在继承自 go-ethereum 客户端的 区块头 / 区块体 / 收据 / 状态 下载实现的基础上开发出来的。这些代码的功能比 turbo-geth 的阶段式同步所需的要更多,可以(也应该)替换成简化后的版本。这个简化的版本已经有一个可用的概念验证了,现在可以测试和撰写文档了。

共识引擎组件

有一个概念叫做 「共识机制即插即用(pluggable consensus)」 ,意思是客户端应该很容易能从工作量证明迁移到权威证明(PoS),也包括能从工作量证明的一个变种切换到另一个变种,从 PoA 的一个变种切换到另一个。实际上,曾经有人用接口来实现共识机制即插即用,但因为还是运行在同一个进程中,通常还是与其它代码紧密交织在一起。我们已经在设计一个让共识引擎能运行在独立进程中的接口。

有了这样的接口,虽然还是能够在同一个进程中运行,但这个接口能够更直接让共识引擎与交易执行适当分离。我们已经为 EtHash PoW 和 Clique POA 实现了一个概念验证,现在正准备集成、测试和撰写文档。

从 LMDB 迁移到 MDBX

turbo-geth 客户端是从 BoltDB 数据库后端起步的,现在正在添加对 BadgerDB 的支持,最后,我们会完全迁移到 LMDB。某些时候我们对 LMDB 的使用方式会产生一些稳定性问题,这是连 LMDB 的创造者都没有想到的。因此,我们一直在考察 LMDB 的一个支撑性更优的变种,叫做 MDBX,希望能利用上其稳定性提升,使所有功能在未来结合得更加紧密。对 MDBX 的集成已经能够完成了,现在需要测试和撰写文档。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容