Bitcoin Core 25.0
Bitcoin Core installation binaries can be downloaded from bitcoincore.org and the source-code is available from the Bitcoin Core source repository.
25.0 版本說明
Bitcoin Core 25.0 版本現已發布,可從以下位置下載:
https://bitcoincore.org/bin/bitcoin-core-25.0/
此版本包含新功能、各種錯誤修正和效能改善,以及更新的翻譯。
請使用 GitHub 的問題追蹤器回報錯誤:
https://github.com/bitcoin/bitcoin/issues
如需接收安全性和更新通知,請訂閱:
https://bitcoincore.org/zh_TW/list/announcements/join/
如何升級
如果您正在執行舊版本,請將其關閉。等待它完全關閉(在某些情況下可能需要幾分鐘),然後執行安裝程式(在 Windows 上)或直接複製 /Applications/Bitcoin-Qt(在 macOS 上)或 bitcoind/bitcoin-qt(在 Linux 上)。
可以直接從已達到 EOL 的 Bitcoin Core 版本升級,但如果需要遷移資料目錄,可能需要一些時間。通常支援舊版本的 Bitcoin Core 錢包。
相容性
Bitcoin Core 在使用 Linux kernel、macOS 10.15+ 和 Windows 7 及更新版本的作業系統上受到支援和廣泛測試。Bitcoin Core 也應該可以在大多數其他類 Unix 系統上運作,但在這些系統上的測試頻率較低。不建議在不受支援的系統上使用 Bitcoin Core。
重要變更
P2P 和網路變更
- 現在 mempool 和中繼政策允許非見證大小 65 bytes 及以上的交易。這是為了更好地反映針對 CVE-2017-12842 的實際提供保護,並開放更小交易大小的額外使用案例。(#26265)
新的 RPC
- scanblocks RPC 透過掃描給定範圍內的所有區塊過濾器,從一組描述符返回相關的區塊雜湊值。它可以與 getblockheader 和 rescanblockchain RPC 結合使用,以實現快速錢包重新掃描。請注意,只有在節點建構了緊湊區塊過濾器索引(
-blockfilterindex=1)時,才能使用此功能。(#23549)
更新的 RPC
- 所有 JSON-RPC 方法都接受名為
args的新命名參數,可以包含位置參數值。這是一個方便功能,允許某些參數值透過名稱傳遞,而無需命名每個值。python 測試框架和bitcoin-cli工具都利用了這一點,因此例如:
bitcoin-cli -named createwallet wallet_name=mywallet load_on_startup=1
現在可以縮短為:
bitcoin-cli -named createwallet mywallet load_on_startup=1
-
verifychainRPC 現在將返回false,如果檢查沒有失敗,但無法在所需的深度和級別完成。這可能是由於在修剪時缺少資料、由於 dbcache 不足或由於節點在呼叫完成之前被關閉。(#25574) -
sendrawtransaction有一個新的可選參數maxburnamount,預設值為0。任何包含值大於maxburnamount的不可花費輸出的交易都不會提交。目前,被視為不可花費的輸出是那些腳本以OP_RETURN程式碼開頭的(稱為「datacarriers」)、超過最大腳本大小的腳本以及包含無效操作碼的腳本。 -
testmempoolacceptRPC 現在在「fees」結果中返回 2 個額外結果:「effective-feerate」是包括使用套件驗證時一起驗證的交易的費用和大小的費率,並且還包括來自 prioritisetransaction 的任何修改費用。「effective-includes」結果列出了其修改費用和大小用於有效費率的交易的 wtxid。(#26646) -
decodescript現在可以在 P2WSH 上下文下推斷 Miniscript 描述符(如果不缺少資訊)。(#27037) -
finalizepsbt現在能夠最終化花費 Miniscript 相容 P2WSH 腳本的輸入的交易。(#24149)
與錢包相關的 RPC 變更可以在下面的錢包部分找到。
建置系統
--enable-upnp-default和--enable-natpmp-default選項已被移除。如果您想使用連接埠映射,可以使用 .conf 檔案進行設定,或在執行時傳遞相關選項。(#26896)
更新的設定
-
如果使用者明確提供了
-checkblocks或-checklevel選項,但由於 dbcache 不足而無法完成驗證檢查,Bitcoin Core 現在將在啟動時返回錯誤。(#25574) -
-port和-rpcport選項中指定的連接埠現在會在啟動時進行驗證。先前有效且被視為有效的值現在可能導致錯誤。(#22087) -
設定
-blocksonly現在將最大 mempool 記憶體減少到 5MB(使用者仍可使用-maxmempool覆蓋)。先前,將使用預設的 300MB,導致使用-blocksonly運作的使用者出現意外的記憶體使用,預期它會消除 mempool 記憶體使用。由於未使用的 mempool 記憶體與 dbcache 共用,這也減少了使用
-blocksonly運作的使用者的 dbcache 大小,可能影響效能。 -
設定
-maxconnections=0現在將停用-dnsseed和-listen(使用者仍可設定它們以覆蓋)。
與 GUI 或錢包相關的設定變更可以在下面的 GUI 或錢包部分找到。
新設定
shutdownnotify選項用於指定在 Bitcoin Core 開始其關閉序列之前同步執行的命令。(#23395)
錢包
minconf選項(允許使用者指定正在花費的 UTXO 的最小確認數)和maxconf選項(允許指定最大確認數)已在 #25375 中新增到以下 RPC:fundrawtransactionsendwalletcreatefundedpsbtsendall
-
在
listdescriptors的回應中新增了新的next_index欄位,以與importdescriptors具有相同的格式 (#26194) -
RPC
listunspent現在有新參數include_immature_coinbase,以包含不符合最小可花費深度要求的 coinbase UTXO(之前會被靜默跳過)。(#25730) -
如果可用緊湊區塊過濾器(BIP158),描述符錢包的重新掃描現在明顯更快。由於預設情況下不會建構這些過濾器,因此必須提供設定選項「-blockfilterindex=1」才能利用此最佳化。這改善了 RPC 呼叫
rescanblockchain、importdescriptors和restorewallet的效能。(#25957) -
RPC
unloadwallet現在如果重新掃描正在進行中則會失敗。(#26618) -
錢包密碼現在可以包含 null 字元。在此變更之前,只有第一個 null 字元之前的字元會被識別和接受。(#27068)
-
地址目的字串現在限制為目前已知的「send」、「receive」和「refund」值。具有未識別目的字串的錢包將有載入警告,如果請求未識別的目的,
listlabelsRPC 將引發錯誤。(#27217) -
在
createwallet、loadwallet、unloadwallet和restorewalletRPC 中,「warning」字串欄位已被棄用,改為返回字串 JSON 陣列的「warnings」欄位,以更好地處理多個警告訊息並與其他錢包 RPC 保持一致。「warning」欄位將在 v26 中從這些 RPC 中完全移除。在棄用期間,可以透過使用設定選項-deprecatedrpc=walletwarningfield啟動 bitcoind 來暫時重新啟用它。(#27279) - 描述符錢包現在可以花費發送到 P2WSH Miniscript 描述符的幣。(#24149)
GUI 變更
REST
- 已新增新的
/rest/deploymentinfo端點,用於獲取有關共識變更部署的各種狀態資訊。(#25412)
二進位驗證
- 二進位驗證腳本已更新。在先前版本中,它會驗證二進位檔案是否使用單一「release key」簽署。在此版本及後續版本中,它將驗證二進位檔案是否由_信任密鑰的門檻_簽署。有關更多詳細資訊和範例,請參閱: https://github.com/bitcoin/bitcoin/blob/master/contrib/verify-binaries/README.md (#27358)
低階變更
RPC
- JSON-RPC 伺服器現在拒絕參數以相同名稱多次指定的請求,而不是靜默地用後面的參數值覆蓋較早的參數值。(#26628)
- RPC
listsinceblock現在接受可選的label參數,以獲取具有指定標籤的傳入交易。(#25934) - 先前
setban、addpeeraddress、walletcreatefundedpsbt方法允許將非布林和非 null 值作為布林參數傳遞。傳遞的任何字串、數字、陣列或物件值都會被視為 false。在此變更後,傳遞除true、false或null之外的任何值現在會觸發 JSON value is not of expected type 錯誤。(#26213)
致謝
感謝所有直接為此版本做出貢獻的人:
- 0xb10c
- 721217.xyz
- @RandyMcMillan
- amadeuszpawlik
- Amiti Uttarwar
- Andrew Chow
- Andrew Toth
- Anthony Towns
- Antoine Poinsot
- Aurèle Oulès
- Ben Woosley
- Bitcoin Hodler
- brunoerg
- Bushstar
- Carl Dong
- Chris Geihsler
- Cory Fields
- David Gumberg
- dergoegge
- Dhruv Mehta
- Dimitris Tsapakidis
- dougEfish
- Douglas Chimento
- ekzyis
- Elichai Turkel
- Ethan Heilman
- Fabian Jahr
- FractalEncrypt
- furszy
- Gleb Naumenko
- glozow
- Greg Sanders
- Hennadii Stepanov
- hernanmarino
- ishaanam
- ismaelsadeeq
- James O’Beirne
- jdjkelly@gmail.com
- Jeff Ruane
- Jeffrey Czyz
- Jeremy Rubin
- Jesse Barton
- João Barbosa
- JoaoAJMatos
- John Moffett
- Jon Atack
- Jonas Schnelli
- jonatack
- Joshua Kelly
- josibake
- Juan Pablo Civile
- kdmukai
- klementtan
- Kolby ML
- kouloumos
- Kristaps Kaupe
- laanwj
- Larry Ruane
- Leonardo Araujo
- Leonardo Lazzaro
- Luke Dashjr
- MacroFake
- MarcoFalke
- Martin Leitner-Ankerl
- Martin Zumsande
- Matt Whitlock
- Matthew Zipkin
- Michael Ford
- Miles Liu
- mruddy
- Murray Nesbitt
- muxator
- omahs
- pablomartin4btc
- Pasta
- Pieter Wuille
- Pttn
- Randall Naar
- Riahiamirreza
- roconnor-blockstream
- Russell O’Connor
- Ryan Ofsky
- S3RK
- Sebastian Falbesoner
- Seibart Nedor
- sinetek
- Sjors Provoost
- Skuli Dulfari
- SomberNight
- Stacie Waleyko
- stickies-v
- stratospher
- Suhas Daftuar
- Suriyaa Sundararuban
- TheCharlatan
- Vasil Dimov
- Vasil Stoyanov
- virtu
- w0xlt
- willcl-ark
- yancy
- Yusuf Sahin HAMZA
以及所有在 Transifex 上協助翻譯的人。
