Turbo-Geth 客户端:Beta 版的目标-区块链毕设资料

这是qklbishe.com第6381 篇区块链毕业设计资料
提供毕设资料分析,通过本文《Turbo-Geth 客户端:Beta 版的目标-区块链毕设资料》可以理解其中的代码原理,这是一篇很好的区块链代码论文资料

引介

Turbo-Geth 客户端:Beta 版的目标

曾汨   |     |   55 次阅读

以太坊 引介

(原题为:从 Alpha 版转向 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 的集成已经能够完成了,现在需要测试和撰写文档。

(完)


文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » Turbo-Geth 客户端:Beta 版的目标-区块链毕设资料

提供最优质的资源集合

立即查看 了解详情