2017-04-27 IRC 会议摘要
概述
笔记 / 短主题
- BlueMatt 准备了一个 PR,这是 libconsensus 的又一步。它在 validation.cpp 中添加了一个 CChainState 类,用于保存 mapBlockIndex chainActive 等内容。
主要议题
- HD 钱包自动恢复
- NODE_NETWORK_LIMITED
- bitcoind 过期
HD 钱包自动恢复
背景
比特币核心从 0.13 版本开始就拥有分层确定性钱包 (HD 钱包/BIP32)。HD 钱包是一种从称为“种子”的单个起点派生所有密钥的系统。这允许用户只需备份一次钱包,所有未来生成的密钥都可以在种子基础上重新生成。
为了加快审查和部署速度,比特币核心中的第一个 HD 钱包版本很简单,没有太多花哨的功能。现在,新的功能正在被添加到钱包中,比如这个 HD 钱包自动恢复,它确保钱包在与节点同步时始终检查密钥池,并且它搜索的未使用密钥数量足够大。
会议评论
Jonasschnelli 是 PR 的作者,他有一些问题需要讨论。他想知道我们是否应该始终尝试恢复资金,或者检查钱包的最佳查看区块,并将其与节点的最新区块进行比较,然后才恢复。他认为我们应该只有在最佳查看区块落后时才恢复,因为加密钱包可能需要解锁才能生成新的密钥,而且出于性能原因,Achow101 认为,当 GUI 弹出时,如果需要生成更多密钥,可以提示用户。但是,它也应该在命令行界面中工作,而命令行界面更难以解决。BlueMatt 建议在密钥池足够小的情况下停止更新最佳查看区块,并在钱包解锁且密钥池扩展时从该高度重新扫描。Sipa 指出,修剪节点也需要停止修剪。
另一个问题是密钥池中的差距限制应该有多大。目前是 100,但这似乎太低了。当前的瓶颈是派生时间,这是 Berkeley DB 刷新导致的问题。修复 Berkeley DB 问题将导致巨大的改进,并将允许将密钥池提升到 1000 或 10000 左右。
会议结论
- 始终扫描密钥池并检查密钥池是否足够大
- 将密钥池和差距限制扩展到 500+
- 对于加密钱包:暂停钱包同步,直到它被解锁
- 对于加密的修剪节点:也暂停完整节点
NODE_NETWORK_LIMITED
背景
目前,修剪节点不会宣传自己拥有任何区块,因此它们不会向其他对等节点提供任何区块。随着区块链大小的不断增长,未来修剪节点的数量可能会增加。
关于这个问题的先前讨论得出结论,要使用两个服务位,用于 144 个区块和大约 1000 个区块。Jonasschnelli 建议发送一条消息来宣传修剪节点,这些节点转发并能够提供最后 144 个区块(一天的区块),即 NODE_NETWORK_LIMITED
。
会议评论
关于此主题的先前讨论得出的结论是使用两个服务位,用于 144 个区块和大约 1000 个区块。
唯一要讨论的是我们需要在哪里进行截断,因为它应该至少高出几个区块,因为重组/边界。Gmaxwell 建议使用现有的修剪最小值 288 个区块。
Jonasschnelli 认为我们应该允许当前设置了 prune=550
(550 MB,这是最小值)的修剪对等节点发出转发信号和最新区块周围的有限数量的区块(10 个),因为这将通过不必提供历史区块来降低带宽需求。Gmaxwell 指出,还有其他方法可以限制带宽,而且我们没有信号空间来发送每个区块转发变体。此外,还发生了超过 10 个区块深度的重组(例如 BIP50),因此,如果所有对等节点只提供 10 个区块,这将导致许多问题。
会议结论
- Jonasschnelli 将开始编写两个位 NODE_NETWORK_LIMITED 的规范草案
bitcoind 过期
背景
Luke-jr 提议 让 bitcoind 和 bitcoin-qt 在 7-8 年没有更新后过期。因为据推测,在 7 年内,该软件将变得过时,因为软分叉甚至硬分叉会使其变得不安全,同时在这一时期内也会出现漏洞。
它还会在某种程度上确定旧节点将在截止日期前结束,使任何硬分叉变成软分叉,前提是它在 8 年前就已计划好。
会议评论
Luke-jr 澄清说,它有一个明确允许的覆盖,因此,如果人们想要的话,他们可以在过期日期后使用该软件。
Petertodd 认为,任何时间框架,只要足够短以真正有用,就可能足够短以引发政治风险。
BlueMatt 和 Wumpus 认为,让节点拒绝启动,并显示一条包含覆盖标志的消息,这将更加合理,尽管在该时间范围内差别不大。这将更容易实施,并且不太容易出错。
会议结论
- 会议结束后,讨论仍在继续,但没有达成一致。
高优先级审查
- BlueMatt 建议为 Morcos 添加 #10199(更好的手续费估计),他无法参加会议。
- Sipa 想要交换 #10148(使用区块重放进行非原子刷新),它需要更多测试,与 #10195(将 chainstate 数据库和缓存切换到每 txout 模型)交换。
- CFields 希望看到 #10285(重构)被整合,它并不紧急,但它是通往 Libevent 的漫长道路上的第一步。
幽默
wumpus #topic libconsensus (BlueMatt)
BlueMatt yes, so obviously this is all based on #771
jonasschnelli (19 Jan 2012)
wumpus archeology?
gmaxwell I think in the future we'll change it to a limited set of options.
gmaxwell Maybe all of them named after words for big in different languages, like starbucks. :P
sipa gmaxwell: "For me a venti depruned node, please"
BlueMatt sipa: I'm sorry, I dont speak starbucks
sipa BlueMatt: venti is italian for 20. easy. that's obviously more than "grande" or "tall"
BlueMatt sipa: ehh, I'll stick with my *good* coffee, thanks
wumpus heck my nodes do nothing imporant and even I have a one-liner script that sends me a mail on crash or unexpected exit
sipa my node does something important, and i have a 0-line script that sends me an mail on crash (= people mail me that my website stopped updating)
sipa hides
BlueMatt has a feeling sipa's approach is more common
参与者
IRC 昵称 | 姓名/匿名 |
---|---|
wumpus | Wladimir van der Laan |
jonasschnelli | Jonas Schnelli |
sipa | Pieter Wuille |
cfields | Cory Fields |
luke-jr | Luke Dashjr |
kanzure | Bryan Bishop |
gmaxwell | Gregory Maxwell |
BlueMatt | Matt Corallo |
instagibbs | Gregory Sanders |
jtimon | Jorge Timón |
petertodd | Peter Todd |
achow101 | Andrew Chow |
免责声明
此摘要是在没有讨论参与者任何意见的情况下编写的,因此任何错误都是摘要作者的过失,而不是讨论参与者的过失。