Raw-Transaction

送出一個已經在區塊鏈上的原始 tx 來測試它。我得到“缺少輸入”而不是“已經存在”。為什麼?

  • April 21, 2019

為了更全面地了解原始交易等,我查看了原始形式的 tx 518c41d5e59114f6a23383afbe95f02cdd09cb50cabd8390bdd9162a890435b3

01000000017871f56f7be2743293abb1adccf21526265e4ad793fddbc08508417293fd6b4e000000006a47304402201f3b98d55c16a1ff9e66cbdd5533fd74d18362477f50dbce357d66e1233ba469022066fd837cf7e1e030f5aab0f22fec06c7d98ee948fd8b9aba185512426079e0a201210284ca3e364bebb4cafb9fa76624927078e16a4244314f824ea8acff0ef1ba4627ffffffff0220a10700000000001976a91488d924f51033b74a895863a5fb57fd545529df7d88ac81f1d909000000001976a914db4c1f7949870fae5cdc366a45e2ea39c084547c88ac00000000

然後我嘗試送出該原始表單,只需複制並粘貼到我的比特幣錢包程序中以“發送交易”並得到錯誤missing inputs (code -25)。這本身似乎很奇怪,因為這是區塊鏈上原始交易的精確複製和粘貼,難道它不應該缺少任何東西嗎?另外,我不應該得到“交易已經存在”錯誤嗎?還是我不了解如何送出原始交易?

比特幣核心不知道鏈中已經存在哪些交易。它不維護完整的索引,因為……它不需要。事實上,在剪枝模式下執行時,它甚至根本沒有鍊或它的交易。

它唯一擁有的是一組未使用的交易輸出。由於您正在嘗試重播現有事務,因此所有輸入都已被其先前實例花費。結果,預期和正確的響應是缺少輸入 - 即您的交易是雙花,因此無效。

我想說這是UTXO模型的優點之一:重放和雙花是一回事,不需要區分。

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