Bitcoin-Core-Development
MiniWallet 類目前在 Bitcoin Core 功能測試框架中做了什麼和需要做什麼?
在禁用錢包的情況下建構比特幣核心後,我嘗試執行 Taproot 功能測試(因為我知道在 2020 年 12 月撰寫本文時核心錢包中沒有 Taproot 程式碼)。
但是,它們被跳過了,因為許多功能測試目前依賴核心錢包來創建和簽署交易。(感謝 Marco Falke 在 IRC 上指出這一點。)
不過, MiniWallet的引入提高了能夠更新這些非錢包功能測試的前景,因此它們不再依賴於 Core 錢包。
Bitcoin Core repo 上有一個很好的第一個問題,可以為所有非錢包測試執行此操作。正如馬可在該問題中所說:
這是一個開放式問題。您可以通過 找到候選測試
git grep self.skip_if_no_wallet()
。排除以 開頭的測試wallet_
,因為這些測試旨在測試比特幣核心錢包。那麼MiniWallet 類目前做了什麼(也許需要做),以便可以重寫所有非錢包功能測試以不再依賴於 Core 錢包?
目前,
MiniWallet
不做任何簽名。它生成一個地址並向它發送一個有效的 regtest coinbase。然後,它會建構一個 OP_TRUE 交易,向您自己支付費用。在這個階段我不確定這是否足以取代對所有非錢包功能測試的核心錢包的依賴,但我會更多地研究它。
MiniWallet不是由節點處理的錢包,它是用 Python 編碼的用於測試的“外部”錢包。gettransaction 僅適用於節點處理的那些錢包,這就是錯誤顯示的原因:非錢包交易 id