IRC meeting summary for 2017-03-30

概覽


註記 / 短議題

  • BlueMatt 注意到上週被封鎖和需要審查的 PR 中 6 個有 2 個被合併,可以做得更好。Wumpus 為會議中提到具有優先級的 PR 創建了一個高優先級審查 github 專案頁面。
  • 已有 11 個合併標記為 0.14.1 和 3 個開放的 PR。一旦這些進入,0.14.1 應該就可以發布了。

主要議題

  • 緩慢的單元測試
  • 處理 abortnode / ConnectTip / DisconnectTip 失敗
  • 高優先級審查

緩慢的單元測試

背景

Bitcoin Core 提供了一個 makefile 目標 check 來執行專案的單元測試。該專案隨著時間推移編寫了越來越多通過 RPC 介面執行的整合測試,這些測試由 Travis 持續整合(CI)伺服器自動執行,該伺服器測試每個 Bitcoin Core pull request,可以通過執行 qa/pull-tester/rpc-tests.py 手動執行

如先前在 2017-03-16 會議中討論的,這些測試作為整體目前可能需要太長時間。

會議意見

Wumpus 製作了一個最慢單元測試的概覽。其中一些已經被處理或有 PR 使它們更快。

我們也可以為單元測試引入一個 -extended 模式,它會進行額外徹底的測試,不應該每次都執行。擴展模式應該是發布程序的一部分(並由 gitian 執行)和/或在 master 上每天執行一次。

Jonasschnelli 有一個具有良好網頁 UI 的建置伺服器,每天在 https://bitcoin.jonasschnelli.ch/ 進行 gitian 建置。

Jnewbery 注意到 Travis CI 服務目前失敗,因為我們將其設定為每天執行一次擴展測試,所以我們正在清除所有一直在 Travis 上失敗的擴展測試。一旦 PR #10114#10072 被合併,這些每日執行應該會通過 Travis。

會議結論

  • 對於標準 make check,每個測試案例的準則是最多約 1 秒,對於具有更廣泛測試的單元測試有一個擴展模式。

處理 abortnode / ConnectTip / DisconnectTip 失敗

背景

Sdaftuar 有一個開放的 PR(#9208),它改進了鏈重組後的效能,其中節點發現一個新的最長有效鏈,排除了先前被認為是最長有效鏈的區塊(將被孤立)。目前我們試圖將每個孤立區塊的交易加回到記憶池,即使這些交易中的許多可能會在新發現的區塊中重新出現。#9208 將這些交易儲存在單獨的「斷開連接池」中以供稍後處理。

會議意見

BlueMatt 提出了當 ConnectTip 或 DisconnectTip 回傳 false 時的一些邊緣情況,我們現在 assert() 而不是 AbortNode()。對於何時使用 AbortNode() 以及何時使用 Abort()/assert(),以及通知使用者發生錯誤的最佳方式,進行了一些更廣泛的討論。AbortNode() 允許我們以訊息退出以通知使用者,所以理想情況下只有關鍵錯誤才應導致 Abort()/Assert()。

會議結論

  • 將 AbortNode() 重新命名為 ShutdownSoon(),並確保磁碟損壞使用不同的東西。

高優先級審查

所有標記為 0.14.1 的 PR 應該有優先級

Sipa 補充說,他希望看到 #9792(FastRandomContext 改進和切換到 ChaCha20)在某個時候進入,以進一步移除對 OpenSSL 的依賴。

Gmaxwell 提議重新開啟他的 PR #9424,它將記錄類別更改為布林旗標而不是字串。這將使像 #10123 這樣的 PR 更容易使用,它允許你從除錯記錄中排除某些元件。Cfields 補充說,他想為網路訊息做類似的事情。

幽默時刻

wumpus             if BlueMatt can make it work faster that's great, but don't silently kill the program on every error
gmaxwell           wumpus: how about every other error?

9:48  BlueMatt     so maybe the solution is AbortNode gets renamed to ShutdownSoon() and use make sure disk corruption is something different?
...
9:53  BlueMatt     <BlueMatt> so maybe the solution is AbortNode gets renamed to ShutdownSoon() and use make sure disk corruption is something different?
...
9:57  BlueMatt     ok, soooo, acks on:<BlueMatt> <BlueMatt> so maybe the solution is AbortNode gets renamed to ShutdownSoon() and use make sure disk corruption is something different?
9:58  jeremyrubin  BlueMatt: maybe if you paste it again
9:58  BlueMatt     jeremyrubin: ok, <BlueMatt> ok, soooo, acks on:<BlueMatt> <BlueMatt> so maybe the solution is AbortNode gets renamed to ShutdownSoon() and use make sure disk corruption is something different?

jtimon             it seems it's time to abort the meeting
wumpus             #endmeeting
BlueMatt           wumpus: we need to change that to #abort()
gmaxwell           But I wanted to cleanly flush!

參與者

IRC nick Name/Nym
gmaxwell Gregory Maxwell
wumpus Wladimir van der Laan
jonasschnelli Jonas Schnelli
sipa Pieter Wuille
BlueMatt Matt Corallo
jtimon Jorge Timón
cfields Cory Fields
achow101 Andrew Chow
jeremyrubin Jeremy Rubin
sdaftuar Suhas Daftuar
MarcoFalke Marco Falke
jnewbery John Newbery
morcos Alex Morcos
instagibbs Gregory Sanders
Chris_Stewart_5 Chris Stewart

免責聲明

本摘要是在沒有任何討論參與者輸入的情況下編寫的,因此任何錯誤都是摘要作者的責任,而非討論參與者。