2018-11-01 IRC 会议摘要

概述


本周的贡献者会议讨论的主题包括:提名需要高优先级审查的拉取请求、非 HD 钱包代码路径测试的缺失、钱包重构的进展情况以及 AppVeyor CI 上运行的测试产生的虚假错误。为了结束会议,鼓励贡献者分享他们正在积极参与的项目。

高优先级审查

背景:在每次会议中,比特币核心开发者都会讨论会议参与者认为在下周最需要审查的拉取请求 (PR)。其中一些 PR 与贡献者特别希望在下一个版本中看到的代码相关;另一些 PR 则会阻碍进一步的工作,或者需要进行重大维护(重新基准化)才能保持待处理状态。鼓励任何有能力的审阅者访问项目的 当前高优先级 PR 列表

讨论 (日志): 讨论了以下 PR:

  • #14532 - 默认情况下从不绑定 INADDR_ANY,并明确这样做时发出警告 by luke-jr

  • #14350 - 添加 WalletLocation 类 by promag

  • #14046 - net: 重构消息解析 (CNetMessage) by jonasschnelli

  • #14477 - 添加将可解性信息转换为描述符的功能 by sipa

  • #13932 - PSBT 的附加实用程序 RPC by achow101

  • #14437 - 重构:开始将钱包与节点分离 by ryanofsky

  • #14336 - net: 实现轮询 by pstratem

非 HD 钱包测试

背景:比特币核心在 0.13.0 版中 引入了对 BIP32 分层确定性钱包的支持,极大地简化了钱包备份和恢复流程。无需定期备份无形的密钥池,只需备份钱包的扩展私钥主密钥(所有钱包密钥都是从该密钥确定性地生成的)。在 0.16.0 版本之前,用户可以选择通过指定 -usehd=0 来禁用此功能。当此选项被删除时,非 HD 钱包代码路径的测试也随之删除。虽然较新版本的比特币核心不再创建非 HD 钱包,但它们仍然可以被导入。

讨论 (日志): 此主题由 luke-jr 建议。由于比特币核心不再创建非 HD 钱包,provoostenator、achow101 和 jfnewbery 指出,非 HD 版本的钱包必须打包到测试框架中。Sipa 指出测试钱包升级场景的重要性(失败模式,即在比特币核心升级或降级时备份和恢复钱包会导致不可恢复的资金损失)。

结论:应该在问题 #14536 中继续讨论各种方法。

钱包重构

背景:比特币核心钱包正在积极重构。这项工作有许多目标,其中一些目标包括:改进比特币核心的架构模块化,简化钱包的代码库并引入新功能。在这些更广泛目标中,一个项目是 输出描述符 语言。该语言在 0.17.0 版本中引入,旨在将密钥集的支出要求编码为单个字符串;这种对未花费输出进行分类的方法改进了现有的 isMine 逻辑,该逻辑的复杂性和低效率阻碍了更高级钱包功能的开发(例如支持 PSBT 兼容密钥签名协议的硬件钱包集成)。

讨论 (日志):#14565 中,Sipa 继续他的工作,彻底改变了 importmulti RPC 的逻辑,以限制多余的密钥或脚本数据被导入;这是为了支持“旧式”描述符导入,这些导入将隐式地将描述符转换为现有的钱包结构 (#14491)。Sipa 还将处理一些使用描述符而不是密钥池所需的公钥缓存准备工作。为了支持本机描述符导入,现有的密钥池/isMine 逻辑必须重构,以便位于可以由旧钱包逻辑或描述符实例化的抽象层后面。

结论:Meshcollider 将在 #14565 完成后重新基准化 #14491。此后,achow101 将在 #14491 之上重新基准化 #14075。#14705 使具有 –disable-private-keys 设置的钱包能够导入和从密钥池中获取公钥。这有助于“分离”仅观察钱包和存储私钥的钱包。如果没有此 PR,禁用私钥的钱包将不会从密钥池中获取公钥。这对作为外部签名器与比特币核心交互的硬件钱包很有用;为了支持这种用例,密钥池必须接受由硬件钱包生成的仅观察公钥的导入和检索。讨论以建议将 ryanofsky 关于他的 代码 分离 PR 的状态更新保存到第二次比特币核心钱包贡献者会议中而结束。

注意:在东京举行的 CoreDev 会议的“钱包相关内容” 会议中,建议组织一个单独的以钱包为中心的会议。在 10 月 19 日星期五 10 月 19 日,举行了第一次比特币核心钱包会议。该会议计划每隔一个星期五在协调世界时 19:00:00 举行。第二次会议于 11 月 2 日 举行。

AppVeyor 失败

背景:AppVeyor 是一项托管的持续集成服务,它为比特币核心提供 Microsoft Visual C++ (MSVC) 构建环境。在这些环境中生成的二进制文件仅用于跨平台测试目的。

讨论 (日志): 在 AppVeyor 上运行的功能测试会随机失败。这让一些贡献者感到沮丧。Sipa 请求解决此问题。

结论:有一个开放的问题 #14446,详细说明了失败类型。PR #13501 可能会减轻其中一类失败。

大家在做什么?

日志

  • jarthur:用于 RPC API 的 UNIX 域套接字。 之前的讨论开放问题
  • luke-jr:重新基准化他的 PR
  • achow101:PSBT 和硬件钱包集成
  • jnewbery:在年底之前花更多时间审查钱包 PR
  • instagibbs:审查钱包 PR 和硬件钱包集成
  • sipa:用于 P2P 网络的私有身份验证协议。 之前的讨论更多阅读(注意:已知提议的协议存在漏洞)。
  • meshcollider:钱包重构和审查

参与者

IRC 昵称 姓名/匿名
sipa Pieter Wuille
provoostenator Sjors Provoost
luke-jr Luke Dashjr
achow101 Andrew Chow
MarcoFalke Marco Falke
meshcollider Samuel Dobson
jnewbery John Newbery
instagibbs Gregory Sanders
phantomcircuit Patrick Strateman
jarthur Justin Arthur
kanzure Bryan Bishop
gwillen Glenn Willen
ryanofsky Russell Yanofsky

免责声明

此摘要是在未征求任何讨论参与者意见的情况下编写的,因此任何错误都是摘要作者的责任,而不是讨论参与者的责任。特别是,引自讨论的引文已修改其大小写、标点符号和拼写,以形成一致的句子。方括号中的词语和片段以及背景叙述和说明由摘要作者添加,可能会无意中改变某些句子的含义。如果您认为有任何引文脱离了语境,请 打开一个问题,我们将更正错误。