首页
/ Bitcoin Core 0.11.0 发布解析:块文件修剪、Tor 流隔离与手续费策略演进

Bitcoin Core 0.11.0 发布解析:块文件修剪、Tor 流隔离与手续费策略演进

2026-09-06 14:40:59作者:谭伦延

本文以 doc/release-notes/release-notes-0.11.0.md 官方发布说明为主体,完整还原 Bitcoin Core 0.11.0 这一重要主版本的核心变更:块文件修剪(block pruning)、Tor 流隔离、钱包广播控制、内存优化与手续费估算改进。文章同时结合当前仓库源码中的参数定义、修剪实现与 RPC 入口,帮助读者既掌握 0.11.0 的运维配置方法,又理解这些功能在代码层面的落点与后续演进。

版本概述与升级/降级注意事项

0.11.0 是 Bitcoin Core 的一个主版本(major version)发布,同时带来新功能与缺陷修复。发布说明给出的升级流程很直接:

  • 运行旧版本的节点先完全关闭(旧版本可能需要数分钟才能完成关闭);
  • Windows 下运行安装程序,Mac 下覆盖 /Applications/Bitcoin-Qt,Linux 下覆盖 bitcoind/bitcoin-qt 可执行文件。

降级警告是运维必读内容。 由于 0.10.0 及以后采用了“头部优先同步(headers-first synchronization)+ 并行块下载”,0.10+ 节点的块文件与数据库对 0.10 之前的版本不向后兼容:

  1. 块文件不再按链上顺序落盘,而是按接收顺序写入,这使得依赖顺序读取的旧工具失效,旧版本重新索引(reindex)也不再可行;
  2. 块索引数据库(block index)会保存尚未下载块的头部信息,旧版本无法识别这种状态。

因此如需保留回退能力,必须对整个数据目录做备份;否则降级后节点只能重新同步(或重新导入 bootstrap.dat)。发布说明同时明确:钱包的前向/后向兼容性不受影响,从 0.11.x 降级到 0.10.x 没有已知问题。

应对交易洪泛:minrelaytxfee 与 limitfreerelay

0.11.0 发布时,P2P 网络正遭受低手续费交易洪泛(transaction flooding),导致内存池(mempool)膨胀。发布说明给出两个可在 bitcoin.conf 中生效的缓解手段:

配置项 默认值(0.11.0 时期) 作用
minrelaytxfee 0.00001(BTC/kB) 手续费低于该值的交易会被拒绝进入内存池,从源头限制内存池增长速度
limitfreerelay 15(kB/分钟) 限制“零手续费但优先级足够”的交易的最大接受速率

发布说明给出的示例配置:

minrelaytxfee=0.00005
limitfreerelay=5

内存池增长可以用 RPC getmempoolinfo 监控。

从当前仓库源码结构看,minrelaytxfee 参数至今仍在参数表中定义,见 src/init.cpp-minrelaytxfee=<amt>,单位已改为 satoshi/kvB),其默认常量 DEFAULT_MIN_RELAY_TX_FEE 定义在 src/policy/policy.h,当前值为 100(即 100 satoshi/kvB)。这说明 0.11.0 引入的“最小中继费率”思路已经沉淀为长期机制;而 limitfreerelay 这类针对当年洪泛的应急开关,则是特定历史阶段的产物——后续版本通过更完善的费用策略替代了它。阅读这份发布说明时应注意区分“当年语境”与“当前代码现状”。

核心新特性:块文件修剪(Block Pruning)

这是 0.11.0 的旗舰特性:允许一个全验证节点在不保留原始块与 undo 数据的情况下运行

四类区块链数据的分工

Bitcoin 系统中与区块链相关的数据有四类:

数据 文件/存储形式 修剪后是否保留
原始块 blk???.dat 可删除(仅保留最近约 288 个块)
Undo 数据 rev???.dat 可删除
块索引(block index) LevelDB 数据库 完整保留(所有块的元数据)
UTXO 集合 LevelDB 数据库 完整保留

修剪的工作原理是:块一旦通过验证并用于构建数据库,其原始数据即可删除。此后原始数据仅在以下场景仍被需要:向其他节点中继块、处理重组、查询旧交易(启用 -txindex 或经 RPC/REST 接口时)、以及钱包重扫(rescan)。

关键参数与限制

  • 启用方式-prune=N,N 为分配给原始块与 undo 数据的 MB 数。最小允许值为 550 MB,且这只是块/undo 文件所需空间,块索引与 UTXO 数据库另计。550 MB 的取值依据是让节点至少能在磁盘上维持 288 个块(按 10 分钟出块约等于两天的量);罕见情况下实际占用可能超过修剪目标,以确保这最后 288 个块驻留磁盘。
  • 初始同步期间即生效:达到目标容量后开始删除最旧的块/undo 文件,同时继续下载,与稳态行为一致。
  • 块中继限制:0.11.0 中启用修剪会禁用块中继;后续计划至少中继“延伸当前活跃链”的新块。
  • 与钱包不兼容:因为钱包重扫、导入密钥/地址(触发重扫)都需要块数据;说明中承诺“在不带这些限制的前提下很快支持”。
  • -txindex 不兼容:同时指定会自动禁用 -txindex
  • 不可逆性:修剪过的节点若要回到未修剪状态,必须用 -reindex 重启并重新下载整条链;任何迫使未修剪节点 reindex 的故障(如磁盘损坏),对修剪节点都会导致全链重下载。reindex 时还会先删除数据目录中残留的 blk???.datrev???.dat 文件。
  • 修剪默认关闭

受影响的 RPC:

  • getblockchaininfo 新增修剪模式状态字段;
  • getblock 会检查块数据是否已被修剪,是则返回错误;
  • getrawtransaction 无法再定位“UTXO 存在但所在块文件已被修剪”的交易。

当前仓库中的修剪实现落点

从当前仓库源码看,该特性已演化为更完善的块存储模块:

  • 参数定义见 src/init.cpp-prune=<n> 的帮助文本明确写出“该模式与 -txindex 不兼容”,与发布说明一致;
  • src/node/blockstorage.h 注释说明“修剪永远不会删除距离活跃链顶端定义距离(当前为 288)以内的块”,印证了 288 块保留策略延续至今;
  • IsBlockPruned() 的实现位于 src/node/blockstorage.cpp,它是 getblock、REST 接口与交易请求等路径判断“块数据是否已不在磁盘”的统一入口,例如 src/rest.cppsrc/rpc/blockchain.cpp 都调用它;
  • getblockchaininfopruneheight 字段输出逻辑见 src/rpc/blockchain.cpp:仅在修剪启用时返回“第一个未被修剪的块高(之前的块均已被修剪)”。

大端(Big Endian)架构支持

0.11.0 实验性支持大端 CPU 架构:所有小端专属代码被替换为字节序中立的构造,构建系统自动检测目标端序,已在 MIPS 与 PPC 主机上测试。构建系统侧对应变更包括把 mips、mipsel 与 aarch64 加入 depends 平台(变更日志 #5501)。这类变更的价值在于让 Bitcoin Core 可运行到更广泛的嵌入式与专用硬件场景。

内存用量优化

0.11.0 包含多项降低节点默认内存占用的改动:

  • 精确的 UTXO 缓存大小核算(#6102):让 -dbcache 选项真正精确,此前该选项严重低估实际内存用量;
  • 缩小每连接数据结构(#6064 等):同等内存下支持更多 P2P 连接;
  • 减少线程数量(#5964、#5679,引入轻量任务调度器 lightweight task scheduler):降低(尤其虚拟)内存需求。

这些优化对低配置 VPS 上长期运行的全节点非常实际:UTXO 数据库缓存是节点内存的两大头之一,-dbcache 从“粗略估计”变为“精确核算”后,用户才能可靠地为不同内存规格的主机规划该参数。

手续费估算算法改进

0.11.0 改进了费用估算算法,行为变化有两点:

  1. 除了数据不足时返回 -1当不存在能满足目标确认时间的手续费或优先级时,现在也返回 -1;此时可以改询更高的目标块数。事实上,“没有足够高的费用能可靠(85% 置信度)进入下一个块”是常见情况;
  2. 因此 -txconfirmtarget=n 的默认值从 1 改为 2(变更日志 #6126)。

从当前仓库看,-txconfirmtarget 参数依然保留在 src/init.cpp 的连接/钱包参数体系中,默认目标确认数为 2 的设定延续了下来。对钱包用户的影响是:构造交易时的默认确认目标更保守,在手续费竞争激烈的时期能减少交易长时间滞留内存池的概率。

隐私特性一:禁用钱包自动广播(-walletbroadcast=0)

0.11.0 新增 -walletbroadcast=0(#5951),阻止钱包自动广播与重广播交易,把“交易提交”与“节点运行”解耦。典型用法是编写第三方脚本接管交易的(再)广播:

  1. 像往常一样通过 RPC 或 GUI 发送交易;
  2. 通过 RPC gettransaction(注意不是 getrawtransaction)获取交易数据,结果中 hex 字段即交易的原始十六进制表示;
  3. 脚本可用任意机制广播该交易。

发布说明给出的应用场景是选择性使用 Tor:节点走普通互联网,交易却通过 Tor 广播(说明中引用了作者维护的示例脚本 bitcoin-submittx 作为参考实现)。

当前仓库中该参数仍然保留,定义见 src/wallet/init.cpp,并在 src/wallet/wallet.cpp 中通过 SetBroadcastTransactions 生效;同时存在参数联动:设置 -blocksonly=1 时会自动将 -walletbroadcast 置为 0(见 src/wallet/init.cpp 的参数交互逻辑),语义与 0.11.0 的设计一脉相承。

隐私特性二:Tor 流隔离(-proxyrandomize)

0.11.0 新增 -proxyrandomize 选项,默认开启:当节点通过 Tor 使用时,为每个 P2P 连接创建独立电路(new circuit per connection)。

收益:

  • 每个出站连接(可能)经由不同的出口节点,显著降低“不幸选中某个恶意或被 P2P 网络广泛封禁的出口节点”的概率;
  • 同时改善连接可靠性与隐私,对初始建连阶段尤其明显。

重要兼容性问题:若配置的是支持认证但不要求认证的非 Tor SOCKS5 代理,该变更可能引发代理拒绝连接——因为现在会在原本不发送凭据的位置发送用户名和密码。这种部署极少见,但确实如此时可用 -proxyrandomize=0 关闭该行为。

当前仓库中该参数定义于 src/init.cpp,帮助文本明确其用途为“Tor stream isolation”且默认值为 1;src/init.cpp 中还保留了相关启动告警逻辑(当私有无名广播与 -proxyrandomize=0 组合时会提示电路可被关联的风险),说明该特性历经多年仍是 Tor 隐私配置的关键一环。

0.11.0 变更日志精选

以下为发布说明中分类变更日志(含 PR 编号与合并提交)的完整梳理,涵盖行为性变更:

RPC 与 REST

  • #5461 5f7279a signrawtransaction 校验私钥
  • #5444 103f66b 新增 REST 接口 /rest/headers/<count>/<hash>.<ext>
  • #4964 95ecc0a validateaddress 输出新增 scriptPubKey 字段
  • #5476 c986972 getpeerinfo 输出新增时间偏移
  • #5540 84eba47 getwalletinfo 新增未确认与未成熟余额
  • #5599 40e96a3 移除内部矿工的 hashmeter
  • #5711 87ecfb0 下移 RPC 锁粒度
  • #5754 1c4e3f9 修复 getblocktemplate 锁问题;#5756 5d901d8 修复其测试
  • #5548 d48ce48 新增 REST 接口 /rest/chaininfos
  • #5992 4c4f1b4 下移 RPC reqWallet 标志
  • #6036 585b5db listunspent 展示零值 txout
  • #5199 6364408 新增 RPC gettxoutproof,可生成并验证 Merkle 块证明
  • #5418 16341cc sendrawtransaction 报告缺失输入
  • #5937 40f5e8d signrawtransaction 结果展示脚本验证错误
  • #5420 1fd2d39 基于 BIP64 的 getutxos REST 命令;#6193 42746b0 限制其最多 15 个 outpoint 并移除 json 输入
  • #6226 5901596 json:字符串含尾部垃圾时 read_string 失败

其中 gettxoutproof(SPV 证明生成)在当前仓库中仍有独立实现文件 src/rpc/txoutproof.cpp,是 0.11.0 引入的、至今仍被轻客户端生态使用的关键接口。

配置与命令行选项

  • #5636 a353ad4 新增 -allowselfsignedrootcertificate(允许自签名根证书,用于测试支付请求)
  • #5900 3e8a1f2 新增块链数据结构一致性检查 -checkblockindex
  • #5951 7efc9cf 支持 -walletbroadcast=0 禁用钱包交易广播
  • #5911 b6ea3bc Tor 流隔离(默认开启,-proxyrandomize=0 关闭)
  • #5863 c271304 新增自动修剪功能(-prune=<size>
  • #6153 0bcf04f 参数交互:设置 -proxy 时禁用 upnp
  • #6274 4d9c7fe 新增 -alerts 选项以退出告警系统

块与交易处理

  • #5367 dcc1304 块索引写入改为批量进行
  • #5253 203632d 入内存池前先按 MANDATORY 标志检查
  • #5459 4406c3e 拒绝构建在无效父块之上的头部
  • #5481 055f3ae 对来自网络的费用应用 AreSane() 检查
  • #5580 40d65eb 预先捕获若干潜在缺陷
  • #5349 f55c5e9 为 CPartialMerkleTree 增加 Merkle 树可篡改(malleability)测试
  • #5564 a89b837 澄清 EvalScript() 的晦涩用法
  • #5521 8e4578a testnet/regtest 下同样拒绝非最终(non-final)交易
  • #5707 6af674e 数据库键的硬编码字符常量改为描述性命名常量
  • #5286 fcf646c OP_RETURN 默认最大尺寸改为 80 字节
  • #5710 175d86e 为 ReadBlockFromDisk 的错误增加信息
  • #5948 b36f1ce 使用 GetAncestor 计算新难度目标
  • #5959 a0bfc69 增加块索引一致性检查
  • #6058 7e0e7f8 自动修剪合并后的小改进;#6129 2a82298 修复 fCheckForPruning 清除缺陷;#6221 6cb70ca 修剪支持非连续块文件
  • #5159 2cc1372 全新费用估算代码
  • #6102 6fb90d8 实现精确的 UTXO 缓存大小核算
  • #5947 e9af4e6 极有可能拿到坏链时发出告警
  • #6203 c00ae64 移除已无意义的 P2SH coinbase 标志
  • #5985 37b4e42 修复孤儿交易移除问题
  • #6256 fce474c 使用最佳头部链时间戳检测网络分区
  • #6233 a587606 对 chainActive 中的块推进 pindexLastCommonBlock

P2P 协议与网络代码

  • #5507 844ace9 防止针对传输中(in-flight)数据结构的 DoS 攻击
  • #5770 32a8b6a 命令字符串记录日志前先清洗
  • #5859 dd4ffce 为网络信号添加正确的布尔组合器
  • #5876 8e4fd0c 新增 NODE_GETUTXO 服务位并文档化 NODE_NETWORK
  • #6028 b9311fb 将 nLastTry 从 CAddress 移至 CAddrInfo
  • #5662 5048465 修改下载逻辑,允许对入站节点发起 getdata
  • #5971 18d2832 以条件等待替代绝对睡眠
  • #5918 7bf5d5e 非主链请求使用等量 PoW 校验
  • #6059 f026ab6 chainparams 固定种子改用 SeedSpec6
  • #6080 31c0bf1 添加 jonasschnellis 的 DNS 播种器
  • #5976 9f7809f 块陆续到达时缩短下载超时
  • #6172 b4bbad1 未同步时忽略 getheaders 请求
  • #5875 304892f 更严格地处理未请求的块
  • #6333 41bbc85 2015 年 6 月硬编码种子更新

验证

  • #5143 48e1765 实现 BIP62 规则 6
  • #5713 41e6e4c 实现 BIP66(禁止非低斜率(non-low-S)签名)

构建系统

  • #5501 c76c9d2 depends 平台新增 mips、mipsel、aarch64
  • #5334 cf87536 libbitcoinconsensus 增加 pkg-config 支持
  • #5514 ed11d53 修复 make distcheck
  • #5505 a99ef7d winshutdownmonitor.cpp 仅在 Windows 构建
  • #5582 e8a6639、#5684 ab64022 OSX 工具链更新与 SDK 升至 10.9
  • #5695 23ef5b7 更新 config.guess / config.sub
  • #5509 31dedb4 修复 C++11 模式编译问题
  • #5819 f8e68f7 发布版默认使用静态 libstdc++ 并禁用 reduced exports
  • #5510 7c3fbc3 大端支持
  • #5149 c7abfa5 新增脚本校验所有合并提交已签名
  • #6082 7abbb7e GUI 检查失败时禁用 qt 测试
  • #6244 0401aa2 configure 检测并拒绝 LibreSSL
  • #6269 95aca44 gitian 改用新的 bitcoin-detached-sigs 仓库做 OSX 签名
  • #6285 ef1d506 修复某些 boost 版本下的 scheduler 构建问题
  • #6280 25c2216 修复 depends 中 Boost 1.55 在 GCC 5 下的构建
  • #6303 b711599 gitian 新增 win-signer 描述符
  • #6246 8ea6d37 修复 FreeBSD 构建
  • #6282 daf956b 修复更改 -txindex 中止操作时关闭崩溃
  • #6354 bdf0d94 Gitian Windows 签名规范化

钱包

  • #2340 811c71d 用 nLockTime 抑制费用狙击(fee sniping)
  • #5485 d01bcc4 对钱包创建的交易强制 minRelayTxFee,并新增 maxtxfee 选项
  • #5508 9a5cabf MakeNewKey 中调用 RandAddSeedPerfmon
  • #4805 8204e19 AddToWalletIfInvolvingMe 中不再刷钱包
  • #5319 93b7544 钱包加密代码清理
  • #5831 df5c246 从金额中扣除费用
  • #6076 6c97fd1 修复 boost 1.58 下的 boost::get 用法
  • #5511 23c998d 重新接受前先排序挂起钱包交易
  • #6126 26e08a1 默认 nTxConfirmTarget 改为 2
  • #6183 75a4d51 修复钱包 nLockTime 差一(off-by-one)错误
  • #6276 c9fd907 修复 getbalance * 0 问题

GUI

  • #5219 f3af0c8 新图标;#5488 851dfc7 regtest 使用浅蓝色图标;#5547 a39aa74 调试窗口新图标;#5649 e0cd2f5 系统托盘收发菜单使用文本色图标
  • #5228 bb3c75b 启动画面 HiDPI(retina)支持
  • #5258 73cbf0a RPC 控制台改为 QWidget 以增强窗口独立性
  • #5557 70477a0 关闭启动画面时中断 verifyDB
  • #5559 83be8fd 改进命令行参数对话框;#5144 c5380a9 细化 signverify 消息对话框警告
  • #5489 d1aa3c6 PNG 文件优化
  • #5651 848f55d Coin Control 使用 U+2248“约等于”符号替代波浪号
  • #5626 ab0d798 修复图标尺寸与列宽
  • #5683 c7b22aa 新增 osx dmg 背景图
  • #5620 7823598 修复支付请求过期 bug;#5629 a956586 防止支付请求金额溢出
  • #5729 9c4a5a5 只读 BitcoinAmountField 允许单位切换
  • #5753 0f44672 关于页添加 bitcoin 标志
  • #5830 215475a 不再保存选项与关于/帮助窗口几何信息
  • #5793 d26f0b2 创建自动启动链接时遵循当前网络
  • #5847 f238add 提供带文档的 CentOS 启动脚本
  • #5915 5bd3a92 修复某些 libxcb 版本下的静态 qt5 崩溃
  • #5898 bb56781 RPC 控制台字体改为弹性度量
  • #5467 bc8535b 支付请求/服务端工作第二部分
  • #6161 180c164 移除工具栏 movable 选项
  • #6160 0d862c2 确保 Overview 页警告图标着色

测试

  • #5453 2f2d337 RPC 测试支持手动运行单个测试
  • #5421 886eb57 测试未执行的 OP_CODESEPARATOR
  • #5530 565b300 增加 RPC 测试
  • #5611 37b185c 修复 012598880c 后 Windows 测试偶发失败
  • #5613 2eda47b 按中继策略变化修复 smartfees 测试
  • #5612 e3f5727 修复 zapwallettxes 测试
  • #5642 30a5b5f paymentservertests 适配新单元测试框架
  • #5784 e3a3cd7 修复 script_tests 中 NegateSignatureS 用法
  • #5813 ee9f2bf 新增下次难度计算单元测试
  • #5855 d7989c0 Travis 以不同顺序运行单元测试
  • #5852 cdae53e 单元测试之间重新初始化状态
  • #5883 164d7b6 新增 BasicTestingSetup 并应用于所有测试
  • #5940 446bb70 ResendWalletTransactions 回归测试
  • #6052 cf7adad 修复并启用 bip32 单元测试
  • #6039 734f80a 在 regtest 上使用 setgenerate 时报错
  • #6074 948beaf 修正 script_invalid.json 中 PUSHDATA4 最小编码测试
  • #6032 e08886d 即使 --nocleanup 也在 RPC 测试后停止节点
  • #6075 df1609f 新增脚本边缘条件测试
  • #5981 da38dc6 Python P2P 测试框架
  • #5958 9ef00c3 新增 multisig RPC 测试
  • #6112 fec5c0e 更多脚本边缘条件测试

其他

  • #5457、#5506、#5952、#6047 更新 libsecp256k1
  • #5437 84857e8 主流程补充 CAutoFile::IsNull() 检查
  • #5490 ec20fd7 尽可能以不透明 blob 替换 uint256/uint160
  • #5654、#5764 添加 jonasschnelli 的 GPG 密钥;#5787 9bd8c9b 添加 fanquake 的 PGP 密钥
  • #5477 5f04d1d OS X 10.10:LSSharedFileListItemResolve() 弃用处理
  • #5679 beff11a 移除 DetectShutdownThread
  • #5366 47a79bb RenameThread 不再检查 osx 兼容性
  • #5689 07f4386 抽象出 OPENSSL_cleanse
  • #5708 8b298ca 添加已实现 BIP 列表(对应仓库文档 doc/bips.md
  • #5809 46bfbe7 添加 bitcoin-cli 手册页(对应 doc/man/bitcoin-cli.1
  • #5839 86eb461 在 libsecp256k1 校验真正受支持前先行移除
  • #5749 d734d87 帮助信息正确排版(79 字符)
  • #5884 7077fe6 修复变量 'rv' 周围栈损坏
  • #5849 41259ca OpenRC init 脚本兼容旧变量(对应 contrib/init/bitcoind.openrc
  • #5950 41113e3 修复 locale 回退并使测试防范非法 locale
  • #5965 7c6bfb1 添加 git-subtree-check.sh 脚本
  • #6033 1623f6e FreeBSD、OpenBSD 线程重命名
  • #6064 b46e7c2 mruset 多项改进
  • #6104 3e2559c 激活最佳链期间显示初始化消息
  • #6125 351f73e 清理布尔命令行参数解析
  • #5964 b4c219b 轻量任务调度器
  • #6116 30dc3c1 OSX 下 Bitcoin-Qt.app 更名为 Bitcoin-Core.app
  • #6168 b3024f0 contrib/linearize 支持 testnet 块线性化(对应 contrib/linearize/
  • #6098 7708fcd 更新 Windows 资源文件(含 bitcoin-tx)
  • #6159 e1412d3 捕获 datadir 锁与 pidfile 删除错误
  • #6186 182686c 修复 CSubnet 解析中的两个问题
  • #6174 df992b9 文档:添加翻译字符串策略(对应 doc/translation_strings_policy.md
  • #6210 dfdb6dd 禁用内部 secp256k1 构建中可选的 gmp
  • #6264 94cd705 移除 -help-debug 选项的翻译
  • #6286 3902c15 移除 MacOSX 构建文档中的 berkeley-db4 变通说明
  • #6319 3f8fcc9 更新邮件列表地址

结语:从 0.11.0 看 Bitcoin Core 的能力分层

0.11.0 发布说明勾勒出的三个方向在今天仍清晰可见:

  1. 存储成本分层:块文件修剪让“全验证但低存储”成为可能,代价是牺牲重放历史块的能力;当前仓库中 IsBlockPruned 与 288 块保留距离(src/node/blockstorage.hsrc/node/blockstorage.cpp)证明该设计经过多年迭代仍然成立;
  2. 隐私与网络行为可控-walletbroadcast-proxyrandomize 把广播通道和 Tor 电路选择权交给用户,两者在当前 src/init.cppsrc/wallet/init.cpp 中均有对应实现;
  3. 资源消耗可度量:精确的 UTXO 缓存核算、线程精简与默认确认目标 2,共同降低了全节点的资源门槛。

阅读这份 2015 年的发布说明时,建议结合当前源码逐条对照:文档负责给出历史决策的动机与运维参数,源码则给出这些决策的最终落点。完整原文与致谢名单见 doc/release-notes/release-notes-0.11.0.md

登录后查看全文
热门项目推荐
相关项目推荐