Bitcoin Core 29.1

Bitcoin Core installation binaries can be downloaded from bitcoincore.org and the source-code is available from the Bitcoin Core source repository.

29.1 版本說明

Bitcoin Core 29.1 版本現已發布,可從以下位置下載:

https://bitcoincore.org/bin/bitcoin-core-29.1/

此版本包含各種錯誤修正和效能改善,以及更新的翻譯。

請使用 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 3.17+、macOS 13+ 和 Windows 10+ 的作業系統上受到支援和測試。Bitcoin Core 也應該可以在大多數其他類 Unix 系統上運作,但在這些系統上的測試頻率較低。不建議在不受支援的系統上使用 Bitcoin Core。

重要變更

Mempool Policy

  • 單一標準交易中可能執行的 legacy signature operations 的最大數量現在限制為 2500。所有先前輸出腳本、所有輸入腳本,以及所有 P2SH redeem scripts(如果有)中的 signature operations 都會計入此限制。假設此新限制不會影響任何已知的典型標準交易。此變更是為未來可能部署 BIP54 做準備。

  • #32521 policy: make pathological transactions packed with legacy sigops non-standard

  • 最小區塊費率(-blockmintxfee)已更改為每 kvB 1 satoshi。仍可使用設定選項進行更改。

  • 預設最小中繼費率(-minrelaytxfee)和增量中繼費率(-incrementalrelayfee)已更改為每 kvB 100 satoshis。仍可使用各自的設定選項進行更改,但如果決定更改,建議同時更改兩者。
    • 其他最小費率(例如 dust feerate、費用估算器返回的最小值,以及錢包使用的所有費率)保持不變。mempool 最小費率仍會根據高流量而變化。
    • 請注意,除非這些較低的預設值在整個網路中被廣泛採用,否則不保證使用較低費率建立的交易能夠傳播或確認。錢包費率保持不變;在嘗試使用錢包建立較低費率的交易之前,必須更改 -mintxfee
  • #33106 policy: lower the default blockmintxfee, incrementalrelayfee, minrelaytxfee

Logging

無條件寫入磁碟的日誌現在透過給每個來源位置每小時 1MiB 的配額來進行速率限制。無條件日誌是指日誌級別高於 debug 的任何日誌,即 infowarningerror。如果至少有一個來源位置目前被抑制,所有日誌都將以 [*] 為前綴。(#32604)

當啟用 -logsourcelocations 時,日誌輸出現在包含整個函式簽名,而不僅僅是函式名稱。(#32604)

RPC

  • dumptxoutset RPC 現在需要指定 type 參數。若要維持 v29.0 之前的行為,請使用 latest 參數。此變更在 v29.0 版本說明中遺漏記錄。(#30808)

Updated Settings

  • 在 32 位元系統上,-maxmempool-dbcache 啟動參數現在分別上限為 500MB 和 1GiB。

  • #32530 node: cap -maxmempool and -dbcache values for 32-bit

Wallet

  • #31757 wallet: fix crash on double block disconnection
  • #32553 wallet: Fix logging of wallet version

P2P

  • #32826 p2p: add more bad ports

Test

  • #32069 test: fix intermittent failure in wallet_reorgsrestore.py
  • #32286 test: Handle empty string returned by CLI as None in RPC tests
  • #32312 test: Fix feature_pruning test after nTime typo fix
  • #32336 test: Suppress upstream -Wduplicate-decl-specifier in bpfcc
  • #32463 test: fix an incorrect feature_fee_estimation.py subtest
  • #32483 test: fix two intermittent failures in wallet_basic.py
  • #32630 test: fix sync function in rpc_psbt.py
  • #32765 test: Fix list index out of range error in feature_bip68_sequence.py
  • #32742 test: fix catchup loop in outbound eviction functional test
  • #32823 test: Fix wait_for_getheaders() call in test_outbound_eviction_blocks_relay_only()
  • #32833 test: Add msgtype to msg_generic slots
  • #32841 feature_taproot: sample tx version border values more
  • #32850 test: check P2SH sigop count for coinbase tx
  • #32859 test: correctly detect nonstd TRUC tx vsize in feature_taproot
  • #33001 test: Do not pass tests on unhandled exceptions

Indexes

  • #33212 index: Don’t commit state in BaseIndex::Rewind

Util

  • #32248 Remove support for RNDR/RNDRRS for aarch64

Build

  • #32356 cmake: Respect user-provided configuration-specific flags
  • #32437 crypto: disable ASan for sha256_sse4 with Clang
  • #32469 cmake: Allow WITH_DBUS on all Unix-like systems
  • #32439 guix: accomodate migration to codeberg
  • #32551 cmake: Add missed SSE41_CXXFLAGS
  • #32568 depends: use “mkdir -p” when installing xproto
  • #32678 guix: warn and abort when SOURCE_DATE_EPOCH is set
  • #32690 depends: fix SHA256SUM command on OpenBSD (use GNU mode output)
  • #32716 depends: Override host compilers for FreeBSD and OpenBSD
  • #32760 depends: capnp 1.2.0
  • #32798 build: add root dir to CMAKE_PREFIX_PATH in toolchain
  • #32805 cmake: Use HINTS instead of PATHS in find_* commands
  • #32814 cmake: Explicitly specify Boost_ROOT for Homebrew’s package
  • #32837 depends: fix libevent _WIN32_WINNT usage
  • #32943 depends: Force CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE
  • #32954 cmake: Drop no longer necessary “cmakeMinimumRequired” object
  • #33073 guix: warn SOURCE_DATE_EPOCH set in guix-codesign

Gui

  • #864 Crash fix, disconnect numBlocksChanged() signal during shutdown
  • #868 Replace stray tfm::format to cerr with qWarning

Doc

  • #32333 doc: Add missing top-level description to pruneblockchain RPC
  • #32353 doc: Fix fuzz test_runner.py path
  • #32389 doc: Fix test_bitcoin path
  • #32607 rpc: Note in fundrawtransaction doc, fee rate is for package
  • #32679 doc: update tor docs to use bitcoind binary from path
  • #32693 depends: fix cmake compatibility error for freetype
  • #32696 doc: make -DWITH_ZMQ=ON explicit on build-unix.md
  • #32708 rpc, doc: update listdescriptors RCP help
  • #32711 doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md
  • #32719 doc, windows: CompanyName “Bitcoin” => “Bitcoin Core project”
  • #32776 doc: taproot became always active in v24.0
  • #32777 doc: fix Transifex 404s
  • #32846 doc: clarify that the “-j N” goes after the “–build build” part
  • #32858 doc: Add workaround for vcpkg issue with paths with embedded spaces
  • #33070 doc/zmq: fix unix socket path example
  • #33088 doc: move cmake -B build -LH up in Unix build docs
  • #33133 rpc: fix getpeerinfo ping duration unit docs
  • #33119 rpc: Fix ‘getdescriptoractivity’ RPCHelpMan, add test to verify fix
  • #33236 doc: Remove wrong and redundant doxygen tag

CI

  • #32184 ci: Add workaround for vcpkg’s libevent package
  • #33261 ci: return to using dash in CentOS job

Misc

  • #32187 refactor: Remove spurious virtual from final ~CZMQNotificationInterface
  • #32454 tracing: fix invalid argument in mempool_monitor
  • #32771 contrib: tracing: Fix read of pmsg_type in p2p_monitor.py
  • #33086 contrib: [tracing] fix pointer argument handling in mempool_monitor.py

致謝

感謝所有直接為此版本做出貢獻的人:

  • 0xB10C
  • achow101
  • Antoine Poinsot
  • benthecarman
  • bigspider
  • Brandon Odiwuor
  • brunoerg
  • Bufo
  • Christewart
  • Crypt-iQ
  • davidgumberg
  • deadmanoz
  • dergoegge
  • enirox001
  • fanquake
  • furszy
  • glozow
  • instagibbs
  • Hennadii Stepanov
  • hodlinator
  • ismaelsadeeq
  • jb55
  • jlopp
  • josibake
  • laanwj
  • luisschwab
  • MarcoFalke
  • Martin Zumsande
  • monlovesmango
  • nervana21
  • pablomartin4btc
  • rkrux
  • romanz
  • ryanofsky
  • Sjors
  • theStack
  • willcl-ark
  • zaidmstrr

以及所有在 Transifex 上協助翻譯的人。