最新发布的Core版本可以大幅度提升p2p层的速度
暴走时评:虽然中本聪留下了一个完整的代码库,但是Bitcoin Core背后却存在着许多问题,因此推出了最新版本的Core,可以极大的提升速度性能。这是首次对p2p代码进行大规模改革,使得速度至少得到两倍提升。
翻译:Nicole
“中本聪给我们留下了一个完整的代码库。”
比特币开发者Cory Fields如是说,尽管他总是赞扬其创新力,但是Bitcoin Core的背后则是一团乱麻。
这是一个Field和其他开发者至少从2015年就开始努力解决的问题,当时他提出移动一段p2p层代码的计划。
开发人员经常遇到的问题是组件并不是完全分离的。因此,如果开发者改变某些组件,那么只会影响比特币一部分,以及其功能。Fields说,并且有可能是在无形中影响了另一个组件,比如,验证、内存池、钱包或p2p。一方面,这给新比特币贡献者摸清门道增加了困难。
因此,在诸如Fields和libconsensus(允许替代实施和比特币网络保持共识的进行中的项目)的项目中,其目标是将代码分离成不同的块,从而让开发者更好的明白这些碎块如何组合才能达到最佳效果。
Fields研究的工作,由MIT的数字货币倡议资助,一直致力于摆脱p2p的代码库。
他的大多数研究成果都会在Bitcoin Core最新软件版本中首次亮相。
Fields对CoinDesk说:
“据我所知,这是首次对p2p代码进行大规模改革。”
他提到,但是,随着时间的推移,许多开发者,如Jonas Schnelli和Matt Corallo,都对p2p层做出了贡献,而且重要的是,许多开发者都会介入审查和测试更改。
p2p层主要处理网络上成千上万个(也许会多于50000,但是具体数字很难统计)节点之间的连接,这些节点之间经常彼此“对话”,当用户发送比特币或矿工创建新区块时传递相关信息。
发现漏洞
有一个棘手的问题是比特币网络价值约为190亿美元,意味着对其底层代码做出改变必须非常谨慎小心。
由于这一原因以及其他原因,重建并不是一件简单的事。就连对Bitcoin Core最活跃的贡献者之一Fields也是如此(他说,我几乎将我醒着的所有时间都花在研究比特币上)。
首先,他试图从一个单独的层开始。然而这项举措却“失败惨重”。
接着,他努力改善当前的代码库,并且效果比预期的还好,发现了“中本聪时代”的漏洞。
Fields说:
“在我将东西分解的时候,我发现在首次区块下载中,在使用Core的宽带时发生了一些奇怪的事情。”
那个问题就是,当节点从另一个节点下载区块时,区块传输速度时快时慢,并且这种速率已经出人意料。
深入剖析,他和其他开发者发现,节点将拒绝同时发送数据和处理数据(虽然这种说法过于片面)。节点将一次处理一个流程。
速度修复
在最近Bitcoin Core代码发布的首次亮相中,该团队完成了速度的修复,改变了节点之间传输信息的速度。
Fields说:
“特别是p2p层的速度得到了很大的提升。”
他进行了一些测试,比较了最近的比特币版本(0.13.2)和最新改进版本(0.14.0),研究了用两个CPU和4GB RAM实例配置到亚马逊EC2 云上的节点。
试验表明,在比较了两个v0.13.2节点和两个v0.14.0节点发送数据的性能之后,速度至少得到双倍提升。
Fields表示,这里需要说明的是,在现实网络中,性能提升可能会少于两倍。
持久利益
现在,p2p层大多都是和其它层相分离的。
值得一提的是,除了以上提到的性能改进,大多数改变用户都不会注意到,但是对开发者来说却是一种福音。
也就是说,他们希望能有长远影响。
Fields说:
“我希望这可以让p2p速度得到更快提升。”
例如,如果Fields没有成功分离代码,就很难对最新Core版本做出改变。
他说:
“在0.14版本推出后,这是一个相对简单的改变,之前要比这复杂的多。”
作者:Alyssa Hertig | 编译者:Nicole | 来源:Coindesk
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场