Transactions

誰能解釋 RPC 中 getrawtransaction 和 gettransaction 的行為差異?

  • February 18, 2014

我在QT客戶端右鍵交易歷史,粘貼在下面的TxID中。

第一季度

在下面的測試中,誰能解釋一下後綴的用途-000和用途?

gettransaction 54b9be14443b152b02ed0b18d27504631cccfa84ce9ada03f9558fbb85b6129c-000

第二季度

為什麼原始事務不支持與上一個命令相同的事務 ID 格式?(我需要刪除 -000 個字元)

getrawtransaction 54b9be14443b152b02ed0b18d27504631cccfa84ce9ada03f9558fbb85b6129c-000
ERROR: parameter 1 must be hexadecimal string

第三季度

當我index=1在 bitcoin.conf 中啟用並重新索引時,為什麼我不能呼叫GetTransaction不在我錢包中的交易?我想要 JSON 友好的結果

Q1:錢包視圖中的分類賬條目對應於交易的單個輸出。後綴用於區分使用了交易的哪個輸出。以這種方式格式化它有點奇怪。在大多數地方,’:’ 用作分隔符。

Q2:getrawtransaction查詢記憶體池、未使用的交易輸出集和區塊鏈(如果txindex啟用)以進行交易。它不查詢單個輸出,因此您只傳入十六進制標識符。您可以使用命令查詢單個未使用的交易輸出gettxout(該命令將 txid + 輸出索引作為單獨的參數)。您可以將額外的 1 作為參數傳遞給 getrawtransaction 以對其進行解碼,而不僅僅是原始十六進制。decoderawtransaction可以對任意十六進制編碼的原始交易執行此操作。也許這就是 Q3 的答案。

Q3:gettransaction是一個錢包RPC。它不能對其他任何東西進行操作,因為它需要更高的抽象層。它計算借方/貸方和費用,這需要確定哪些輸出來自/到您,哪些是變化。這需要知道哪些密鑰屬於您。它不查詢區塊鏈,但您可以使用“ getrawtransaction[txid] 1”獲取區塊鏈交易的解碼形式(txindex啟用)。

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