2015-11-12 IRC 会议总结

概述

日志

主要议题

  • 0.12 版本的交易优先级
  • 可选的替换费用功能 (Opt-in replace-by-fee)
  • 版本位 (Versionbits)
  • 链限制 (Chain limits)

0.12 版本的交易优先级

背景

每个交易都会被分配一个优先级,该优先级由输入的年龄、大小和数量决定。目前这使得一些交易可以免费。
目前这部分代码量很大,难以维护,并且不是最优的,因为你无法期望矿工包含 0 费用的交易。

会议评论

大多数人似乎都同意从内存池中移除优先级,但应该提前通知人们这一变化即将到来。
sdaftuar 提出了一个分阶段的方法,将优先级的默认值设置为 0,并在下一个版本中完全移除它。
petertodd 指出,由于并非每个人都会立即升级到 0.12,并且一些实现可能根本不会移除优先级,因此会自然地出现一个分阶段的过程。
除了比特币核心之外,大多数钱包软件都没有实现优先级计算。
随着费用估算变得越来越重要,并且许多钱包提供商使用比特币核心提供的费用估算功能,因此欢迎对该功能进行改进。
Luke-Jr 不同意移除优先级,特别是更改挖矿代码以使用交易进入内存池时的优先级。
Sipa 提出了一种想法,即将比特币销毁日数的一小部分除以平均未花费交易输出 (UTXO)年龄加到费用中,这样非垃圾邮件攻击交易就会被视为具有更高的费用。

虽然大多数人同意移除当前的优先级,但对于是否需要在 0.13 版本中替换它以及如何替换它,仍然存在很多争论。

会议结论

审查“改进费用估算代码的使用
BlueMatt 将向开发者邮件列表发送邮件,宣布这些更改。(链接

可选的替换费用功能 (Opt-in replace-by-fee)

背景

当前,当节点看到一笔花费相同输出的交易时,它会忽略它。使用替换费用功能,如果交易的费用更高,它会替换内存池中当前的交易。
这允许执行诸如花费“卡住”的交易、向交易中添加更多收件人以防止链式反应等操作。

由于有些人接受 0 确认的交易,而这将使双花变得非常容易,因此此功能被设置为可选的。
发送方可以通过更改输入中的 nSequence 字段来选择加入替换费用功能。

会议评论

Peter Todd 编写了一些用于使用替换费用功能的工具。链接
最好能够为每个输出而不是整个交易选择加入,但是这将非常难以实现,并且会带来一些隐私问题。
Luke-Jr 希望看到一个选项,可以在首次看到安全/完全替换费用和从不/可选/始终之间切换。由于“始终”切换可能存在一些异议,因此它应该是一个单独的拉取请求。

会议结论

审查并合并 基于 nSequence 的完全替换费用可选功能
Peter Todd 将向邮件列表发送一封邮件,解释其工作原理以及用户如何不接受可选交易。

## 版本位 (Versionbits)

jonasschnelli> 背景

BIP 9
目前,软分叉是通过 isSuperMajority 机制完成的,这意味着当过去 X 个区块中有 95% 的区块版本号高于 Y 时,就会部署分叉。
目前正在开发一种新的方法,它使用版本号的所有位,恰当地称为版本位。因此,分叉不是发生在版本号大于(例如)00000000011(3)时,而是发生在(例如)第 3 位为 1 时(例如 00100000011)。
这样,软分叉可以同时且独立地部署。

会议评论

有两种不同的实现。一种来自 Codeshark,另一种来自 Rusty
jtimon 认为这两种实现都比需要的复杂。
需要进行一次小幅修改,即为提案设置一个开始时间。
总的来说,我们希望尽快完成这项工作,但现有的软分叉需要先完成。

会议结论

CodeShark 为版本位添加了一个开始时间。

## 链限制 (Chain limits)

背景

在此上下文中,“链”指的是连接的交易。当你发送一笔依赖于另一笔尚未确认的交易的交易时,我们称之为交易链。矿工理想情况下会考虑整个链,而不仅仅是每笔交易(尽管据我所知,这并没有得到广泛的实现)。因此,虽然单笔交易可能没有足够的费用,但依赖交易可能具有足够高的费用,以使其值得挖掘这两笔交易。这通常被称为子交易支付父交易 (child-pays-for-parent)。
由于你可以使这些链非常大,因此有可能以这种方式堵塞内存池。
最近的延展性攻击中,任何进行多层深度交易的人都会遇到巨大的问题(在 让我们谈谈比特币 #258 从 13:50 开始有精彩的解释)。
提案GitHub 链接。

会议评论

Wumpus 对于合并它感到不舒服,因为一些超出限制(或可能超出/想要超出)的公司对此有一些争议。
jgarzik 则对此感到满意,许多人认为应该合并它,因为如果需要,它很容易恢复。
没有太多选择,因为没有限制的话,它不安全。
我们应该向用户传达替换费用功能的 sendmany 替代方案(在未确认的交易上添加新的收件人),尽管它还没有出现在用户的钱包中,并且区块浏览器可能还没有准备好正确地显示它。
强调这是一个默认值的变化,而不是共识的变化,但是默认值具有很大的影响力。
最终的限制是祖先和后代包的交易数为 25 笔,总大小为 101KB。

会议结论

jgarzik 将合并拉取请求。
Morcos 合并后将向邮件列表发送邮件。

参与者

BlueMatt        Matt Corallo  
petertodd       Peter Todd  
morcos          Alex Morcos  
jgarzik         Jeff Garzik  
gmaxwell        Gregory Maxwell  
wumpus          Wladimir J. van der Laan  
Luke-Jr         Luke Dashjr  
jtimon          Jorge Timón  
btcdrak         btcdrak  
phantomcircuit  Patrick Strateman  
sipa            Pieter Wuille  
CodeShark       Eric Lombrozo  
sdaftuar        Suhas Daftuar  
jg_taxi         jg_taxi  
gavinandresen   Gavin Andresen  
cfields         Cory Fields  
bsm1175321      Bob McElrath   

轻松一刻

19:53	sipa	new topic?  
19:53	wumpus	any other topics?  
19:53	petertodd	<crickets>  
19:53	jgarzik	did we cover jonas while I was in the taxi?  
19:54	sdaftuar	?  
19:54	jtimon	?  
19:54	CodeShark	not sure I want to know  
19:54	jgarzik  	proposal for new GUI maintainer  
19:54	CodeShark	sounds kinky, though  
19:54	petertodd	CodeShark: GUI's are pretty kinky  

19:56	BlueMatt	ok, end meeting?  
19:56	btcdrak	if we can remember the command this week :-)  
19:56	wumpus	#meetingend  
19:56	gmaxwell	#destroymeeting  
19:56	wumpus	#endmeeting  
19:56	Luke-Jr	#endmeeting  
19:56	lightningbot	Meeting ended Thu Nov 12 19:56:42 2015 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)    
19:56	BlueMatt	#magicmeetbotincantation  
19:57	petertodd	#DoWhatIMean  

鸣谢

此总结最初由 Stefan Gilis(又名“G1lius”)编写并发布到 bitcoin-discuss 邮件列表,并附有免责声明:“请记住,我不是开发者,因此有些内容可能不正确或完全错误。” 并且版权归属公共领域。