玩币族移动版

玩币族首页 > 区块链资讯 >

最新Core发布中 比特币P2P如何实现加速

  译文:玩币族Wendy

  “Satoshi留给我们一个巨型代码库。”

  比特币开发者Cory Fields如是说,尽管Bitcoin Core总是被认为是创新,但其代码背后是某种混乱。

  2015年开始,这个问题Fields等人就开始努力应对,当时他计划移动某一部分代码:对等层。

  开发者总是遇到的问题是,不是所有部分都整齐的分散。所以,如果开发者改变某一部分本应该影响比特币功能的结构,那么它无意识地影响另一个功能。比如说,验证、池、钱包或者P2P等。举例来说,这让新的比特币参与者更难入门。

  因此,在诸如Fields和libconsensus项目中(libconsensus是一个正在开发的项目,允许可替代方式来保存比特币网络共识),其目标是分散代码到更多不同的块中,让开发者了解各部分如何组合在一起,过程更加简单和快捷。

  Fields的工作由麻省理工数字货币项目支助,他一直致力于解决对等代码库问题。

  他的大多数工作在Bitcoin Core最新软件发布中亮相。

  Fields 告诉CoinDesk:

  “据我所知,这是首次大规模对等代码改革。”

  然而,随着时间推移,许多开发人员,比如Jonas Schnelli和Matt Corallo已经做出了很多相关改变,更重要的是很多已经开始着手审查与测试更改。

  对等层涉及到网络中成千上万比特币连接节点的关联(也许超过50000,准确数量很难确定),并且节点还在不断互换“消息”,随着使用者发送比特币或者挖矿者开发新区块,不断传送信息。

  漏洞大发现

  棘手的问题在于,比特币网络被估值在190亿美元左右,这意味着改变底层代码必须非常仔细。

  由于种种原因,重构并不是简单的过程。甚至对于Fields而言,作为Bitcoin Core的积极贡献者之一,这也不容易“我几乎把所有醒来的时间都放在比特币上”。

  首先,他尝试从头开始分离层。但这是个“严重失误”。

  然后,他致力于提高当前代码库,这比预期的效果好,但也导致了被称为“Satoshi时代”漏洞大发现。

  “当我开始拆分各种东西时,我注意到一个奇怪点,在初始下载块时Core宽度的使用问题。”

  问题在于,当节点从另一节点下载区块时,这个时间有时快,有时慢,而且不可测。

  进一步研究,他和其他开发者确定,节点总是会拒绝同时发送数据和处理数据。节点只会每次进行一个步骤。

  速度修复

  在最新Bitcoin Core代发发布中,团队的修复方案最终出台,改善了节点间互传信息的速度问题。

  “特别是,P2P层速度大大提高。”Fields说。

  他将之前比特币版本(0.13.2) 与最新版本(0.14.0)对比,进行了多次试验,节点被布置在亚马逊EC2云端之上,同时拥有2个CPU和4GB的RAM。

  这些试验证明速度翻倍,至少在对比两个v0.13.2节点和v0.14.0节点的数据发送情况上。

  需要注意的是,在实际网络中,这种性能改进可能会低于2倍,根据Fields.

  长期优势

  当前,对等层大部分已经与其他分离。

  值得再次提及的是,上述性能的改进大多数用户可能不会注意到,但是开发者会感觉很好。

  这就是说,他们希望可以产生长期影响。

  “我希望我们能够让P2P速度更快。”Fields说。

  比如说,如果Fields还未隔离这些代码,这将很难完成最新版本Core的改变。

  他说:

  “与0.14版本相比,这已经是相对简单的改变,之后将会复杂得多。”

知识: Bitcoin Core