Bitcoin Core 0.15.1
Bitcoin Core installation binaries can be downloaded from bitcoincore.org and the source-code is available from the Bitcoin Core source repository.
Bitcoin Core 0.15.1 版本現已發布,可從以下位置下載:
https://bitcoincore.org/bin/bitcoin-core-0.15.1/
此小版本包含各種錯誤修正和效能改善,以及更新的翻譯。
請使用 GitHub 的問題追蹤器回報錯誤:
https://github.com/bitcoin/bitcoin/issues
如需接收安全性和更新通知,請訂閱:
https://bitcoincore.org/zh_TW/list/announcements/join/
如何升級
如果您正在執行舊版本,請將其關閉。等待它完全關閉(舊版本可能需要幾分鐘),然後執行安裝程式(在 Windows 上)或直接複製 /Applications/Bitcoin-Qt(在 Mac 上)或 bitcoind/bitcoin-qt(在 Linux 上)。
第一次執行版本 0.15.0 或更高版本時,您的 chainstate 資料庫將被轉換為新格式,這將花費幾分鐘到半小時不等的時間,取決於您機器的速度。
fee_estimates.dat 的檔案格式在版本 0.15.0 中已變更。因此,從版本 0.15 降級或升級到版本 0.15 將導致所有費用估算被丟棄。
請注意,區塊資料庫格式在版本 0.8.0 中也有變更,並且從 0.8 之前的版本升級到 0.15.0 沒有自動升級程式碼。不支援從 0.7.x 及更早版本直接升級而不重新下載區塊鏈。然而,如往常一樣,仍然支援舊版本的錢包。
降級警告
此版本的 chainstate 資料庫與先前版本不相容,因此如果您執行 0.15 然後決定切換回任何較舊版本,您將需要使用 -reindex-chainstate 選項執行舊版本,以舊格式重建 chainstate 資料結構。
如果您的節點已啟用修剪,這將需要重新下載和處理整個區塊鏈。
相容性
Bitcoin Core 在使用 Linux kernel、macOS 10.8+ 和 Windows Vista 及更新版本的作業系統上經過廣泛測試。不支援 Windows XP。
Bitcoin Core 也應該可以在大多數其他類 Unix 系統上運作,但在這些系統上的測試頻率較低。
重要變更
網路分叉安全性增強
對 Bitcoin Core 處理對等連線和無效區塊的方式進行了一些變更,作為防止區塊鏈分叉和行為不當對等節點的安全預防措施。
-
工作量少於 minimum-chain-work 的未請求區塊現在即使具有比提示更多的工作量也不再被處理(這是 IBD 期間的潛在問題,其中提示可能具有低工作量)。這可以防止對等節點浪費節點的資源。
-
在 IBD 期間提供工作量少於 minimum-chain-work 的鏈的對等節點現在將被斷開連線。
-
對於給定的出站對等節點,我們現在檢查其最佳已知區塊是否至少與我們的提示具有同樣多的工作量。如果沒有,並且如果在 20 分鐘逾時後我們仍然沒有聽到具有足夠工作量的區塊,那麼我們發送單個 getheaders 訊息,並再等待 2 分鐘。如果在兩分鐘後其最佳已知區塊的工作量不足,我們將斷開該對等節點。我們保護 4 個出站對等節點不被此邏輯斷開連線,以防止由於此演算法而導致過多的網路拓撲變更,同時仍確保我們有合理數量的節點不在虛假鏈上。
-
向我們提供已知無效的區塊標頭的出站(非手動)對等節點(緊湊區塊公告除外,因為 BIP 152 明確允許節點在完全驗證之前中繼緊湊區塊)現在將被斷開連線。
-
如果鏈提示超過 30 分鐘沒有前進,我們現在假設提示可能已過時,並將嘗試連線到額外的出站對等節點。定期檢查確保如果正在使用此額外的對等連線,我們將斷開最近未公告新區塊的對等節點。
-
現在追蹤所有已知本身無效的區塊集合(即我們嘗試連線但發現無效的區塊),並用於檢查新標頭是否基於無效鏈建置。這確保了從無效區塊繼承的所有內容都被標記為無效。
礦工區塊大小限制已棄用
儘管自 0.13.0 以來,blockmaxweight 一直是限制 getblocktemplate 返回的區塊大小的首選方法,但 blockmaxsize 仍作為那些希望直接限制其區塊大小的人的選項保留。使用此選項導致了一些 UI 問題以及非最佳的費用選擇和略微較差的效能,因此現已被棄用。此外,blockmaxsize 選項現在僅用於計算隱含的 blockmaxweight,而不是直接限制區塊大小。任何希望按大小而不是按權重限制其區塊的礦工都必須透過直接從其區塊模板中刪除交易來手動執行此操作。
重設時備份 GUI 設定
當使用 -resetguisettings 參數時,GUI 設定現在將在清除之前寫入資料目錄中的 guisettings.ini.bak。這可用於追溯解決由於 GUI 設定引起的問題。
不允許重複錢包
以前,可以透過手動複製錢包檔案來兩次開啟同一個錢包,當兩者同時開啟時會導致問題。現在不再可能開啟同一錢包的副本。
添加除錯 -minimumchainwork 參數
已添加隱藏的除錯參數 -minimumchainwork,以允許在驗證鏈時使用自訂的最小工作量值。
低階 RPC 變更
-
getmininginfo 中的「currentblocksize」值已被移除。
-
dumpwallet不再允許覆蓋檔案。這是一項安全措施,也可以防止危險的使用者錯誤。 -
backupwallet現在在嘗試備份到源檔案時將失敗,而不是破壞錢包。 -
如果傳遞了未知的
blockhash參數值,listsinceblock現在將拋出錯誤,而不是返回自創世區塊以來所有錢包交易的清單。當提供空字串時,行為不變。
0.15.1 變更日誌
挖礦
- #11100
7871a7dFix confusing blockmax{size,weight} options, dont default to throwing away money (TheBlueMatt)
RPC 和其他 API
- #10859
2a5d099gettxout: Slightly improve doc and tests (jtimon) - #11267
b1a6c94update cli for estimate*fee argument rename (laanwj) - #11483
20cdc2bFix importmulti bug when importing an already imported key (pedrobranco) - #9937
a43be5bPreventdumpwalletfrom overwriting files (laanwj) - #11465
405e069Update named args documentation for importprivkey (dusty-wil) - #11131
b278a43Write authcookie atomically (laanwj) - #11565
7d4546fMake listsinceblock refuse unknown block hash (ryanofsky) - #11593
8195cb0Work-around an upstream libevent bug (theuni)
P2P 協定和網路程式碼
- #11397
27e861aImprove and document SOCKS code (laanwj) - #11252
0fe2a9aWhen clearing addrman clear mapInfo and mapAddr (instagibbs) - #11527
a2bd86aRemove my testnet DNS seed (schildbach) - #10756
0a5477cnet processing: swap out signals for an interface class (theuni) - #11531
55b7abfCheck that new headers are not a descendant of an invalid block (more effeciently) (TheBlueMatt) - #11560
49bf090Connect to a new outbound peer if our tip is stale (sdaftuar) - #11568
fc966bbDisconnect outbound peers on invalid chains (sdaftuar) - #11578
ec8dedfAdd missing lock in ProcessHeadersMessage(…) (practicalswift) - #11456
6f27965Replace relevant services logic with a function suite (TheBlueMatt) - #11490
bf191a7Disconnect from outbound peers with bad headers chains (sdaftuar)
驗證
- #10357
da4908cAllow setting nMinimumChainWork on command line (sdaftuar) - #11458
2df65eeDon’t process unrequested, low-work blocks (sdaftuar)
建置系統
- #11440
b6c0209Fix validationinterface build on super old boost/clang (TheBlueMatt) - #11530
265bb21Add share/rpcuser to dist. source code archive (MarcoFalke)
GUI
- #11334
19d63e8Remove custom fee radio group and remove nCustomFeeRadio setting (achow101) - #11198
7310f1fFix display of package name on ‘open config file’ tooltip (esotericnonsense) - #11015
6642558Add delay before filtering transactions (lclc) - #11338
6a62c74Backup former GUI settings on-resetguisettings(laanwj) -
#11335 8d13b42Replace saverestoreWindowGeometry with Qt functions (MeshCollider) - #11237
2e31b1dFixing division by zero in time remaining (MeshCollider) - #11247
47c02a8Use IsMine to validate custom change address (MarcoFalke)
錢包
- #11017
9e8aae3Close DB on error (kallewoof) - #11225
6b4d9f2Update stored witness in AddToWallet (sdaftuar) - #11126
2cb720aAcquire cs_main lock before cs_wallet during wallet initialization (ryanofsky) - #11476
9c8006dAvoid opening copied wallet databases simultaneously (ryanofsky) - #11492
de7053fFix leak in CDB constructor (promag) - #11376
fd79ed6Ensure backupwallet fails when attempting to backup to source file (tomasvdw) - #11326
d570aa4Fix crash on shutdown with invalid wallet (MeshCollider)
測試和 QA
- #11399
a825d4aFix bip68-sequence rpc test (jl2012) - #11150
847c75eAdd getmininginfo test (mess110) - #11407
806c78fadd functional test for mempoolreplacement command line arg (instagibbs) - #11433
e169349Restore bitcoin-util-test py2 compatibility (MarcoFalke) - #11308
2e1ac70zapwallettxes: Wait up to 3s for mempool reload (MarcoFalke) - #10798
716066dtest bitcoin-cli (jnewbery) - #11443
019c492Allow “make cov” out-of-tree; Fix rpc mapping check (MarcoFalke) - #11445
51bad910.15.1 Backports (MarcoFalke) - #11319
2f0b30aFix error introduced into p2p-segwit.py, and prevent future similar errors (sdaftuar) - #10552
e4605d9Tests for zmqpubrawtx and zmqpubrawblock (achow101) - #11067
eeb24a3TestNode: Add wait_until_stopped helper method (MarcoFalke) - #11068
5398f20Move wait_until to util (MarcoFalke) - #11125
812c870Add bitcoin-cli -stdin and -stdinrpcpass functional tests (promag) - #11077
1d80d1efix timeout issues from TestNode (jnewbery) - #11078
f1ced0dMake p2p-leaktests.py more robust (jnewbery) - #11210
f3f7891Stop test_bitcoin-qt touching ~/.bitcoin (MeshCollider) -
#11234 f0b6795Remove redundant testutil.cpph files (MeshCollider) - #11215
cef0319fixups from set_test_params() (jnewbery) - #11345
f9cf7b5Check connectivity before sending in assumevalid.py (jnewbery) - #11091
c276c1eIncrease initial RPC timeout to 60 seconds (laanwj) - #10711
fc2aa09Introduce TestNode (jnewbery) - #11230
d8dd8e7Fixup dbcrash interaction with add_nodes() (jnewbery) - #11241
4424176Improve signmessages functional test (mess110) - #11116
2c4ff35Unit tests for script/standard and IsMine functions (jimpo) - #11422
a36f332Verify DBWrapper iterators are taking snapshots (TheBlueMatt) - #11121
bb5e7cbTestNode tidyups (jnewbery) - #11521
ca0f3f7travis: move back to the minimal image (theuni) - #11538
adbc9d1Fix race condition failures in replace-by-fee.py, sendheaders.py (sdaftuar) - #11472
4108879Make tmpdir option an absolute path, misc cleanup (MarcoFalke) - #10853
5b728c8Fix RPC failure testing (again) (jnewbery) - #11310
b6468d3Test listwallets RPC (mess110)
Miscellaneous
- #11377
75997c3Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds (TheBlueMatt) - #11437
dea3b87[Docs] Update Windows build instructions for using WSL and Ubuntu 17.04 (fanquake) - #11318
8b61aeePut back inadvertently removed copyright notices (gmaxwell) - #11442
cf18f42[Docs] Update OpenBSD Build Instructions for OpenBSD 6.2 (fanquake) - #10957
50bd3f6Avoid returning a BIP9Stats object with uninitialized values (practicalswift) - #11539
01223a0[verify-commits] Allow revoked keys to expire (TheBlueMatt)
致謝
感謝所有直接為此版本做出貢獻的人:
- Andreas Schildbach
- Andrew Chow
- Chris Moore
- Cory Fields
- Cristian Mircea Messel
- Daniel Edgecumbe
- Donal OConnor
- Dusty Williams
- fanquake
- Gregory Sanders
- Jim Posen
- John Newbery
- Johnson Lau
- João Barbosa
- Jorge Timón
- Karl-Johan Alm
- Lucas Betschart
- MarcoFalke
- Matt Corallo
- Paul Berg
- Pedro Branco
- Pieter Wuille
- practicalswift
- Russell Yanofsky
- Samuel Dobson
- Suhas Daftuar
- Tomas van der Wansem
- Wladimir J. van der Laan
以及所有在 Transifex 上協助翻譯的人。
