概述
我们很高兴 宣布 比特币核心 0.13.0 正式发布。 在这个版本发布之前,六个月的开发周期中,数十位贡献者 对比特币核心进行了数百项重大改进。 在这个版本中提供的众多升级中,以下可能对矿工、节点运营商和钱包用户特别有意义。
-
为隔离见证做准备 以提高容量,消除不需要的交易可变性,并使用软分叉启用新的方式来升级比特币的脚本语言。 此版本中的代码只为隔离见证做准备;它不支持主网上的隔离见证,因此想要使用隔离见证的用户需要升级到未来的版本。
-
紧凑区块中继 在对等网络上,以消除中继交易的节点之间冗余数据传输的主要来源,以及减少这些节点在下载新生成区块时使用的带宽峰值。
-
基于手续费的过滤 以消除对等网络上另一个不必要的数据传输来源,方法是允许节点跳过中继任何已知其对等方将忽略的未确认低手续费交易。
-
BIP32 HD 钱包支持 在比特币核心的内置钱包中,允许用户备份钱包将永远生成的每个私钥,而不是以前的默认值,即仅备份接下来的 100 个私钥。
-
子交易支付父交易 (CPFP) 交易选择 允许矿工更有效地挖矿(如果可能),并让用户能够在无法直接提高交易手续费的情况下激励挖矿选择特定交易。
-
官方构建的比特币核心二进制可执行文件,用于 ARM 芯片组与 Linux 结合使用 以便这些平台的用户能够利用由 Gitian 确定性构建和多重认证流程确保安全的预构建软件。
有关比特币核心 0.13.0 中所做更改的更全面的列表,请参阅 发行说明。 上述改进将在下面更详细地描述。
为隔离见证做准备
比特币核心 0.13.0 中做出的最重要的代码更改是包含隔离见证(隔离见证)代码,为即将到来的软分叉做准备。 请注意,此版本不会激活隔离见证,如果激活隔离见证,此版本也不会有任何不同,因此想要使用或强制执行隔离见证的用户需要升级到包含激活机制的后续版本。
在比特币核心 0.13.0 中包含隔离见证代码,用户可以获得一些优势
-
更轻松地升级到隔离见证: 此版本与包含隔离见证的后续版本之间的代码差异(“diff”)将很小。 这使得修改了比特币核心版本的用户可以轻松地将他们对比特币核心 0.13.0 所做的任何修改转换为包含隔离见证的版本(预计为 0.13.1)。
-
更轻松的隔离见证测试: 虽然此版本不会在主网上运行隔离见证代码,但它确实在测试网上和回归测试模式(regtest)下运行代码,这使得开发人员、管理员和测试人员可以轻松地在安全的环境中使用隔离见证,该环境使用非常接近第一个版本的比特币核心,该版本已准备好供矿工激活隔离见证。
-
与其他功能的全面集成: 此版本中包含的所有其他功能,例如手续费过滤、紧凑区块中继、子交易支付父交易挖矿以及官方构建的 Linux ARM 版本,都与隔离见证代码集成,并且很可能在隔离见证激活之前投入生产两三个月,为社区审查和测试发现潜在问题提供更多时间。
更多信息
-
隔离见证:下一步 BitcoinCore.org 博客文章
-
BIP141:隔离见证(共识层),关于隔离见证的技术信息以及隔离见证的激活参数将在哪里发布。 另请参阅 BIPs 143、144 和 145。
紧凑区块中继
在比特币核心 0.13.0 之前,运行的完整节点(默认情况下)会收到许多交易两次
-
在交易被确认之前,作为单个交易在网络上传播。
-
在交易被确认之后,作为包含在新挖出的区块中的一组交易的一部分在网络上传播。
如果节点仍然保留着第一份副本,则没有必要让节点第二次接收交易。 紧凑区块中继 (BIP152) 可以通过允许节点从其对等方接收包含在新区块中的交易的排序列表来消除这种冗余。 利用这些信息,节点可以使用其已接收的交易来部分或完全地自行重建区块中的交易部分。 如果节点没有收到完全重建区块所需的全部交易,它会向其对等方请求缺失的交易,然后使用它们来完成区块。

紧凑区块为网络提供了三个非常重要的优势
-
通过减少交易中继节点使用的带宽,紧凑区块有助于抵消矿工启用隔离见证容量增加后预计发生的带宽增加。 这种抵消应该允许节点在隔离见证后继续在网络上运行,即使它们目前接近其当前的带宽上限。
-
通过消除节点在收到新区块时发生的带宽峰值,紧凑区块可以使节点更容易在具有有限峰值带宽的连接上运行。 例如,一些用户报告说,收到新区块会减慢其网络上其他重要活动的运行速度,例如视频会议,因此一些用户在开始这些活动之前会关闭比特币核心。 紧凑区块可能会消除这些带宽峰值,并使运行比特币核心对这些用户来说不那么麻烦。
-
更快地将区块在网络上传播,方法是显著减少找到新区块时需要传输的数据量。
更多信息
-
BIP152,它描述了紧凑区块协议
-
比特币 FIBRE,一种开源协议和实现,它建立在紧凑区块之上,以最大限度地减少受控网络上对等方之间新区块公告的延迟。 FIBRE 是与紧凑区块中继版本 1 一起设计和实现的,它被用来测试紧凑区块中继后续版本的改进。
手续费过滤
多年来,比特币核心节点一直在使用最低中继手续费费率来帮助确定他们将处理、中继并在其个人内存池中存储哪些未确认交易。 每个节点都可以决定自己的最低中继手续费费率,如果他们收到手续费费率低于该限制的交易,他们就不会将其添加到其内存池中或将其中继到其其他对等方(尽管一种称为 交易优先级 的机制在历史上允许一些手续费较低的交易被接受到内存池中并被中继)。
在比特币核心 0.13.0 之前,节点不会互相告知他们使用的最低手续费费率,这可能会导致带宽浪费。 例如,爱丽丝向鲍勃发送了一笔交易,却不知道这笔交易的手续费费率低于鲍勃的最低限度。 由于比特币交易的传播方式,鲍勃在下载完整个交易之前没有办法知道这笔交易是否低于他的限制,此时他停止处理交易,因为它的手续费费率太低,因此鲍勃和爱丽丝的带宽都浪费了。
比特币核心 0.13.0 支持已添加到对等(P2P)协议中的新消息,即 feefilter 消息,该消息旨在帮助消除这种带宽浪费。 此 P2P 消息允许鲍勃告诉爱丽丝他目前使用的最低中继手续费费率,这样爱丽丝就不会费心尝试将手续费低于该费率的任何交易中继给他。
更多信息
BIP32 HD 钱包支持
当比特币核心第一次启动时,它现在将生成一个 BIP32 分层确定性 (HD) 钱包,其中钱包中的每个私钥都使用可重复(确定性)流程从单个信息片段派生而来。 这意味着备份该单个信息片段将备份钱包将永远生成的每个私钥,确保将来可以恢复由这些私钥控制的任何比特币。
备份很难做好,因此请注意以下信息
-
如果您从比特币核心 0.13.0 之前的任何版本升级,您将继续使用旧的钱包样式,其中每个私钥都是单独生成的,并(默认情况下)预先生成了多达 100 个私钥,以简化备份操作,这意味着您需要每 100 笔交易创建一次额外的备份,因为每笔默认样式的交易都会使用一个私钥。
-
如果您使用 0.13.0(或更高版本)创建一个新钱包,并且您从默认的未加密钱包更改为加密钱包,系统将为您生成一个新的 HD 钱包。 您仍然可以访问发送到未加密钱包的任何比特币,但您需要再次备份钱包。
如果您不确定是否使用的是 HD 钱包,可以使用 getwalletinfo RPC 检查
-
如果您使用比特币核心图形用户界面,您可以单击帮助菜单,选择调试选项,单击控制台选项卡,然后键入
getwalletinfo。 -
如果您使用
bitcoin-cli命令访问 RPC 界面,您可以键入bitcoin-cli getwalletinfo。
在这两种情况下,如果您看到标有“masterkeyid”的行,则表示您使用的是 HD 钱包;如果您没有看到它,则表示您使用的是具有单独生成密钥的钱包。
备份 HD 钱包可以确保您将来能够重新生成该钱包生成的任何私钥,但这只是您可以从备份中恢复的唯一信息。 在您进行备份后输入钱包中的任何其他信息(例如您发送或接收的交易的描述)将在您必须从 HD 钱包备份中恢复时丢失,因此我们建议您继续定期备份您的钱包以保留这些信息。
重要的是,如果您手动将任何私钥导入到您的钱包,则无法使用之前进行的任何备份来恢复它们,因此您需要创建一个新的钱包备份并使用它。
更多信息
-
确定性钱包(比特币维基)
更智能的交易选择用于挖矿
祖先手续费费率挖矿是比特币核心 0.13.0 中新的默认交易选择方法。 矿工可以使用它来选择将哪些交易放入下一个区块,从而提供两个重要的优势
-
对于矿工,由于祖先手续费费率挖矿能够优先考虑某些手续费更高的交易,因此通常可以从每个区块的手续费中获得更多收入。
-
对于用户而言,矿工更智能地选择交易带来的一个额外好处是,未确认交易的接收方可以激励矿工挖取该交易。
比特币有一条规则,规定如果 Alice 将一个比特币支付给 Bob,那么 Alice 最初收到该比特币的交易必须在区块链中早于她将该比特币支付给 Bob 的交易。换句话说,父交易必须在区块链中早于其子交易,形成祖先关系。
子交易和父交易都可以在同一个区块中出现,但如果它们在同一个区块中,则父交易必须在该区块中早于子交易。这意味着,如果一个未确认的子交易支付了高额费用,矿工应该受到现有比特币规则的激励,去挖取该交易的未确认父交易(即使其支付的费用很低),以便获得子交易的高额费用。
这种激励机制通常被称为“子交易支付父交易”(CPFP)。在最简单的版本中,矿工将一个交易及其所有祖先分组在一起,计算它们的总费用率(每字节),以确定将它们一起挖取是否能支付足够高的费用,以超过矿工想要包含在其下一个区块中的其他单个交易。
祖先费用率挖矿的一个主要优势是,这两个交易不需要由同一个人创建。例如,如果 Bob 正在等待 Alice 发送给他的交易的确认,Bob 可以独立创建一项子交易,激励矿工一起确认他的交易和 Alice 的交易。
需要注意的是,祖先费用率挖矿并不能保证低费用的交易仅仅因为它有一个高费用的子交易或其他后代就会被挖取。特别地,几乎所有矿工和节点都会忽略那些每千字节数据支付的费用低于最低限度的交易(确切的比率因节点而异),因此,如果父交易由于其支付的费用低于此限度而被忽略,那么它的子交易将不会被挖取,无论它们支付的费用有多高。
更多信息
-
“子交易支付父交易”(CPFP)与可选的替换费用(RBF)的比较,请参阅 可选的 RBF 常见问题解答
-
CPFP 在比特币核心开发中的简要历史,这是 Gregory Maxwell 在 Reddit 上的评论。
官方构建的 Linux ARM 版本
通过 Gitian 流程 由多个贡献者构建和加密签名的官方比特币核心二进制文件现在包含两个新平台
- bitcoin-${VERSION}-arm-linux-gnueabihf.tar.gz:适用于最常见的 32 位 ARM 架构的 Linux 二进制文件。
- bitcoin-${VERSION}-aarch64-linux-gnu.tar.gz:适用于最常见的 64 位 ARM 架构的 Linux 二进制文件。
如果你安装了 GNU C 编译器,你可以运行以下命令来确定你正在使用的平台
gcc -print-multiarch
或者,如果你使用的是基于 Debian 的系统,你可以尝试以下命令
dpkg-architecture -q DEB_HOST_GNU_SYSTEM
这些二进制文件是为使用 GNU libc6 的 Linux 设计的;它们默认情况下预计不会在 Android 或其他操作系统上运行。
新的构建版本仍然是实验性的,因此请 报告你遇到的任何问题。
更多信息
-
比特币维基百科列出了 与比特币核心兼容的设备。请添加任何未列出的兼容设备。
-
Debian 维基包含有关可能与这些构建版本兼容的板的信息:32 位 arm-linux-gnueabihf 和 64 位 aarch64-linux-gnu
结论
有关比特币核心 0.13.0 中所有更改的详细信息,请 阅读发行说明。要下载,请访问 下载页面 或 文件目录
随着比特币核心 0.13.0 的发布,我们开始了下一个比特币核心版本的 6 个月发行周期(预计为 0.14.0)。在社区的参与下,我们还将为隔离见证选择 BIP9 参数,并发布一个完全启用隔离见证的次要版本(预计为 0.13.1)。
如果你有兴趣为比特币核心做出贡献,请查看我们的 贡献页面 和文档 如何为比特币核心贡献代码。如果你不知道从哪里开始,或者有任何其他问题,请访问我们的 IRC 聊天室,我们会尽力帮助你。
验证哈希值
以下是发布文件的 SHA-256 哈希值
f94123e37530f9de25988ff93e5568a93aa5146f689e63fb0ec1f962cf0bbfcd bitcoin-0.13.0-aarch64-linux-gnu.tar.gz
7c657ec6f6a5dbb93b9394da510d5dff8dd461df8b80a9410f994bc53c876303 bitcoin-0.13.0-arm-linux-gnueabihf.tar.gz
d6da2801dd9d92183beea16d0f57edcea85fc749cdc2abec543096c8635ad244 bitcoin-0.13.0-i686-pc-linux-gnu.tar.gz
2f67ac67b935368e06f2f3b83f0173be641eef799e45d0a267efc0b9802ca8d2 bitcoin-0.13.0-osx64.tar.gz
e7fed095f1fb833d167697c19527d735e43ab2688564887b80b76c3c349f85b0 bitcoin-0.13.0-osx.dmg
0c7d7049689bb17f4256f1e5ec20777f42acef61814d434b38e6c17091161cda bitcoin-0.13.0.tar.gz
213e6626ad1f7a0c7a0ae2216edd9c8f7b9617c84287c17c15290feca0b8f13b bitcoin-0.13.0-win32-setup.exe
5c5bd6d31e4f764e33f2f3034e97e34789c3066a62319ae8d6a6011251187f7c bitcoin-0.13.0-win32.zip
c94f351fd5266e07d2132d45dd831d87d0e7fdb673d5a0ba48638e2f9f8339fc bitcoin-0.13.0-win64-setup.exe
54606c9a4fd32b826ceab4da9335d7a34a380859fa9495bf35a9e9c0dd9b6298 bitcoin-0.13.0-win64.zip
bcc1e42d61f88621301bbb00512376287f9df4568255f8b98bc10547dced96c8 bitcoin-0.13.0-x86_64-linux-gnu.tar.gz
