原文标题:《引介 | Turbo-Geth 客户端:Beta 版的目标》 我们没有定死从 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 的集成已经能够完成了,现在需要测试和撰写文档。 来源链接:github.com 免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻 ChainNews 立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。 —- 编译者/作者:以太坊爱好者 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
一分钟速览以太坊 Turbo-Geth 客户端 Beta 版功能
2021-05-16 以太坊爱好者 来源:链闻
LOADING...
相关阅读:
- Layer2赛道群英荟萃ETH2.0忙碌前行未来公链如何发展2021-05-16
- 各Rollup解决方案的权衡研究2021-05-16
- 美国纽约拟禁止加密货币挖矿2021-05-16
- 解读以太坊Layer2竞争格局及趋势2021-05-16
- 万字说透为何ETH终将赢得价值储存之战?2021-05-16