由Bitcoin Core开发者小组开发的0.14.0版本软件已正式发布,其大大加快了新发起节点处理历史区块的速度,以及在线节点对新区块的验证及中继速度。此外,新版本软件还提供了一个可选的新功能(默认情况下为禁用),允许钱包用户使用更高的交易费来转播自己先前发出的未确认交易,这可能会让交易更快地被确认。
下面提供的,是对Bitcoin Core 0.14.0版本软件主要新功能的一个简短总结,关于更多的细节,您可以在下文中查看。
- 改进初始块下载(IBD)性能:一个首次运行的全节点现在可以更快地验证所有的区块,在初始块下载(IBD)的性能上,开发者们至少改善了
6
倍,这可以帮助新用户运行一个全节点,因为同步日益增长的区块链需要花费太长的时间。 - 更快的区块验证以及中继:矿工们将从四大现有的Bitcoin Core 功能改进中受益。签名缓存已升级支持多CPU核心(在16核CPU系统下进行的一次测试,处理一个新区块的速度增长了
40%
。)这一BIP152 致密区块(CompactBlocks
)功能的启用将中继一些此前完全验证过的区块,允许这些区块在点对点(P2P)网络中更快地传播。P2P网络的代码也被广泛地被进行了重构,可允许多个行动在同一时间进行(并发),此外它也增加了吞吐量,消除了处理新区块的诸多潜在延迟。最后,在每个节点的内存池(mempool )当中的未确认交易,现在可以保存到磁盘当中,当节点重启时,可恢复处理。 - 可选的增加手续费功能:Bitcoin Core钱包现在允许用户在发送交易后,为他们支付的交易增加手续费。默认情况下此功能是禁用的。
改进初始块下载(IBD)性能
随着时间的推移,不断增长的区块链大小迫使新节点在使用钱包接受和发送交易时,需要处理更大量的数据,很多以前版本的Bitcoin Core 软件包含了一些重大的改进,旨在消除初始块下载(也称之为初始同步)给用户带来的痛苦。例如:
发布版本 对初始块下载(IBD)的主要改进
0.5.0 跳过历史(检查点)签名验证;
0.8.0 切换到LevelDB & 平行签名验证;
0.10.0 区块头首先验证和平行区块下载;
0.11.0 可选的区块文件修剪功能,以节省磁盘空间;
0.12.0 从零开始编写的新快速签名验证库(libsecp256k1);
0.13.1 在未来,隔离见证允许跳过历史签名的下载;
而新发布的 0.14.0版本软件,有两项功能显著改进了初始块下载(IBD)的速度;
- 假定有效区块;
- 内存池(mempool)和未花费交易输出( UTXO)数据库缓存之间的内存共享
下面详细描述一下这两大优化。我们用之前版本的软件(Bitcoin Core 0.13.2)与当前的版本(Bitcoin Core 0.14.0)进行实验对比,并同样使用了亚马逊 EC2虚拟专用服务器进行测试,其CPU为四核,内存为16 GB,每小时运行的成本为0.188美元(不包括块存储成本)。所有的Bitcoin Core 设置都为默认状态。
- Bitcoin Core 0.13.2 花费了1天12个小时零40分钟来完成区块同步,总费用为6.89美元。
- Bitcoin Core 0.14.0 花费了6小时24分钟来完成同步任务,总费用为1.2美元。
测试结果表明,在相同条件下,Bitcoin Core 0.14.0在区块同步这块上比上一个版本要快5.7
倍。
注:Bitcoin Core的默认设置是为了适应各类的硬件,包括旧机器以及小内存机器。对于那些想要更快同步的用户,可以将Bitcoin Core的-dbcache=
选项调至高于默认的300
(MB) 。很多现代的电脑应能在3个小时内通过Bitcoin Core 0.14.0同步完区块链,设置为8 GB内存(-dbcache=8000
)。
假定有效块
Bitcoin 0.3.2软件引入了一种称为检查点(checkpoints
)的机制,以防止初始区块下载中遭遇拒绝服务攻击,确保新的全节点不会被欺骗花费过多的努力去验证不同于主链的替代链。
Bitcoin 0.5.0在检查点的基础上,通过跳过区块的签名验证来加速初始区块下载。
随着时间的推移,其他Bitcoin Core安全性的改进(例如区块头首先同步和最小链工作(minimum chainwork))减少了检查点的需要,同时,很多比特币开发者都表示要移除检查点,因为它们会让新的开发者对安全模式感到困惑。
假设有效块是一个新的功能,它将签名跳过优化和检查点反拒绝服务机制分离了开来,这使得它们可以独立地处理。
所谓一个假定有效区块,个人用户可将其考虑成一种被包含在有效区块链当中的有效区块。任何人都可以用一种完全可重复的(确定性的)方式来进行测试。如果软件不拒绝这个区块,或任何前面的区块,说明它是有效的。
如果有人第一次启动一个全节点,并知道了任何有效区块,然后他们可以为Bitcoin Core 0.14.0 提供这些区块当中的最高高度,那么软件将跳过验证假定有效区块之前的区块。由于区块同步过程中验证签名会消耗大量的CPU,使用假定有效区块可以大大加快区块同步的速度。所有假定有效块后的区块将正常检查其签名。
检查点(checkpoints)与假定有效块之间的关键性区别在于,Bitcoin 0.3.2 软件要求所有的检查点(checkpoints)区块都成为区块链的一部分,而 Bitcoin Core 0.14.0 软件并不要求任何假定有效区块成为区块链的一部分。如果没有用户提供假定有效区块(或系统默认的),Bitcoin Core会简单地验证所有的区块签名历史。或者,如果存在着一个区块链分叉,而拥有最多工作量证明的有效区块链,其并不包含已知的假定有效区块,Bitcoin Core仍然会切换到新的最佳区块链(即使这意味着它放弃了假定有效区块)。
比特币的新用户可能并不知道任何有效块,但他们可能也不会知道所有的共识规则,因此他们可以简单地使用其下载的全节点软件。 Bitcoin Core 0.14.0 在默认情况启用了假定有效区块功能。
任何想要使用Bitcoin Core来验证所有签名的用户,仍然可以通过-assumevalid=0
代码来启用这个程序。任何想要具体化一个替代假定有效区块的用户,可以指定区块标识符作为参数来设为假定有效;例如:
-assumevalid=00000000000000000013176bf8d7dfeab4e1db31dc93bc311b436e82ab226b90
Bitcoin Core 0.14.0的默认假定有效块是#453354,2017年2月16日,哈希为:
hash 00000000000000000013176bf8d7dfeab4e1db31dc93bc311b436e82ab226b90.
在初始区块下载过程中,Bitcoin Core并不使用它的内存池,因为直到你拥有最新的区块之前,你没有办法来验证最近创建的交易。这意味着, Bitcoin Core在区块同步过程中要求的内存会比以往更少。
在Bitcoin Core 0.14.0当中, 未用过的的内存池内存会和UTXO数据库缓存共享,从而增加了能在快速内存中进行缓存的UTXO,而不是在更慢的磁盘中存储及恢复。
更快的新区块验证和中继
在Bitcoin Core 0.14.0当中,有四大显著的改善,将对矿工和其他有尽快接受和处理新区块需求的用户产生帮助。
改善签名缓存
第一个功能就是使用布谷鸟散列算法(cuckoo hashing
)更新了签名缓存。这个签名缓存允许Bitcoin Core存储未确认交易的验证签名缓存,那当同一笔交易出现在一个新区块时,Bitcoin Core 就无需再验证签名了。由于签名验证通常是处理一个新区块最为昂贵的一部分,使用签名缓存便显着提高了节点处理新区块的速度。
在Bitcoin Core 0.13.2 当中现有的签名缓存,只适用于少于八核的CPU系统。而达到或超过八核CPU的系统,就无法将剩余的性能发挥出来。而使用布谷鸟散列算法的更新,则提供了一个“布谷鸟缓存”,并因此消除了这个问题,允许更多核的CPU系统能够有效地应用。
在使用16核CPU系统的一次测试下,使用0.14.0版本软件添加一个区块的速度要比先前版本的软件要快40%。对于小于8核CPU的系统来说,这一更新没有提供大的性能提升(布谷鸟缓存允许缓存更多的签名,所以它们可以有轻微的性能改进)。
早期版本的BIP152 致密区块中继
Bitcoin Core 0.14.0的第二个功能改进就是BIP152 致密区块的实施。当前支持了BIP152的两种选择模式:
- 一种是低带宽的模式,其试图发送必要的最小数据来中继一个新区块,包括等待接受节点请求的特定新区块。
- 另一种高带宽的模式,是在无需等待接受节点请求特定区块的情况下,发送新的区块数据。但其存在着一种风险,既发送给接收节点的数据和另一个发送节点的数据会重复(浪费了带宽),但它有助于确保区块的传输速度会很快。
在最佳的情况下,删除验证中继可以允许新区块在点对点网络上进行多跳传播,这会比以往要快上数倍。在最坏的情况下,一些额外的带宽浪费会传输无效区块。在这两种情况下,安全模型仍保持不变,因为所有节点仍然会拒绝无效区块。
P2P代码重构,集中改善并发性和吞吐量
Bitcoin Core 0.14.0的第三大改进功能就是P2P网络代码的重构,目的是增加并发性和吞吐量。并发性改善有助于让新接收的区块(如bip152 致密区块)能低优先级被处理,确保区块尽可能快地被验证和中继。
重构现还允许在信息处理的过程中,网络活动仍能继续在后台进行,其特别是对初始区块下载( IBD)速度提供了改进,作为了 Bitcoin Core 0.10.0软件的区块头首先同步的一种补充(见上面更多的信息)。
内存池存储到磁盘
第四大改进有助于签名缓存和致密区块的实施, 在定时关机的情况下,未确认交易的内存池现在能够存储到磁盘当中,并在节点重启时,重新载入到内存当中。
结合致密区块后,它可以节省节点重新下载这些未确认交易的时间(当它们在一个新产生的区块中被接受时)。结合签名缓存,这允许节点能够缓存那些未确认交易的签名验证,这使得包含这些交易的新区块可以更快地被验证。
可选的增加手续费功能
Bitcoin Core 0.14.0开启了一项可选的功能(默认为禁用),它可以为钱包产生的所有新交易添加交易费,具体是指 BIP125 可选费用替代法(RBF
)。
想要启用该功能,可以在 Bitcoin Core客户端用-walletrbf
启用,这一功能可为先前未确认的交易添加手续费,以加大交易被确认的机会。支持opt-in RBF或者full RBF功能的矿工通常会在他们的交易处理队列中放入更高费用的交易,而更高的交易费将鼓励矿工更快地挖取新版本的交易。
总结
关于Bitcoin Core 0.14.0的所有更新细节,请阅读它的发布说明。如果您要下载这一最新版本软件,请访问官方下载页面或文件目录。
下一个版本的Bitcoin Core软件,开发者团队计划约在6个月后完成(在完全测试后才会发布)。
如果你有兴趣为Bitcoin Core贡献,您可以参阅Bitcoin Core的贡献页面和文档。如果你不知道从何入手,或者有其他的疑问,您可以加入Bitcoin Core的IRC或Slack聊天室,开发者会尽力帮助你。
钱包文件哈希验证
以下是Bitcoin Core 0.14.0发布文件的SHA-256哈希:
466adccf7352f06de35afc1627a3ea721764268ceaf08fa3641f9b47e7df091a bitcoin-0.14.0-aarch64-linux-gnu.tar.gz 55957e2c35aa2ba836cbae7cbf945bcf489a46b243551b0f6fd86f60603032a6 bitcoin-0.14.0-arm-linux-gnueabihf.tar.gz e4bb8b52acde07788dfcf024645fe291f0deca2b7172939fb2ddb8789fe56973 bitcoin-0.14.0-i686-pc-linux-gnu.tar.gz e01e3cdd3c4138eccaf0c1267caa3bcdb6949ee63c1e396842b70f102fb4bcaf bitcoin-0.14.0-osx64.tar.gz 50fea43935e93381552b6730444eed6bbe513637a785e1b864b0c5883729228c bitcoin-0.14.0-osx.dmg d743d4866a0d4c1457f81530c45258a8b6383d1cafc458eedcba8d01728a641e bitcoin-0.14.0.tar.gz 95a030be5c1649023e3aa81d1cd9eabd4258f1b00f0fc51066d02126219705af bitcoin-0.14.0-win32-setup.exe 864ef77b9b4812ec59adff04d44213a6039c66970a9ae31e8620997a8c1537bc bitcoin-0.14.0-win32.zip f260d52cf2fe91c4be99ed6fcf8aa0de669ff326c5da920b7ed3a3e2ec981e0a bitcoin-0.14.0-win64-setup.exe 415693ed81cfc4960bbfcb815529003405aefbf839ef8fc901b0a2c4ef5317d0 bitcoin-0.14.0-win64.zip 06e6ceeb687e784e9aaad45e9407c7eed5f7e9c9bbe44083179287f54f0f9f2b bitcoin-0.14.0-x86_64-linux-gnu.tar.gz
作者: Bitcoin Core开发者
编译:洒脱喜
稿源(译):巴比特资讯(http://www.8btc.com/bitcoin-core-0-14-0) 版权声明:
![Bitcoin Core 0.14.0正式发布,区块链同步速度提升570%](http://7fvhfe.com1.z0.glb.clouddn.com/wp-content/themes/8btctest1/custom/images/by.png)
![Bitcoin Core 0.14.0正式发布,区块链同步速度提升570%](http://7fvhfe.com1.z0.glb.clouddn.com/wp-content/themes/8btctest1/custom/images/nc.png)
![Bitcoin Core 0.14.0正式发布,区块链同步速度提升570%](http://7fvhfe.com1.z0.glb.clouddn.com/wp-content/themes/8btctest1/custom/images/sa.png)