2015-12-10 IRC 会议摘要
概述
日志
主题
- BIP 68 语义更改
BIP 68 语义更改
背景
BIP 68 通过序列号进行共识强制交易替换,以及当前的 实现。
BIP 68 将先前未使用的序列号字段的含义更改为相对锁定时间。
当创建区块时,矿工会包含时间戳。这个时间戳必须介于前 11 个区块的中位数和网络调整时间 + 2 小时之间。因此,这个时间戳可能与实际时间相差很大。
随着锁定时间交易的引入,这些交易只有在某个时间之后才有效,矿工因此有动机撒谎关于时间,以便包含本应无效的锁定时间交易(及其费用)。
BIP113 允许在锁定时间交易中使用前一个区块的 GetMedianTimePast(前 11 个区块的中位数),以对抗这种行为。用户可以通过在其锁定时间中添加 1 小时(6 个区块)来弥补这种行为。
会议评论
即使不考虑 BIP113,直接为 BIP68 使用 MedianTimePast 也是合理的,尽管 BIP 113 仍然需要改变 nLockTime 的语义。实现 由 Morcos 完成。
BIP 68 会使最近在 #6898 中实现的 CreateNewBlock 性能提升失效,关于修复方案的讨论在 #7176 中进行,针对新方法(始终使用 MedianTimePast)的修复讨论和提交在 #7187 上进行。
GUI 显示当前锁定交易可能存在一些问题。如果一个区块变成孤块,一个已确认的输入变成未确认,它可能会导致内存池中删除一个先前可接受的交易,你可能需要告知用户该交易已锁定(与不可见不同)。
Morcos 建议暂时保留这个问题,并在软分叉之后进行清理,因为这个问题似乎没有重要到需要进行回滚。UI/钱包变更通常与软分叉变更分开。
顺着这条思路,morcos 提出一个问题:是否有人考虑过或反对放松内存池的当前行为,只包含对下一个区块有效的交易。btcdrak 提到了 ajtowns 为 BIP68+CSV 编写了一些 Python 演示,这对测试人员很有用。
会议结论
查看 #7184 中的 BIP68 方法。
查看 #7187 中针对上述方法的 CreateNewBlock 性能修复。
参与者
morcos Alex Morcos
btcdrak btcdrak
wumpus Wladimir J. van der Laan
BlueMatt Matt Corallo
gmaxwell Gregory Maxwell
jonasschnelli Jonas Schnelli
sdaftuar Suhas Daftuar
gavinandresen Gavin Andresen
Lightsword Lightsword
鸣谢
这个摘要最初由 Stefan Gilis(又名“G1lius”)编撰,并发布到 bitcoin-discuss 邮件列表 中,并带有免责声明:“请注意,我不是开发者,所以有些事情可能是错误的或完全错误的。”,并将版权归属于公有领域。