Transactions

在 Bitcoin Core 的控制台中檢索舊交易 -getrawtransactions 返回“沒有這樣的記憶體池交易”錯誤

  • January 14, 2021

我是執行完整比特幣節點的新手。差不多一周後,我可以下載整個區塊鏈。我的電腦 24/7 全天候執行以支持這一事業。當我嘗試驗證我在比特幣核心控制台(版本 0.20.1)中的一些舊交易時,我收到了一些我不理解的錯誤,我的搜尋並沒有幫助我解決這個問題。

我在控制台中執行此程式碼: getrawtransaction transaction ID true

我粘貼過去交易的 ID

此程式碼返回一條錯誤消息:

沒有這樣的記憶體池交易。使用 -txindex 或提供區塊雜湊來啟用區塊鏈交易查詢。使用 gettransaction 進行錢包交易。(程式碼-5)

值得一提的是,我沒有使用Bitcoin Core的錢包。我使用的是第三方錢包。

我按如下方式創建了bitcoin.conf文件(放置在 ~/.bitcoin/bitcoin.conf 中):

交易指數 = 1

當我執行 bitcoin-qt 時,我收到了錯誤消息:

錯誤:修剪模式與 -txindex 不兼容。

我想知道是否有人可以幫助我解決這個問題?

謝謝

您正在嘗試使用 Bitcoin Core 的可選功能:查詢舊交易的能力。

此功能需要:

  • (a) 完整的區塊鏈(它還能從哪裡獲得交易)
  • (b) txid 的索引,因此無需讀取 270 GB 即可找到您要查找的內容。

您收到的錯誤消息是告訴您此 (b) 索引未啟用。當您嘗試啟用它時,它會失敗,因為您實際上並沒有首先擁有區塊鏈 (a)(它已被修剪),因此無法對其進行索引。

如果你真的需要這個功能,你需要禁用修剪,從頭開始同步(因為它需要再次下載區塊鏈),並啟用索引。

但是,您說“嘗試驗證”可能突出了您的一個誤解:getrawtransaction不驗證任何內容,它只是在您的本地區塊鏈副本中檢索交易。一切都已經過驗證,即使它沒有保存在磁碟上。通常,當您關心特定交易時,是因為它直接或間接影響您自己的資金,而推薦的解決方案是簡單地使用好的錢包軟體 - 它只會向您顯示經過驗證的交易以及其整個歷史都經過驗證的交易。

這是我自己的問題的答案:

準備一個 Bitcoin.conf 文件(您可以使用此表單來生成一個,具體取決於您的作業系統以及您需要從比特幣核心執行的操作:https ://jlopp.github.io/bitcoin-core-config-generator/ )。向該文件添加以下行

prune=0 txindex=1 reindex=1 (如果您之前已經下載過,這將再次開始下載整個區塊鏈)。如果您要第一次執行核心,請忽略此行。如果您使用此程式碼重新索引區塊鏈,請確保稍後在重新索引完成後將其刪除。

祝你好運

引用自:https://bitcoin.stackexchange.com/questions/101291