Bitcoin Core 0.21.0
Bitcoin Core installation binaries can be downloaded from bitcoincore.org and the source-code is available from the Bitcoin Core source repository.
0.21.0 版本說明
Bitcoin Core 0.21.0 版本現已發布,可從以下位置下載:
https://bitcoincore.org/bin/bitcoin-core-0.21.0/
此版本包含新功能、各種錯誤修正和效能改善,以及更新的翻譯。
請使用 GitHub 的問題追蹤器回報錯誤:
https://github.com/bitcoin/bitcoin/issues
如需接收安全性和更新通知,請訂閱:
https://bitcoincore.org/zh_TW/list/announcements/join/
如何升級
如果您正在執行舊版本,請將其關閉。等待它完全關閉(在某些情況下可能需要幾分鐘),然後執行安裝程式(在 Windows 上)或直接複製 /Applications/Bitcoin-Qt(在 Mac 上)或 bitcoind/bitcoin-qt(在 Linux 上)。
可以直接從已達到 EOL 的 Bitcoin Core 版本升級,但如果需要遷移資料目錄,可能需要一些時間。通常支援舊版本的 Bitcoin Core 錢包。
相容性
Bitcoin Core 在使用 Linux kernel、macOS 10.12+ 和 Windows 7 及更新版本的作業系統上受到支援和廣泛測試。Bitcoin Core 也應該可以在大多數其他類 Unix 系統上運作,但在這些系統上的測試頻率較低。不建議在不受支援的系統上使用 Bitcoin Core。
從 Bitcoin Core 0.20.0 開始,不再支援 macOS 10.12 之前的版本。此外,當 macOS「深色模式」啟動時,Bitcoin Core 尚未變更外觀。
節點的已知對等節點會以向後不相容的方式持久化到名為 peers.dat 的檔案中,以容納 Tor v3 和其他 BIP155 地址的儲存。這意味著如果檔案被 0.21.0 或更新版本修改,則舊版本將無法讀取它。在降級的情況下,這些舊版本將記錄錯誤訊息「Incorrect keysize in addrman deserialization」並繼續正常操作,就像檔案遺失一樣,建立一個新的空檔案。(#19954, #20284)
重要變更
P2P 和網路變更
-
mempool 現在追蹤透過錢包或 RPC 提交的交易是否已成功廣播。每 10-15 分鐘,節點將嘗試公告未廣播的交易,直到對等節點透過
getdata訊息請求它或交易因其他原因從 mempool 中移除。節點不會追蹤使用 P2P 中繼提交到節點的交易的廣播狀態。此版本減少了透過 P2P 提交到執行錢包的節點的錢包交易的初始廣播保證。(#18038) -
對等節點已公告且我們考慮請求的交易集的大小已從 100000 減少到 5000(每個對等節點),當達到該限制時,將忽略進一步的公告。如果您需要傾倒(非常)大批次的交易,可以使用「relay」網路權限為受信任的對等節點進行例外處理。例如,對於 localhost,可以使用命令列選項
-whitelist=relay@127.0.0.1啟用它。(#19988) -
此版本新增了對 Tor 版本 3 隱藏服務的支援,並使用 BIP155 將它們傳播到網路上的其他對等節點。Bitcoin Core 仍然完全支援版本 2 隱藏服務,但 Tor 網路將在未來幾個月開始棄用它們。(#19954)
-
透過設定
-listenonion設定參數自動建立的 Tor onion 服務現在將建立為 Tor v3 服務而不是 Tor v2。用於 Tor v2 的私鑰(如果有)將在資料目錄(參見-datadir)中的onion_private_key檔案中保持不變,如果不需要可以刪除。Bitcoin Core 將不再嘗試讀取它。Tor v3 服務的私鑰將儲存在名為onion_v3_private_key的檔案中。要使用已棄用的 Tor v2 服務(不建議),可以將onion_private_key複製到onion_v3_private_key,例如cp -f onion_private_key onion_v3_private_key。(#19954) -
客戶端在關閉時寫入一個檔案(
anchors.dat),其中包含節點的兩個出站僅區塊中繼對等節點(所謂的「錨點」)的網路地址。下次節點啟動時,它會讀取此檔案並嘗試重新連線到這兩個相同的對等節點。這可以防止攻擊者使用節點重新啟動來觸發對等節點的完全變更,這是他們可以用作日蝕攻擊一部分的內容。(#17428) -
此版本新增了在啟用時使用
-blockfilterindex=1 -peerblockfilters=1向網路上的對等節點提供 BIP157 緊湊過濾器的支援。(#16442) -
此版本除了現有的主網、測試網和 regtest 網路外,還新增了對 signet(BIP325)的支援。Signet 是集中控制的測試網路,使它們能夠比較舊的測試網更可預測的測試環境。維護一個公共 signet,可使用
-signet選擇。也可以建立個人 signet。(#18267) -
此版本實作了提議的 Taproot 共識規則(BIP341 和 BIP342),但沒有在主網上啟動。可以在 signet 上進行 Taproot 的實驗,其規則已經啟動。(#19553)
更新的 RPC
-
getpeerinfoRPC 有一個新的network欄位,提供對等節點連線的網路類型(「ipv4」、「ipv6」或「onion」)。(#20002) -
getpeerinfoRPC 現在有額外的last_block和last_transaction欄位,返回從每個對等節點收到的最後一個區塊和最後一個有效交易的 UNIX epoch 時間。(#19731) -
getnetworkinfo現在返回兩個新欄位connections_in和connections_out,提供入站和出站對等連線的數量。這些新欄位是對現有connections欄位的補充,該欄位返回對等連線的總數。(#19405) -
公開的交易版本號現在被視為無符號 32 位元整數而不是有符號 32 位元整數。這與它們在共識邏輯中的處理相符。大於 2 的版本繼續為非標準(符合先前小於 1 或大於 2 為非標準的行為)。請注意,這包括
joinpsbt命令,該命令透過選擇最高版本號來組合部分簽名的交易。(#16525) -
getmempoolinfo現在返回一個額外的unbroadcastcount欄位。mempool 追蹤本地提交的交易,直到對等節點確認其初始廣播。此欄位返回等待確認的交易計數。 -
Mempool RPC(例如
getmempoolentry和具有verbose=true的getrawmempool)現在返回一個額外的unbroadcast欄位。這表示交易的初始廣播是否已被對等節點確認。getmempoolancestors和getmempooldescendants也已更新。 -
除非使用設定選項
-deprecatedrpc=banscore,否則getpeerinfoRPC 不再返回banscore欄位。banscore欄位將在下一個主要版本中完全移除。(#19469) -
如果交易將通過驗證,
testmempoolacceptRPC 將返回vsize和帶有base費用的fees物件。(#19940) -
getpeerinfoRPC 現在返回一個connection_type欄位。這表示與對等節點建立的連線類型。它將返回六個選項之一。有關更多資訊,請參閱getpeerinfo說明文件。(#19725) -
預設情況下,
getpeerinfoRPC 不再返回addnode欄位。此欄位將在下一個主要版本中完全移除。可以使用設定選項-deprecatedrpc=getpeerinfo_addnode存取它。但是,建議改用connection_type欄位(當 addnode 為 true 時,它將返回manual)。(#19725) -
預設情況下,
getpeerinfoRPC 不再返回whitelisted欄位。此欄位將在下一個主要版本中完全移除。可以使用設定選項-deprecatedrpc=getpeerinfo_whitelisted存取它。但是,建議改用permissions欄位來了解是否已授予對等節點特定權限。(#19770) -
如果手動選擇的輸入不足以支付輸出和費用,
walletcreatefundedpsbtRPC 呼叫現在將失敗並顯示Insufficient funds。可以透過新的add_inputs選項自動新增額外的輸入。(#16377) -
fundrawtransactionRPC 現在支援add_inputs選項,當為false時,如果需要,將阻止新增更多輸入,因此 RPC 失敗。
與錢包或 GUI 相關的 RPC 變更可以在下面的 GUI 或錢包部分找到。
新的 RPC
getindexinfoRPC 返回節點的主動執行索引,包括它們的當前同步狀態和高度。它還接受index_name以指定僅返回該索引的狀態。(#19550)
建置系統
更新的設定
-
現在可以多次指定相同的 ZeroMQ 通知(例如
-zmqpubhashtx=address),以將相同的通知發布到不同的 ZeroMQ socket。(#18309) -
-banscore設定選項已被移除,該選項修改了斷開和阻止行為不當對等節點的預設閾值,這是 0.20.1 版本和本版本對處理行為不當對等節點的變更的一部分。有關詳細資訊,請參閱 0.20.1 版本說明中的「關於行為不當對等節點的變更」。(#19464) -
-debug=db日誌類別在 0.20 中已棄用,並替換為-debug=walletdb以將其與coindb區分開來,現已移除。(#19202) -
已從
noban權限中提取download權限。為了相容性,noban暗示download權限,但這可能在未來版本中變更。有關更多詳細資訊,請參閱受影響設定-whitebind和-whitelist的說明。(#19191) -
不再接受在 0 位元之後包含 1 位元的網路遮罩(1 位元在左側不連續,例如 255.0.255.255)。根據 RFC 4632,它們是無效的。網路遮罩用於
-rpcallowip和-whitelist設定選項以及setbanRPC。(#19628) -
-blocksonly設定現在完全停用費用估算。(#18766)
與錢包或 GUI 相關的設定變更可以在下面的 GUI 或錢包部分找到。
工具和實用程式
-
新的
bitcoin-cli -netinfo命令提供網路對等連線儀表板,以人類可讀的格式顯示來自getpeerinfo和getnetworkinfoRPC 的資料。可以傳遞從0到4的可選整數參數,以查看不斷增加的詳細程度。(#19643) -
新的
bitcoin-cli -generate命令,相當於 RPCgeneratenewaddress後跟generatetoaddress,可以為命令列測試目的生成區塊。這是先前generateRPC 的客戶端版本。詳情請參閱說明。(#19133) -
當載入多個錢包時(例如在多錢包模式下),且未使用
-rpcwallet指定錢包時,bitcoin-cli -getinfo命令現在為每個載入的錢包顯示錢包名稱和餘額。(#18594) -
bitcoin-cli -getinfo的connections欄位現在擴充為返回具有對等連線的in、out和total數量的 JSON 物件。它以前返回對等連線總數的單個整數值。(#19405)
新設定
startupnotify選項用於指定 Bitcoin Core 完成其啟動序列後要執行的命令。(#15367)
錢包
-
getaddressinfoRPC 已刪除兩個棄用的向後相容性,如 0.20 版本說明中所通知。已刪除棄用的label欄位以及棄用的返回包含name和purpose鍵值對的 JSON 物件的labels行為。自 0.20 以來,labels欄位返回標籤名稱的 JSON 陣列。(#19200) -
為了改善錢包隱私,錢包重新廣播嘗試的頻率從大約每 15 分鐘一次減少到每 12-36 小時一次。為了保持類似水平的錢包交易初始廣播保證,mempool 將這些交易作為新引入的未廣播集的一部分進行追蹤。有關未廣播集的更多資訊,請參閱「P2P 和網路變更」部分。(#18038)
-
sendtoaddress和sendmanyRPC 接受可選的verbose=True參數,也返回有關已發送交易的費用原因。(#19501) -
即使密鑰池為空,錢包也可以建立沒有找零的交易。以前會失敗。(#17219)
-
-salvagewallet啟動選項已被移除。新的salvage命令已新增到bitcoin-wallet工具,該工具執行-salvagewallet所做的搶救操作。(#18918) -
已新增一個新的設定標誌
-maxapsfee,它設定允許的最大避免部分花費(APS)費用。它預設為 0(即使用和不使用 APS 的費用相同)。將其設定為 -1 將停用 APS,除非設定了-avoidpartialspends。(#14582) -
如果這不會導致費用與非 APS 變體相比有所不同,錢包現在預設會避免部分花費(APS)。允許的費用閾值可以使用新的
-maxapsfee設定選項進行調整。(#14582) -
createwallet、loadwallet和unloadwalletRPC 現在接受load_on_startup選項來修改設定清單。除非這些選項明確設定為 true 或 false,否則不會修改清單,因此 RPC 方法保持向後相容。(#15937) -
新增了一個新的
sendRPC,其語法類似於walletcreatefundedpsbt,包括對幣選擇和自訂費率的支援。sendRPC 是實驗性的,可能會在後續版本中變更。(#16378) -
estimate_mode參數現在在bumpfee、fundrawtransaction、sendmany、sendtoaddress、send和walletcreatefundedpsbtRPC 中不區分大小寫。(#11413) -
bumpfeeRPC 現在在選項中使用conf_target而不是confTarget。(#11413) -
當使用
lockUnspents參數時,fundrawtransaction和walletcreatefundedpsbt現在除了自動選擇的幣外,還鎖定手動選擇的幣。請注意,鎖定的幣永遠不會用於自動幣選擇,但仍可以手動選擇。(#18244) -
-zapwallettxes啟動選項已被移除,其功能也已從錢包中移除。此選項最初旨在允許搶救受到可塑性攻擊影響的錢包。最近,它已被用於未發出 RBF 訊號的交易的費用提升。此功能已被放棄交易功能取代。(#19671) -
當沒有載入錢包但呼叫錢包 RPC 時的錯誤代碼已從
-32601(找不到方法)變更為-18(找不到錢包)。(#20101)
移除自動錢包建立
Bitcoin Core 將不再在啟動時自動建立新錢包。它將載入命令列上或 bitcoin.conf 或 settings.json 檔案中由 -wallet 選項指定的現有錢包。預設情況下,它還將載入頂層未命名(「」)錢包。但是,如果指定的錢包不存在,Bitcoin Core 現在只會記錄警告,而不是像以前的版本那樣使用新金鑰和地址建立新錢包。
新錢包可以透過 GUI(其具有更顯著的建立錢包選項)、透過 bitcoin-cli createwallet 或 bitcoin-wallet create 命令,或 createwallet RPC 建立。(#15454, #20186)
實驗性描述符錢包
請注意,描述符錢包仍然是實驗性的,並非所有預期功能都可用。此外,可能存在一些錯誤,當前功能可能會在未來變更。錯誤和缺少的功能可以回報到問題追蹤器。
0.21 引入了一種新型錢包 - 描述符錢包。描述符錢包使用輸出描述符儲存 scriptPubKey 資訊。這與傳統錢包結構相反,後者使用金鑰隱式生成 scriptPubKey 和地址。由於這種轉變為基於腳本而不是基於金鑰,傳統錢包執行的許多令人困惑的事情在描述符錢包中是不可能的。描述符錢包對腳本使用「mine」的定義比傳統錢包使用的定義更簡單、更直觀。描述符錢包還對僅觀察事物和匯入使用不同的語義。
由於描述符錢包是一種新型錢包,它們的引入不會影響現有錢包。已經擁有 Bitcoin Core 錢包的使用者可以像以前一樣繼續使用它,行為沒有任何變更。新建立的傳統錢包(仍然是預設錢包類型)將像以前版本的 Bitcoin Core 一樣運作。
描述符錢包和傳統錢包之間的差異主要限於非使用者面向的事物。它們旨在行為類似,除了如下所述的匯入/匯出和僅觀察功能。
建立描述符錢包
描述符錢包不是預設的錢包類型。
在 GUI 中,已在建立錢包對話框中新增了一個複選框,以指示應建立描述符錢包。並且已將 descriptors 選項新增到 createwallet RPC。將 descriptors 設定為 true 將建立描述符錢包而不是傳統錢包。
如果未設定這些選項,則將建立傳統錢包。
IsMine 語義
IsMine 是指用於確定腳本是否屬於錢包的函數。這用於確定輸出是否屬於錢包。傳統錢包中的 IsMine 如果錢包能夠簽署花費具有該腳本的輸出的輸入,則返回 true。由於金鑰可以參與各種不同的腳本,這個 IsMine 定義可能導致許多意外的腳本被視為錢包的一部分。
使用描述符錢包,描述符明確指定錢包擁有的腳本集。由於描述符是確定性的且易於枚舉,使用者將確切知道錢包將考慮哪些腳本屬於它。此外,描述符錢包中 IsMine 的實作遠比傳統錢包簡單。值得注意的是,在傳統錢包中,IsMine 允許使用者取得一種類型的地址(例如 P2PKH),將其突變為另一種地址類型(例如 P2WPKH),錢包仍然會檢測發送到新地址類型的輸出,即使該地址未從錢包請求。描述符錢包不允許這樣做,只會觀察從錢包明確請求的地址。
這些對 IsMine 的變更將使推理錢包實際將觀察哪些腳本變得更容易。但是,對於絕大多數使用者來說,此變更在很大程度上是透明的,不會產生明顯的影響。
匯入和匯出
在傳統錢包中,可以將原始腳本和金鑰匯入到錢包中。這些匯入的腳本和金鑰與錢包生成的金鑰分開處理。這使 IsMine 邏輯複雜化,因為它必須區分可花費和僅觀察。
描述符錢包以不同方式處理匯入腳本和金鑰。只能匯入完整的描述符。然後,這些描述符被新增到錢包中,就像它是錢包本身生成的描述符一樣。這簡化了 IsMine 邏輯,使其不再需要區分可花費和僅觀察。因此,描述符錢包的僅觀察模型也不同,並在下一節中進行了更詳細的描述。
要匯入到描述符錢包中,已新增了一個新的 importdescriptors RPC,該 RPC 使用類似於 importmulti 的語法。
由於傳統錢包和描述符錢包使用不同的機制來儲存和匯入腳本和金鑰,因此已為描述符錢包停用了現有的匯入 RPC。尚未新增用於描述符錢包的新匯出 RPC。
以下 RPC 已為描述符錢包停用:
importprivkeyimportpubkeyimportaddressimportwalletdumpprivkeydumpwalletimportmultiaddmultisigaddresssethdseed
僅觀察錢包
傳統錢包包含私鑰和正在觀察的腳本。那些被觀察的腳本不會貢獻到您的正常餘額。為了查看僅觀察餘額並在交易中使用僅觀察事物,許多 RPC 新增了一個 include_watchonly 選項,允許使用者這樣做。但是,很容易忘記包含此選項。
描述符錢包移動到每個錢包的僅觀察模型。相反,整個錢包根據是否在停用私鑰的情況下建立而被視為僅觀察。這消除了在錢包本身內區分僅觀察事物和非僅觀察事物的需要。
這種變更確實有一個警告。如果具有私鑰啟用的描述符錢包具有沒有所有私鑰的多金鑰描述符(例如只有一個私鑰的 multi(...)),則錢包將無法簽署和廣播交易。此類錢包需要使用 PSBT 工作流程,但典型的 GUI 發送、sendtoaddress 等工作流程仍然可用,只是無法運作。
如果錢包同時包含單金鑰(例如 wpkh(...))描述符和此類多金鑰描述符,則此問題會惡化,因為某些交易可以簽署和廣播,而其他交易則不能。這取決於哪些可用以及幣選擇演算法如何選擇輸入,某些交易僅包含單金鑰輸入,而其他交易將同時包含單金鑰和多金鑰輸入。但是,這不被視為受支援的用例;多重簽名應該在它們自己的錢包中,這些錢包還沒有描述符。雖然使用者現在無法匯出帶有私鑰的描述符,如前所述。
BIP 44/49/84 支援
使用描述符的變更改變了 Bitcoin Core 使用的預設派生路徑,以遵守 BIP 44/49/84。可以匯入具有不同派生路徑的描述符而不會出現問題。
SQLite 資料庫後端
描述符錢包對錢包檔案使用 SQLite 而不是傳統錢包中使用的 Berkeley DB。這將破壞對錢包操作的任何現有工具的相容性,但是,透過移動到描述符已經破壞了相容性。
錢包 RPC 變更
-
upgradewalletRPC 替換-upgradewallet命令列選項。(#15761) -
如果費用設定高於
-maxtxfee命令列設定,settxfeeRPC 將失敗。錢包已經無法建立費用高於-maxtxfee的交易。(#18467) -
已在
sendtoaddress、sendmany、fundrawtransaction和walletcreatefundedpsbtRPC 以及實驗性的新sendRPC 中引入了新的fee_rate參數/選項,以 satoshis per vbyte (sat/vB) 計價。fundrawtransaction和walletcreatefundedpsbt中的傳統feeRate選項仍然存在,用於以 BTC per 1,000 vbytes (BTC/kvB) 設定費率,但預計很快將被棄用以避免混淆。對於這些 RPC,費率錯誤訊息已從 BTC/kB 更新為 sat/vB,說明文件中的 BTC/kB 已更新為 BTC/kvB。send和sendtoaddressRPC 範例已更新,以幫助使用者建立具有明確費率的交易。(#20305, #11413) -
bumpfeeRPCfee_rate選項已從 BTC/kvB 變更為 sat/vB,說明文件已更新。警告使用者這是一個破壞性的 API 變更,但它應該相對溫和:BTC/kvB 和 sat/vB 單位之間的巨大(100,000 倍)差異意味著以 BTC/kvB 而不是 sat/vB 錯誤計算的費率的交易應該會因為費率設定過低而引發錯誤。在最壞的情況下,交易可能以 1 sat/vB 發送,但由於當使用明確費率時預設啟動 Replace-by-Fee (BIP125 RBF),因此可以提升交易費用。(#20305)
GUI 變更
-
在 GUI 中建立或載入的錢包現在將在啟動時自動載入,因此不需要在下次啟動 Bitcoin Core 時手動重新載入。要在啟動時載入的錢包清單儲存在
\<datadir\>/settings.json中,並增強了指定更多錢包載入的任何命令列或bitcoin.conf-wallet=設定。在 GUI 中卸載的錢包將從設定清單中移除,因此它們不會在下次啟動時自動載入。(#19754) -
GUI 對等節點視窗不再顯示「Ban Score」欄位。這是 0.20.1 版本和本版本對處理行為不當對等節點的變更的一部分。有關詳細資訊,請參閱 0.20.1 版本說明中的「關於行為不當對等節點的變更」。(#19512)
低階變更
RPC
- 為了使 RPC
sendtoaddress與sendmany更一致,以下sendtoaddress錯誤代碼已從-4變更為-6:- Insufficient funds
- Fee estimation failed
- Transaction has too long of a mempool chain
-
sendrawtransaction超過maxfeerate的錯誤代碼已從-26變更為-25。錯誤字串已從「absurdly-high-fee」變更為「Fee exceeds maximum configured by user (e.g. -maxtxfee, maxfeerate).」testmempoolacceptRPC 返回max-fee-exceeded而不是absurdly-high-fee作為reject-reason。(#19339) - 為了使錢包和 rawtransaction RPC 更一致,超過最大費率的錯誤訊息已變更為「Fee exceeds maximum configured by user (e.g. -maxtxfee, maxfeerate).」(#19339)
測試
-
BIP 325 預設 signet 可以透過
-chain=signet或-signet設定啟用。設定-signetchallenge和-signetseednode允許啟用自訂 signet。 -
generateblockRPC 允許使用 regtest 模式的測試人員生成由自訂交易集組成的區塊。(#17693)
致謝
感謝所有直接為此版本做出貢獻的人:
- 10xcryptodev
- Aaron Clauson
- Aaron Hook
- Adam Jonas
- Adam Soltys
- Adam Stein
- Akio Nakamura
- Alex Willmer
- Amir Ghorbanian
- Amiti Uttarwar
- Andrew Chow
- Andrew Toth
- Anthony Fieroni
- Anthony Towns
- Antoine Poinsot
- Antoine Riard
- Ben Carman
- Ben Woosley
- Benoit Verret
- Brian Liotti
- Bushstar
- Calvin Kim
- Carl Dong
- Chris Abrams
- Chris L
- Christopher Coverdale
- codeShark149
- Cory Fields
- Craig Andrews
- Damian Mee
- Daniel Kraft
- Danny Lee
- David Reikher
- DesWurstes
- Dhruv Mehta
- Duncan Dean
- Elichai Turkel
- Elliott Jin
- Emil Engler
- Ethan Heilman
- eugene
- Fabian Jahr
- fanquake
- Ferdinando M. Ametrano
- freenancial
- furszy
- Gillian Chu
- Gleb Naumenko
- Glenn Willen
- Gloria Zhao
- glowang
- gr0kchain
- Gregory Sanders
- grubles
- gzhao408
- Harris
- Hennadii Stepanov
- Hugo Nguyen
- Igor Cota
- Ivan Metlushko
- Ivan Vershigora
- Jake Leventhal
- James O’Beirne
- Jeremy Rubin
- jgmorgan
- Jim Posen
- “jkcd”
- jmorgan
- John Newbery
- Johnson Lau
- Jon Atack
- Jonas Schnelli
- Jonathan Schoeller
- João Barbosa
- Justin Moon
- kanon
- Karl-Johan Alm
- Kiminuo
- Kristaps Kaupe
- lontivero
- Luke Dashjr
- Marcin Jachymiak
- MarcoFalke
- Martin Ankerl
- Martin Zumsande
- maskoficarus
- Matt Corallo
- Matthew Zipkin
- MeshCollider
- Miguel Herranz
- MIZUTA Takeshi
- mruddy
- Nadav Ivgi
- Neha Narula
- Nicolas Thumann
- Niklas Gögge
- Nima Yazdanmehr
- nsa
- nthumann
- Oliver Gugger
- pad
- pasta
- Peter Bushnell
- pierrenn
- Pieter Wuille
- practicalswift
- Prayank
- Raúl Martínez (RME)
- RandyMcMillan
- Rene Pickhardt
- Riccardo Masutti
- Robert
- Rod Vagg
- Roy Shao
- Russell Yanofsky
- Saahil Shangle
- sachinkm77
- saibato
- Samuel Dobson
- sanket1729
- Sebastian Falbesoner
- Seleme Topuz
- Sishir Giri
- Sjors Provoost
- skmcontrib
- Stepan Snigirev
- Stephan Oeste
- Suhas Daftuar
- t-bast
- Tom Harding
- Torhte Butler
- TrentZ
- Troy Giorshev
- tryphe
- Tyler Chambers
- U-Zyn Chua
- Vasil Dimov
- wiz
- Wladimir J. van der Laan
以及所有在 Transifex 上協助翻譯的人。
