2018-11-01 IRC 會議摘要

概覽


本週貢獻者會議涵蓋的主題包括提名高優先級審查的拉取請求、非 HD 錢包程式碼路徑缺少測試、錢包重構進度審查以及 AppVeyor CI 執行的測試產生的偽造失敗。在會議結束時,鼓勵貢獻者分享他們正在積極參與的專案。

高優先級審查

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

討論(日誌): 討論了以下 PR:

  • #14532 - 預設情況下永不綁定 INADDR_ANY,明確執行時發出警告,作者 luke-jr

  • #14350 - 新增 WalletLocation 類別,作者 promag

  • #14046 - net:重構訊息解析(CNetMessage),作者 jonasschnelli

  • #14477 - 新增將可解性資訊轉換為描述符的能力,作者 sipa

  • #13932 - PSBT 的額外實用 RPC,作者 achow101

  • #14437 - 重構:開始將錢包與節點分離,作者 ryanofsky

  • #14336 - net:實作 poll,作者 pstratem

非 HD 錢包測試

背景: Bitcoin Core 在 0.13.0 中引入了對 BIP32 階層確定性錢包的支援,大大簡化了錢包備份和恢復過程。使用者可以對錢包的擴展私鑰主金鑰(錢包中的所有金鑰都從中確定性生成)進行一次備份,而不是定期備份無定形的金鑰池。在 0.16.0 版本之前,使用者可以透過指定 -usehd=0 來選擇停用此功能。當刪除此選項時,非 HD 錢包程式碼路徑的測試也被刪除了。雖然較新版本的 Bitcoin Core 無法再建立非 HD 錢包,但仍然可以匯入它們。

討論(日誌): 此主題由 luke-jr 建議。由於 Bitcoin Core 不再建立非 HD 錢包,provoostenator、achow101 和 jfnewbery 提到,非 HD 版本的錢包必須打包到測試框架中。Sipa 指出了測試錢包升級場景的重要性(在 Bitcoin Core 升級和/或降級時正在備份和恢復的錢包的失敗模式可能導致資金無法恢復的損失)。

結論: 應在 issue #14536 中繼續討論各種方法。

錢包重構

背景: Bitcoin Core 錢包正在積極重構。這項工作有多個目標,其中包括:改進 Bitcoin Core 的架構模組化、簡化錢包的程式碼庫和引入新功能。這一更廣泛目標集中的一個專案是輸出描述符語言。此語言在 0.17.0 中引入,旨在將金鑰集的支出要求編碼為單個字串;這種分類未花費輸出的方法改進了先前存在的 isMine 邏輯,其複雜性和效率低下阻礙了更高級錢包功能的開發(例如,支援與 PSBT 相容的金鑰簽名協定的硬體錢包整合)。

討論(日誌):#14565 中,Sipa 繼續他的工作,改進 importmulti RPC 的邏輯,以限制多餘的金鑰或腳本資料被匯入;這對於支援「舊式」描述符匯入是必要的,這些匯入會隱式地將描述符轉換為現有的錢包結構(#14491)。Sipa 還將處理使用描述符而不是金鑰池所需的一些公鑰快取準備工作。為了支援原生描述符匯入,現有的金鑰池/isMine 邏輯必須重構為可以由舊錢包邏輯或描述符實例化的抽象層之後。

結論: Meshcollider 將在 #14565 完成後重新基底 #14491。Achow101 將在此之後在 #14491 之上重新基底 #14075。#14705 使設定了 –disable-private-keys 的錢包能夠從金鑰池匯入和提取公鑰。這有助於將僅監視錢包與儲存私鑰的錢包「分離」。沒有此 PR,停用私鑰的錢包將不會從金鑰池提取公鑰。這對於與 Bitcoin Core 作為外部簽署者互動的硬體錢包很有用;為了支援此用例,金鑰池必須接受硬體錢包生成的僅監視公鑰的匯入和檢索。討論的結論是建議將 ryanofsky 關於其程式碼分離 PR 的狀態更新保留到第二次 Bitcoin Core 錢包貢獻者會議。

注意: 在東京 CoreDev 會議的「錢包內容」會議期間,提議組織一個單獨的專注於錢包的會議。在 10 月 19 日星期五,舉行了第一次 Bitcoin Core 錢包會議。它安排在每隔一個星期五 19:00:00 UTC 舉行。第二次會議於 11 月 2 日舉行。

AppVeyor 失敗

背景: AppVeyor 是一個託管的持續整合服務,為 Bitcoin Core 提供 Microsoft Visual C++ (MSVC) 建置環境。在這些環境中產生的二進位檔案僅用於跨平台測試目的。

討論(日誌): 在 AppVeyor 上執行的功能測試偶爾失敗。這讓一些貢獻者感到沮喪。Sipa 要求解決此問題。

結論: 有一個開放的 issue #14446,詳細說明了失敗類型。PR #13501 可能會緩解這些失敗的一個類別。

大家在做什麼?

日誌

  • jarthur:RPC API 的 UNIX 網域通訊端。先前的討論開放的 issue
  • luke-jr:重新基底他的 PR
  • achow101:PSBT 和硬體錢包整合
  • jnewbery:年底前花更多時間審查錢包 PR
  • instagibbs:審查錢包 PR 和硬體錢包整合
  • sipa:P2P 網路的私有驗證協定。先前的討論更多閱讀(注意:提議的協定存在已知漏洞)。
  • meshcollider:錢包重構和審查

參與者

IRC 暱稱 姓名/匿名
sipa Pieter Wuille
provoostenator Sjors Provoost
luke-jr Luke Dashjr
achow101 Andrew Chow
MarcoFalke Marco Falke
meshcollider Samuel Dobson
jnewbery John Newbery
instagibbs Gregory Sanders
phantomcircuit Patrick Strateman
jarthur Justin Arthur
kanzure Bryan Bishop
gwillen Glenn Willen
ryanofsky Russell Yanofsky

免責聲明

本摘要在編寫時未徵求討論參與者的意見,因此任何錯誤都是摘要作者的過失,而非討論參與者的過失。特別是,從討論中摘錄的引文在大小寫、標點符號和拼寫方面進行了修改,以產生一致的句子。括號中的詞語和片段以及背景敘述和說明由本摘要的作者新增,可能無意中改變了某些句子的含義。如果您認為任何引文被斷章取義,請開啟 issue,我們將更正錯誤。