2018-05-24 IRC 会议摘要

概述


本次周会上讨论的主题包括:在生成 0.16.1 版本的第一个候选版本之前需要解决哪些问题,是否应该将交易中继延迟一段时间以潜在地提高支出者的隐私,如何存储比特币核心 GUI 和守护进程内部设置,以便这两个程序都可以访问它们,以及比特币核心是否应该添加扫描 UTXO 集的功能,即使在将来(假设地)可能不会以可扫描的形式存储 UTXO 集。

[需要做什么] 0.16.1

背景: 比特币核心贡献者正在努力发布比特币核心 0.16.1,这是一个包含错误修复和次要改进的维护版本

讨论 (日志): Wladimir van der Laan 提出了这个话题,并直接讨论了需要做的事情,似乎是对拉取请求 (PR) #13317 进行审查。关于是否应该优先考虑与 0.16.1 无关的 PR,Van der Laan 反对:“我认为我们现在应该专注于 0.16.1;我们将在下周重新处理其他高优先级的事情。”

提出了两个 PR 用于回溯,#12172#12431,但两者都被认为有问题或不必要,所以没有被采纳。

结论:鼓励审阅者查看 #13317

每个网络组的随机延迟以混淆交易时间

背景:许多年前,当比特币软件收到交易时,它会立即尝试将其转发给其他对等节点。这使得交易分析机构可以连接到大量节点,并假设他们收到的第一个交易公告的节点可能就是创建交易的节点(或者至少是第一个中继交易的节点之一)。在比特币 0.2.10 版本中,添加了一个功能,导致节点在将新交易中继给不同的对等节点组之前等待不同的时间;这导致交易在网络中的传播更加不可预测,从而提高了支出者的隐私。随后的版本改进了此基本功能。

PR #13298 描述了一种可能的对上述方法的反击:交易分析机构多次连接到每个节点,增加了他们更早而不是更晚地收到交易的可能性,从而增加了他们收到的第一个交易节点是其原始发件人的可能性。同一个 PR 还提供了一种方法,通过将随机延迟基于网络组(大块 IP 地址)而不是单个节点,而不是单个节点,来使对分析机构的多重连接更加昂贵,因此分析机构需要获取特定 IP 地址范围以获得相同的成为早期接收者的机会。

讨论 (日志): Pieter Wuille 要求讨论这个主题,并描述了他想看到的:“我想简要地提出 #13298 […] 它对 P2P 交易中继可能产生重大影响,它需要超越“代码是否有效”的审查。但它也仅仅是本地策略,不是需要 BIP 的东西 [我个人认为]。也许没有太多需要说的,[我只是] 希望让人们思考一下。”

对 P2P 交易中继可能产生的重大影响是将交易(而不是区块)从其源对等节点传播到 90% 或更多其他节点所需的时间延长。

结论:没有讨论,只建议审阅者访问 PR,考虑其影响,并提供任何建议的意见。

GUI 修剪设置和可写配置文件

背景:比特币核心提供命令行选项和用户可编辑的配置文件 (bitcoin.conf),但它也允许用户在图形用户界面 (GUI) 中更改一些相同的设置。目前,这两组设置存储在不同的位置,因为 GUI 无法更改配置文件(在某些系统中,它是只读的,在所有情况下它可能包含用户注释和格式,自动配置编辑器可能会破坏这些注释和格式)。但是,这会造成几个问题,即用户在一个地方更改设置,而设置在另一个地方意外地应用或不应用。最新共享设置的例子是 PR #13043,它在 GUI 中添加了控制先前可从命令行和配置文件中获得的修剪的功能。

讨论 (日志): Sjors Provoost 要求讨论这个主题,并提出了三种解决方案来解决不同比特币核心程序之间共享设置的存储位置问题

  1. “忽略问题。” 继续使用当前系统。

  2. “走可写配置文件路线。”(讨论稍后将详细介绍。)

  3. “以不同方式解释缺少 prune= 设置。” 将配置文件中指定的选项优先于 GUI 中配置的选项。

Provoost 补充道:“如果我们选择 [选项] 2,那么我想提名 [PR] #11082 优先审查。” 该 PR 添加了一个新的 bitcoin_rw.conf 文件用于存储软件修改的设置。与 Qt 设置不同,该文件可以在比特币核心的守护程序和 GUI 之间共享,并且该文件将被明确标记为不打算支持注释、基于空格的格式化以及其他方便人类编辑的功能。

Jonas Schnelli 抱怨道:“我们想要四 (!) 级配置吗?Conf[iguration file] <-> startup [command line interface parameters] <-> Qt Settings <-> level 4 [bitcoin_rw.conf]。”

Provoost 解释道:“我也想完全摆脱 Qt 设置 […] 我写了一个从 QTSettings 迁移的 [PR] #12833。” Schnelli 对这个选项感到满意,并说:“感谢 [Provoost] 为此付出的努力!”

Gregory Sanders 建议:“用户基本上可以迁移到 [bitcoin_rw.conf],除非他们需要只读。” Wladimir van der Laan 反驳道:“嗯,bitcoin.conf 用于人类编辑;[bitcoin_rw.conf] 是机器可写的,所有注释都将被丢弃,等等……”

结论:没有明确的结论;会议参与者似乎赞成继续创建 bitcoin_rw.conf 来存储软件修改的设置。关于目前开放的修改设置的 PR 是否应该等待 bitcoin_rw.conf 可用后再合并,还是应该使用现有的次优 Qt 设置机制,存在一些未解决的讨论。

ScanTxOutSet RPC 命令

背景:比特币核心软件维护一个每个未花费交易输出 (UTXO) 的键值数据库——也就是说,每个可花费的比特币组以及花费它们需要满足的条件。该数据库并非为一次由多个程序访问而设计,并且不是 API 稳定的,这意味着其他程序无法轻松读取它,因此目前没有方便的方法让其他程序从 UTXO 集中检索信息。

讨论 (日志): Jonas Schnelli 要求讨论这个主题,并介绍了它:“Pieter Wuille 对 [PR #12196 中提议的] scantxoutset 命令表示担忧。在继续 [PR] #12196 之前,我们可能需要讨论它是否有意义 […]. 扫描功能允许 UTXO 扫荡 (rawsweeptransaction),无需扫描区块。您可以传入 n 个公钥/地址,甚至 [HD 钱包扩展公钥],以及查找窗口,它会返回所有未花费的 [输出](甚至是一个 rawsweeptransaction 到单个地址)。”。

Wuille 描述了他的担忧,“我只是提到,我们最好不要承诺使用将来难以维护的功能。[例如,在可能的未来中] UHF 模型,在没有索引的情况下实现 UTXO 集的扫描需要遍历整个区块链。” [注意:讨论中称为“UHF”的东西在其他地方被称为“UHS”;请参见 链接]。

Johnathan Corgan 建议:“如果我们想鼓励人们将 bitcoind 视为“真实来源”,而不是自己备份东西,那么让他们更容易访问“数据库”将有所帮助。”

Wuille 承认这个问题“不太让人担心 [因为现在更容易] 通过 [Jim Posen 的] 背景索引工作添加可选索引。以前,新的索引总是需要在验证代码中进行丑陋的修改。”

结论:“这变成了一场哲学讨论,”Wuille 在讨论结束时说道。没有明确的结论,但似乎如果添加了 scantxoutset RPC 或类似的 RPC,可能会在发行说明中添加一个警告,说明在将来可能需要启用可选索引。

幽默

[...Things start to break...]
     <mquin> [Global Notice] [...] There are ongoing issues with
             services that are being looked into - please bear
             with us
      <sipa> fun.
<instagibbs> err what
    <wumpus> services massacre
   <cfields> irc unicorns...
             let's move to slack!
             (/s)
    <wumpus> :-(

参与者

IRC 昵称 姓名/匿名
wumpus Wladimir van der Laan
jonasschnelli Jonas Schnelli
sipa Pieter Wuille
provoostenator Sjors Provoost
jcorgan Johnathan Corgan
jimpo Jim Posen
achow101 Andrew Chow
MarcoFalke Marco Falke
instagibbs Gregory Sanders
cfields Cory Fields
jamesob James O’Beirne
jtimon Jorge Timón
echeveria Echeveria
jnewbery John Newbery
promag Joao Barbosa
kanzure Bryan Bishop
Murch Mark Erhardt

免责声明

本摘要是在未经讨论参与者任何输入的情况下编写的,因此任何错误都是摘要作者的责任,而不是讨论参与者的责任。特别是,从讨论中摘录的引文,其大小写、标点符号和拼写已进行修改,以产生一致的句子。作者添加了括号内的词语和片段,以及背景叙述和说明,这些可能会意外地改变某些句子的意思。如果您认为任何引文脱离了上下文,请提交问题,我们将更正错误。