IRC meeting summary for 2018-05-17

概覽


本週會議討論的主題包括:會議參與者最希望看到審查的拉取請求、在產生版本 0.16.1 的第一個候選版本之前需要解決的問題、專案是否應該離開 GitHub、一個為將節點程式碼與錢包程式碼分離鋪平道路的 PR 的審查請求,以及一個潛在的新 P2P 協定訊息以更好地處理未驗證區塊的轉發。

高優先級審查

背景: 每次會議,Bitcoin Core 開發者都會討論哪些拉取請求(PR)是會議參與者認為在接下來一週最需要審查的。其中一些 PR 是貢獻者特別希望在下一個版本中看到的程式碼相關;其他則是阻礙後續工作的 PR,或需要大量維護(重新基底)才能保持在待處理狀態的 PR。鼓勵任何有能力的審查者前往專案的目前高優先級 PR 列表

討論(記錄): 具體討論的 PR 包括:

  • #12254 BIP 158:輕量客戶端的緊湊區塊過濾器

  • #12196 新增 scantxoutset RPC 方法

  • #13142 將 IsMine 與可解決性分離

  • #12979 為輔助索引建立可重複使用的基類

此外,Wladimir van der Laan 表示擔心列表變得相當長。

0.16.1

背景: Bitcoin Core 開發者已開始準備一個新的 0.16.1 維護版本,其中包含錯誤修復和重要功能的向後移植。

討論(記錄): Wladimir van der Laan 提出了這個主題,並簡要概述了仍需完成的工作:

  1. [0.16] 進一步向後移植(#13253)。 需要更多審查。

  2. 0.16.0 bitcoin-qt:啟動期間「斷言 `copyFrom 失敗」(#13110)。 Van der Laan 說他「為[此]提出了修復方案,顯然有效。」

  3. 重新掃描期間的斷言失敗(#12646)。 Jonas Schnelli 建議推遲,Van der Laan 同意。它被重新定向到 0.16.2。

  4. 0.16 關閉斷言(#12337)。 Schnelli 正在調查此問題。

結論: 「我們只需要完成向後移植並為 0.16.1RC1 標記,」Matt Corallo 說。

放棄 GitHub

背景: 超過 6 週以來,經過高度審查的 Bitcoin Core PR 在 GitHub 上的網頁經常無法載入,審查者看到的是一隻憤怒的獨角獸插圖。不同的人已經多次向 GitHub 支援報告了這個問題,但尚未解決。

討論(記錄): Matt Corallo 提出了這個主題並介紹說:「它一直沒有正常工作 […],我有點想要自行託管並擁有更好的審查工具,我知道很多人都想要。」

Pieter Wuille 和 Wladimir van der Laan 建議 GitLab 是一個替代方案,Corallo 接受但指出:「儘管 GitLab 似乎沒有比 GitHub 更好的審查工具。」

Suhas Daftuar 擔心「在我看來,自己託管更難做到正確。」Van der Laan 也有同樣的擔憂,「誰來照顧這個、監控它並應用安全修補程式等…?」

Cory Fields 補充說:「一般反對:撇開自行託管的問題不談,GitHub 的網路效應太強[我認為]。我不可能是唯一一個當我想要玩的程式碼在 BitBucket 上時會感到不理性沮喪的人。」Van der Laan 同意:「是的,只有[大型]玩家如 FreeDesktop 才能真正負擔得起在獨立基礎設施上託管;對於較小的專案,缺乏網路效應(並且必須單獨註冊)是不好的。」John Newbery 也同意。

談到他希望在 GitHub 替代品中看到的功能,Corallo 希望有一種命令列方式來「驗證,例如,對評論的 PGP 簽章。」這樣,如果有人入侵儲存庫網路服務以在 PR 上偽造 ACK,可以在合併之前檢測到。

Jim Posen 和 Steve Lee 提供幫助從 GitHub 獲取有關該問題的更多資訊。Bitcoin Core 專案不是唯一遭受此問題的專案,Corallo 說「一些其他專案正在發布他們收到的回應,其中 [GitHub 支援說]『我們實際上不知道我們做了什麼變更觸發了這些問題,稍等。』但那是三週前的事了。」

結論: Corallo 決定目前對這個想法的反對太多,所以「我不會花時間調查它。」Van der Laan 總結說:「我認為在有人建立可行的替代方案並向我們展示它更好之前,實際上沒有任何機會有任何東西取代 GitHub。」

會議後: 會議結束後大約一天,Jonas Schnelli 收到了 GitHub 產品經理 Ben Balter 的訊息,說 GitHub「已經確定了根本原因,並正在進行修復。」

將錢包從節點分離

背景: Bitcoin Core 的全節點實作、錢包和圖形使用者介面(GUI)目前都作為單一程序執行(儘管錢包和 GUI 可以停用)。這意味著,例如,如果你關閉 GUI,你也會停止節點。將這些不同部分拆分為獨立程序以便它們可以彼此獨立運作一直是幾位貢獻者的長期目標。

討論(記錄): John Newbery 提出了這個主題並介紹說:「#10973 是一個大的 PR,但我認為它非常值得,[…] 但它需要持續的重新基底。[…] 我認為在這個問題上取得一些進展會很棒。」

Wladimir van der Laan 擔心高優先級審查佇列太大:「哦,不,不要更多高優先級審查。它阻礙了什麼嗎?對 0.17 重要嗎?無論如何,程序分離不是我們 0.17 會有的東西。」

此 PR 的作者 Russell Yanofsky 提議將前六個提交拆分到單獨的 PR 中,以便可以獨立於後面的提交進行審查,從而縮小 PR 的大小,並希望使其更容易審查。

結論: 隨著 Yanofsky 提議拆分 PR 以及幾位貢獻者提供在下週審查它,Newbery 結束了主題。

未驗證區塊訊息

背景: BIP152 緊湑區塊轉發引入了高頻寬模式,節點可以在完成驗證該區塊之前向其對等點發送關於新區塊的資訊。如果節點確實完成了驗證區塊並發現區塊無效,但對等點無論如何都請求整個區塊,目前沒有辦法讓節點告訴其對等點它沒有有效的區塊可以發送給它們。目前,在這種情況下,對等點最終會因為未能發送請求的區塊而與節點斷開連線。

討論(記錄): Matt Corallo 提出了這個主題,並透過描述問題的兩個潛在解決方案來介紹它:

  1. 節點告訴請求的對等點它拒絕轉發區塊。

  2. 節點向對等點提供請求的區塊,證明它具有有效的區塊標頭(如 BIP152 所要求),但也將其標記為可能無效。

Pieter Wuille 建議現有的 notfound 訊息可能可以重複使用,作為實作第一個提議解決方案的一部分。

Suhas Daftuar 反對重複使用 notfound 訊息,贊成第二個提議的解決方案:「我認為 notfound 更糟,因為在區塊可能尚未驗證的情況下。」Wladimir van der Laan 同意應該使用新訊息「如果沒有特定原因重複使用 notfound,新訊息要好得多。」

結論: Corallo 仍在考慮選項,但認為「問我很好。顯然[實際解決方案]需要一個 BIP 和其他東西。」

其他主題

會議僅剩幾分鐘時,Matt Corallo 提出了一個標題為「佇列排空鎖定斷言以避免死鎖」的主題,但沒有足夠的時間討論該主題,Corallo 說:「我現在意識到我應該只開一個 PR,人們會看到它,[因為]描述起來有點複雜。」

幽默時刻

<BlueMatt> trashing github
<BlueMatt> or we could switch to gitlab
    <sipa> let's move back to sourceforge
<sdaftuar> i think we could just add a new BLOKC response type
           BLOCK_COULDBEBAD
    <sipa> 0xDEADB10C
  <wumpus> hehe

參與者

IRC 暱稱 姓名/化名
BlueMatt Matt Corallo
wumpus Wladimir van der Laan
sipa Pieter Wuille
jonasschnelli Jonas Schnelli
jnewbery John Newbery
jtimon Jorge Timón
jimpo Jim Posen
sdaftuar Suhas Daftuar
cfields Cory Fields
MarcoFalke Marco Falke
jamesob James O’Beirne
promag Joao Barbosa
moneyball Steve Lee
ryanofsky Russell Yanofsky
kanzure Bryan Bishop

免責聲明

本摘要是在沒有討論參與者任何輸入的情況下編譯的,因此任何錯誤都是摘要作者的責任,而不是討論參與者的責任。特別是,從討論中摘錄的引言的大小寫、標點符號和拼寫已被修改以產生一致的句子。方括號中的單詞和片段,以及背景敘述和說明,都是由本摘要的作者新增的,可能不小心改變了某些句子的含義。如果你認為任何引言被斷章取義,請開啟一個議題,我們將更正錯誤。