2016-01-14 IRC 會議摘要

概覽

會議記錄

主要議題

  • Versionbits
  • 隔離見證的狀態
  • 0.12 bitcoin-core 發布狀態
  • 共識程式碼封裝(libconsensus)
  • Locktime PR

Versionbits

背景

BIP 9 目前軟分叉是透過 isSuperMajority 機制完成的,意思是當最近 1000 個區塊中有 95% 的版本號高於 X 時,分叉就會部署。 目前正在開發一種新方法,使用版本號的所有位元,適當地稱為 versionbits。 因此,不是在版本大於(例如)00000000011(3)時發生分叉,而是在(例如)第 3 位元被設定時發生分叉(即 00100000011)。 這樣軟分叉就可以同時且獨立地部署。

會議討論

Morcos 自願接手主導這個提案,因為 CodeShark 和 Rusty 正忙於其他事情。他將審查兩種實作,然後決定以哪種實作為基礎進行工作。 他指出,如果非核心實作正在嘗試做其他事情(並且正在使用 nVersion 進行訊號發送),當隔離見證正在部署時,不產生衝突將是重要的,這樣其他版本的使用者也可以支援隔離見證。 如果這種方法達成共識,那麼在隔離見證部署之前,versionbits 必須準備好。 jtimon 有一些建議,可以讓實作更簡單、更靈活。

會議結論

Morcos 將主導 BIP9: Versionbits 的新參考實作。

隔離見證的狀態

背景

隔離見證改變了交易的結構,使得簽章可以與交易的其他部分分離。 這允許在中繼時節省頻寬、修剪舊簽章、透過引入腳本版本來軟分叉所有未來的腳本變更,並解決所有非故意形式的可延展性。 在上次 scaling bitcoin 會議期間,Pieter Wuille 展示了一種透過軟分叉實現這一點的方法,並提議透過將簽章資料對總區塊大小進行折扣來增加區塊中的最大交易量。 隔離見證是 bitcoin-core 容量增加路線圖的一部分。 更詳細的說明:

會議討論

Segnet,隔離交易的測試網路,很快就會推出第 3 版。 Luke-Jr 已將所有隔離見證 BIP 分配到 14x 範圍。目前有 4 個 BIP:141142143144

0.12 bitcoin-core 發布狀態

背景

Bitcoin Core 0.12 計劃於二月左右發布,引入了許多修復和改進。(發布說明) 0.12rc1 候選發布版本可在 https://bitcoin.org/bin/bitcoin-core-0.12.0/test/ 取得

會議討論

Luke-Jr 認為 PR #7149#7339#7340 應該已經納入 0.12,但現在真的太晚了,可能不切實際納入。 給 gitian 建構者:0.12rc1 的 osx sig attach descriptor 由於缺少套件(實際上並不需要)而失敗。不要使用程式碼樹中的 descriptor,請使用 #7342 中的。這在 rc2 中已修復。 「fundrawtransaction」和「setban」應該新增到發布說明中。在某個時候,在其他地方記錄這些指令並在發布說明中連結到它會更有意義,因為它們變得非常冗長。 Wumpus 認為發布說明有太多細節,它們不是要取代文件。

會議結論

關閉 PR #7142,因為它現在是 #7148 的一部分 每個人都可以自由改進發布說明,只需提交 PR。

共識程式碼封裝(libconsensus)

背景

Satoshi 並不是最好的程式設計師,這留下了相當混亂的程式碼。理想情況下,你會將影響網路共識的程式碼部分分離出來,但在 bitcoin 中它們都交織在一起。 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

Locktime PR

背景

BIP 68 透過序列號訊號發送的共識強制交易替換。 BIP 112 CHECKSEQUENCEVERIFY。 BIP 113 使用中位時間過去作為鎖定時間計算的端點。 簡而言之:BIP 68 將序列號欄位的意義改為相對鎖定時間。BIP 112 使該欄位可供 bitcoin 腳本系統存取。BIP 113 在鎖定時間交易中啟用前一個區塊的 GetMedianTimePast(前 11 個區塊的中位數)的使用。

會議討論

我們需要在 2 種實作之間做出選擇,即 #6312#7184。 PR #7184 是 CreateNewBlock 最佳化與 #6312 不相容的結果。 jtimon 認為可以相對快速地合併,因為 #7184 基於 #6312,後者有大量的測試和審查。

會議結論

關閉 #6312,採用 #7184。 Morcos 將修復 #7184 上未解決的問題 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」)編譯並發布到 bitcoin-discuss 郵件列表,附帶免責聲明「請記住我不是開發人員,所以有些內容可能不正確或完全錯誤。」並將版權置於公有領域。