由Bitcoin Core開發者小組開發的0.14.0版本軟件已正式發布,其大大加快了新發起節點處理歷史區塊的速度,以及在線節點對新區塊的驗證及中繼速度。此外,新版本軟件還提供了一個可選的新功能(默認情況下為禁用),允許錢包用戶使用更高的交易費來轉播自己先前發出的未確認交易,這可能會讓交易更快地被確認。

下面提供的,是對Bitcoin Core 0.14.0版本軟件主要新功能的一個簡短總結,關于更多的細節,您可以在下文中查看。

改進初始塊下載(IBD)性能:一個首次運行的全節點現在可以更快地驗證所有的區塊,在初始塊下載(IBD)的性能上,開發者們至少改善了6倍,這可以幫助新用戶運行一個全節點,因為同步日益增長的區塊鏈需要花費太長的時間。

更快的區塊驗證以及中繼:礦工們將從四大現有的Bitcoin Core 功能改進中受益。簽名緩存已升級支持多CPU核心(在16核CPU系統下進行的一次測試,處理一個新區塊的速度增長了40%。)這一BIP152 致密區塊(CompactBlocks)功能的啟用將中繼一些此前完全驗證過的區塊,允許這些區塊在點對點(P2P)網絡中更快地傳播。P2P網絡的代碼也被廣泛地被進行了重構,可允許多個行動在同一時間進行(并發),此外它也增加了吞吐量,消除了處理新區塊的諸多潛在延遲。最后,在每個節點的內存池(mempool )當中的未確認交易,現在可以保存到磁盤當中,當節點重啟時,可恢復處理。

可選的增加手續費功能:Bitcoin Core錢包現在允許用戶在發送交易后,為他們支付的交易增加手續費。默認情況下此功能是禁用的。


改進初始塊下載(IBD)性能


隨著時間的推移,不斷增長的區塊鏈大小迫使新節點在使用錢包接受和發送交易時,需要處理更大量的數據,很多以前版本的Bitcoin Core 軟件包含了一些重大的改進,旨在消除初始塊下載(也稱之為初始同步)給用戶帶來的痛苦。例如:

發布版本 對初始塊下載(IBD)的主要改進

0.5.0 跳過歷史(檢查點)簽名驗證;
0.8.0 切換到LevelDB & 平行簽名驗證;
0.10.0 區塊頭首先驗證和平行區塊下載;
0.11.0 可選的區塊文件修剪功能,以節省磁盤空間;
0.12.0 從零開始編寫的新快速簽名驗證庫(libsecp256k1);
0.13.1 在未來,隔離見證允許跳過歷史簽名的下載;

而新發布的 0.14.0版本軟件,有兩項功能顯著改進了初始塊下載(IBD)的速度;

?假定有效區塊;

內存池(mempool)和未花費交易輸出( UTXO)數據庫緩存之間的內存共享

下面詳細描述一下這兩大優化。我們用之前版本的軟件(Bitcoin Core 0.13.2)與當前的版本(Bitcoin Core 0.14.0)進行實驗對比,并同樣使用了亞馬遜 EC2虛擬專用服務器進行測試,其CPU為四核,內存為16 GB,每小時運行的成本為0.188美元(不包括塊存儲成本)。所有的Bitcoin Core 設置都為默認狀態。

Bitcoin Core 0.13.2 花費了1天12個小時零40分鐘來完成區塊同步,總費用為6.89美元。

Bitcoin Core 0.14.0 花費了6小時24分鐘來完成同步任務,總費用為1.2美元。

測試結果表明,在相同條件下,Bitcoin Core 0.14.0在區塊同步這塊上比上一個版本要快5.7倍。

注:Bitcoin Core的默認設置是為了適應各類的硬件,包括舊機器以及小內存機器。對于那些想要更快同步的用戶,可以將Bitcoin Core的-dbcache= 選項調至高于默認的300 (MB) 。很多現代的電腦應能在3個小時內通過Bitcoin Core 0.14.0同步完區塊鏈,設置為8 GB內存(-dbcache=8000)。

假定有效塊

Bitcoin 0.3.2軟件引入了一種稱為檢查點(checkpoints)的機制,以防止初始區塊下載中遭遇拒絕服務攻擊,確保新的全節點不會被欺騙花費過多的努力去驗證不同于主鏈的替代鏈。

Bitcoin 0.5.0在檢查點的基礎上,通過跳過區塊的簽名驗證來加速初始區塊下載。

隨著時間的推移,其他Bitcoin Core安全性的改進(例如區塊頭首先同步和最小鏈工作(minimum chainwork))減少了檢查點的需要,同時,很多比特幣開發者都表示要移除檢查點,因為它們會讓新的開發者對安全模式感到困惑。

假設有效塊是一個新的功能,它將簽名跳過優化和檢查點反拒絕服務機制分離了開來,這使得它們可以獨立地處理。

所謂一個假定有效區塊,個人用戶可將其考慮成一種被包含在有效區塊鏈當中的有效區塊。任何人都可以用一種完全可重復的(確定性的)方式來進行測試。如果軟件不拒絕這個區塊,或任何前面的區塊,說明它是有效的。

如果有人第一次啟動一個全節點,并知道了任何有效區塊,然后他們可以為Bitcoin Core 0.14.0 提供這些區塊當中的最高高度,那么軟件將跳過驗證假定有效區塊之前的區塊。由于區塊同步過程中驗證簽名會消耗大量的CPU,使用假定有效區塊可以大大加快區塊同步的速度。所有假定有效塊后的區塊將正常檢查其簽名。

檢查點(checkpoints)與假定有效塊之間的關鍵性區別在于,Bitcoin 0.3.2 軟件要求所有的檢查點(checkpoints)區塊都成為區塊鏈的一部分,而 Bitcoin Core 0.14.0 軟件并不要求任何假定有效區塊成為區塊鏈的一部分。如果沒有用戶提供假定有效區塊(或系統默認的),Bitcoin Core會簡單地驗證所有的區塊簽名歷史。或者,如果存在著一個區塊鏈分叉,而擁有最多工作量證明的有效區塊鏈,其并不包含已知的假定有效區塊,Bitcoin Core仍然會切換到新的最佳區塊鏈(即使這意味著它放棄了假定有效區塊)。

比特幣的新用戶可能并不知道任何有效塊,但他們可能也不會知道所有的共識規則,因此他們可以簡單地使用其下載的全節點軟件。 Bitcoin Core 0.14.0 在默認情況啟用了假定有效區塊功能。

任何想要使用Bitcoin Core來驗證所有簽名的用戶,仍然可以通過-assumevalid=0 代碼來啟用這個程序。任何想要具體化一個替代假定有效區塊的用戶,可以指定區塊標識符作為參數來設為假定有效;例如:

-assumevalid=00000000000000000013176bf8d7dfeab4e1db31dc93bc311b436e82ab226b90

Bitcoin Core 0.14.0的默認假定有效塊是#453354,2017年2月16日,哈希為:

hash 00000000000000000013176bf8d7dfeab4e1db31dc93bc311b436e82ab226b90.

在初始區塊下載過程中,Bitcoin Core并不使用它的內存池,因為直到你擁有最新的區塊之前,你沒有辦法來驗證最近創建的交易。這意味著, Bitcoin Core在區塊同步過程中要求的內存會比以往更少。

在Bitcoin Core 0.14.0當中, 未用過的的內存池內存會和UTXO數據庫緩存共享,從而增加了能在快速內存中進行緩存的UTXO,而不是在更慢的磁盤中存儲及恢復。


更快的新區塊驗證和中繼


在Bitcoin Core 0.14.0當中,有四大顯著的改善,將對礦工和其他有盡快接受和處理新區塊需求的用戶產生幫助。

改善簽名緩存

第一個功能就是使用布谷鳥散列算法(cuckoo hashing)更新了簽名緩存。這個簽名緩存允許Bitcoin Core存儲未確認交易的驗證簽名緩存,那當同一筆交易出現在一個新區塊時,Bitcoin Core 就無需再驗證簽名了。由于簽名驗證通常是處理一個新區塊最為昂貴的一部分,使用簽名緩存便顯著提高了節點處理新區塊的速度。

在Bitcoin Core 0.13.2 當中現有的簽名緩存,只適用于少于八核的CPU系統。而達到或超過八核CPU的系統,就無法將剩余的性能發揮出來。而使用布谷鳥散列算法的更新,則提供了一個“布谷鳥緩存”,并因此消除了這個問題,允許更多核的CPU系統能夠有效地應用。

在使用16核CPU系統的一次測試下,使用0.14.0版本軟件添加一個區塊的速度要比先前版本的軟件要快40%。對于小于8核CPU的系統來說,這一更新沒有提供大的性能提升(布谷鳥緩存允許緩存更多的簽名,所以它們可以有輕微的性能改進)。

早期版本的BIP152 致密區塊中繼

Bitcoin Core 0.14.0的第二個功能改進就是BIP152 致密區塊的實施。當前支持了BIP152的兩種選擇模式:

一種是低帶寬的模式,其試圖發送必要的最小數據來中繼一個新區塊,包括等待接受節點請求的特定新區塊。

另一種高帶寬的模式,是在無需等待接受節點請求特定區塊的情況下,發送新的區塊數據。但其存在著一種風險,既發送給接收節點的數據和另一個發送節點的數據會重復(浪費了帶寬),但它有助于確保區塊的傳輸速度會很快。

在最佳的情況下,刪除驗證中繼可以允許新區塊在點對點網絡上進行多跳傳播,這會比以往要快上數倍。在最壞的情況下,一些額外的帶寬浪費會傳輸無效區塊。在這兩種情況下,安全模型仍保持不變,因為所有節點仍然會拒絕無效區塊。

P2P代碼重構,集中改善并發性和吞吐量

Bitcoin Core 0.14.0的第三大改進功能就是P2P網絡代碼的重構,目的是增加并發性和吞吐量。并發性改善有助于讓新接收的區塊(如bip152 致密區塊)能低優先級被處理,確保區塊盡可能快地被驗證和中繼。

重構現還允許在信息處理的過程中,網絡活動仍能繼續在后臺進行,其特別是對初始區塊下載( IBD)速度提供了改進,作為了 Bitcoin Core 0.10.0軟件的區塊頭首先同步的一種補充(見上面更多的信息)。

內存池存儲到磁盤

第四大改進有助于簽名緩存和致密區塊的實施, 在定時關機的情況下,未確認交易的內存池現在能夠存儲到磁盤當中,并在節點重啟時,重新載入到內存當中。

結合致密區塊后,它可以節省節點重新下載這些未確認交易的時間(當它們在一個新產生的區塊中被接受時)。結合簽名緩存,這允許節點能夠緩存那些未確認交易的簽名驗證,這使得包含這些交易的新區塊可以更快地被驗證。


可選的增加手續費功能


Bitcoin Core 0.14.0開啟了一項可選的功能(默認為禁用),它可以為錢包產生的所有新交易添加交易費,具體是指 BIP125 可選費用替代法(RBF)。

想要啟用該功能,可以在 Bitcoin Core客戶端用-walletrbf啟用,這一功能可為先前未確認的交易添加手續費,以加大交易被確認的機會。支持opt-in RBF或者full RBF功能的礦工通常會在他們的交易處理隊列中放入更高費用的交易,而更高的交易費將鼓勵礦工更快地挖取新版本的交易。


總結


關于Bitcoin Core 0.14.0的所有更新細節,請閱讀它的發布說明。如果您要下載這一最新版本軟件,請訪問官方下載頁面或文件目錄。

下一個版本的Bitcoin Core軟件,開發者團隊計劃約在6個月后完成(在完全測試后才會發布)。

如果你有興趣為Bitcoin Core貢獻,您可以參閱Bitcoin Core的貢獻頁面和文檔。如果你不知道從何入手,或者有其他的疑問,您可以加入Bitcoin Core的IRC或Slack聊天室,開發者會盡力幫助你。


錢包文件哈希驗證


以下是Bitcoin Core 0.14.0發布文件的SHA-256哈希:

466adccf7352f06de35afc1627a3ea721764268ceaf08fa3641f9b47e7df091a bitcoin-0.14.0-aarch64-linux-gnu.tar.gz 55957e2c35aa2ba836cbae7cbf945bcf489a46b243551b0f6fd86f60603032a6 bitcoin-0.14.0-arm-linux-gnueabihf.tar.gz e4bb8b52acde07788dfcf024645fe291f0deca2b7172939fb2ddb8789fe56973 bitcoin-0.14.0-i686-pc-linux-gnu.tar.gz e01e3cdd3c4138eccaf0c1267caa3bcdb6949ee63c1e396842b70f102fb4bcaf bitcoin-0.14.0-osx64.tar.gz 50fea43935e93381552b6730444eed6bbe513637a785e1b864b0c5883729228c bitcoin-0.14.0-osx.dmg d743d4866a0d4c1457f81530c45258a8b6383d1cafc458eedcba8d01728a641e bitcoin-0.14.0.tar.gz 95a030be5c1649023e3aa81d1cd9eabd4258f1b00f0fc51066d02126219705af bitcoin-0.14.0-win32-setup.exe 864ef77b9b4812ec59adff04d44213a6039c66970a9ae31e8620997a8c1537bc bitcoin-0.14.0-win32.zip f260d52cf2fe91c4be99ed6fcf8aa0de669ff326c5da920b7ed3a3e2ec981e0a bitcoin-0.14.0-win64-setup.exe 415693ed81cfc4960bbfcb815529003405aefbf839ef8fc901b0a2c4ef5317d0 bitcoin-0.14.0-win64.zip 06e6ceeb687e784e9aaad45e9407c7eed5f7e9c9bbe44083179287f54f0f9f2b bitcoin-0.14.0-x86_64-linux-gnu.tar.gz

發文時比特幣標準價格 買價:¥7809.00 賣價:¥7595.00

原文:https://bitcoincore.org/en/2017/03/08/release-0.14.0/
作者: Bitcoin Core開發者
編譯:灑脫喜
稿源(譯):巴比特資訊()
版權聲明: