2016-01-14 IRC 会议纪要

概述

日志

主要议题

  • 版本位
  • 隔离见证的现状
  • 0.12 比特币核心版本的现状
  • 共识代码封装 (libconsensus)
  • 锁定时间 PR

版本位

背景

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

会议评论

Morcos 志愿接替 CodeShark 和 Rusty 担任该提案的维护者,因为他们目前忙于其他事情。他将审查两种实现方式,然后决定将他的工作建立在哪个实现方式之上。
他指出,如果非核心实现试图做其他事情(并且正在使用 nVersion 进行他们的信号),而隔离见证正在部署,那么避免冲突非常重要,以便其他版本的使用者也可以支持隔离见证。
如果大家同意这种方法,那么有必要在隔离见证部署之前准备好版本位。
jtimon 提出了一些建议,使实现更简单、更灵活。

会议结论

Morcos 将担任 BIP9:版本位 新参考实现的维护者。

隔离见证的现状

背景

隔离见证改变了交易的结构,使签名可以与交易的其余部分分离。这允许在中继时节省带宽,修剪旧签名,通过引入脚本版本对所有未来的脚本更改进行软分叉,并解决所有非故意的可塑性形式。在最近的比特币规模扩展会议上,Pieter Wuille 提出了一种通过软分叉实现此目标的方法,并建议通过将签名数据从总块大小中扣除来增加块中交易的最大数量。
隔离见证是 比特币核心容量增加路线图 的一部分。
更详细的解释

会议评论

Segnet 是隔离交易的测试网,它很快将进入第三个版本。
Luke-Jr 将所有隔离见证 BIP 分配到 14x 范围内。目前有 4 个 BIP:141142143144

0.12 比特币核心版本的现状

背景

比特币核心 0.12 计划在 2 月左右发布,其中包含许多修复和改进。(版本说明
发布候选版本 0.12rc1 可在 https://bitcoin.org/bin/bitcoin-core-0.12.0/test/ 下载。

会议评论

Luke-Jr 认为 PR #7149#7339#7340 应该包含在 0.12 中,但现在已经很晚了,可能无法实用地加入。
对于 gitian 构建者:0.12rc1 的 osx 签名附加描述符由于缺少一个包(实际上并不需要)而失败。与其使用树内描述符,不如使用 #7342 中的描述符。这在 rc2 中得到了修复。
应该在版本说明中添加 “fundrawtransaction” 和 “setban”。在某个时间点,将这些命令记录在其他地方并在版本说明中链接到它更有意义,因为它们变得非常冗长。
Wumpus 认为版本说明包含了过多的细节,它们不是文档的替代品。

会议结论

关闭 PR #7142,因为它现在是 #7148 的一部分。
每个人都可以自由地改进版本说明,只需提交 PR 即可。

共识代码封装 (libconsensus)

背景

中本聪并不是最好的程序员,这导致代码非常混乱。理想情况下,你会将影响网络共识的那部分代码分开,但在比特币中,它们都是交织在一起的。
Libconsensus 最终应该成为这部分代码。这样,人们就可以更轻松地更改非共识部分,而无需担心会导致网络分叉。
然而,这是一个缓慢而危险的过程,需要移动大量代码。

会议评论

jtimon 有 4 个与 libconsensus 相关的 PR 开放,分别是 #7091 #7287 #7311#7310
他认为,在合并类似于 #7310 的内容之前,任何 “大图分支” 都会非常难以阅读。
他目前拥有的最长的 “大图分支” 是 https://github.com/jtimon/bitcoin/commits/libconsensus-f2
他将逐步记录计划和 “大图”。

  1. 给 libconsensus 起个名字:公开 verifyScript。(已完成)
  2. 将其余的共识关键代码(不包括存储)放在同一个构建包中(见 #7091)
  3. 讨论 libconsensus 的完整 C API
  4. 将其分离到一个子仓库中
    Wumpus 指出他希望尽快开始使用第 3 步,因为 API 将有助于指导这一过程。

会议结论

审查 #7091 #7287 #7311#7310

锁定时间 PR

背景

BIP 68 通过序列号对共识强制的交易替换进行信号。
BIP 112 CHECKSEQUENCEVERIFY。
BIP 113 中值时间过去作为锁定时间计算的终点。简而言之:BIP 68 改变了序列号字段的含义,使其成为相对锁定时间。BIP 112 使该字段可供比特币脚本系统访问。BIP 113 允许在锁定时间交易中使用前一个区块的 GetMedianTimePast(前 11 个区块的中值)。

会议评论

我们需要在两种实现方式之间做出选择,分别是 #6312#7184
PR #7184 是因为 CreateNewBlock 优化与 #6312 不兼容而产生的结果。
jtimon 认为它可以很快合并,因为 #7184 基于 #6312,后者已经经过了大量的测试和审查。

会议结论

为了支持 #7184,关闭 #6312
Morcos 将修复 #7184 上未解决的 nit。
btcdrak 将更新 BIP 文本。

参与者

wumpus			Wladimir J. van der Laan  
btcdrak			btcdrak  
morcos			Alex Morcos  
jtimon			Jorge Timón  
Luke-Jr			Luke Dashjr  
MarcoFalke		Marco Falke  
jonasshnelli	Jonas Schnelli  
cfields			Cory Fields  
sipa			Pieter Wuille  
kanzure     	Bryan Bishop  
droark			Douglas Roark  
sdaftuar		Suhas Daftuar   
Diablo-D3   	Patrick McFarland  

漫画缓解

19:54	wumpus			#meetingstop  
19:54	wumpus			#stopmeeting  
19:54	btcdrak			haha  
19:54	MarcoFalke		#closemeeting  
19:54	wumpus			#endmeeting  
19:54	lightningbot`	Meeting ended Thu Jan 14 19:54:26 2016 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)

致谢

本纪要最初由 Stefan Gilis(又名 “G1lius”)编写,并发布到 比特币讨论邮件列表,并附有免责声明 “请记住,我并不是开发者,因此某些内容可能不正确或完全错误”,并将其版权置于公有领域。