C-Sharp

來自 DecodeRawTransaction (C#) 的發件人地址

  • October 30, 2015

我正在嘗試使用 C# 中的比特幣 JSON RPC 獲取發件人地址。所以我 GetRawTransaction 然後使用 DecodeRawTransaction 方法返回我的 JSON 對象。我可以在此接收方地址的“vout”中看到,但在“vin”中看不到發送方地址。

任何人都可以幫忙嗎?我可能對這個問題的表述很糟糕,所以請詢問您是否需要更多資訊。謝謝。

下面的引用摘自我對如何實現像 SatoshiDice 這樣的遊戲的回答? 您正在尋找的內容在我下面的答案的這一部分中得到解決。

獲取客戶金額和付款地址

  1. 打電話bitcoind getrawtransaction [The incoming transaction ID] 1。末尾的 1 將以“詳細模式”返回數據,本質上是 JSON 格式的原始數據。
  2. 從原始交易細節中,從對像中獲取txidand 。通過此事務,再次呼叫.vout``vin``bitcoind getrawtransaction``txid
  3. 從這些原始事務詳細資訊中找到vout對象,由vout步驟 #2 中的索引引用。在這個vout 對像中,應該有一個收款人地址列表。獲取並儲存第一個地址。

值得一提的是,收到的付款可以是對多個收件人地址的大量先前交易的總和。獲取發起人地址並不總是直截了當的,因為原始付款可能包含來自多個發送地址的多筆付款。

這就是為什麼我在回答 SatoshiDice 問題時提到從第二個vout結果中獲取第一個地址。

您可以放心地假設,如果有人向您發送來自多個賬戶的付款,他們將控制所有賬戶。因此,選擇列表中的第一個將為您提供正確的地址。

您可以使用BitcoinLibGetTransactionSenderAddress方法,但重要的是您要了解這是一種黑客攻擊,因為比特幣的協議不支持“發件人地址”,並且僅適用於胖客戶端,例如比特幣核心等。

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