Transactions

來自 blockchain.info 的單個交易數組

  • May 27, 2018

作為一個小的學習/愛好項目,我正在編寫一個小的 c++ 程序來從 blockchain.info 中提取交易列表並以可視方式顯示它。

我希望我可以遍歷塊,獲取每個 TX,然後將交易列表提取到數組中。即塊/transactionID/sending_address/amount/receiving_address等

我已經連接到 blockchain.info 並且可以使用 jsoncpp 遍歷每個塊。但如果我看一個這樣的例子:

<https://blockchain.info/block-height/100001?format=json>

…特別是這樣的交易: https ://blockchain.info/rawtx/8131ffb0a2c945ecaf9b9063e59558784f9c3a74741ce6ae2a18d0571dac15bb

輸入的總和是否總是與輸出的總和匹配?當每個輸出超過 1 時,我將如何結合哪個輸入向每個輸出發送多少?

非常感謝。

很好 - 但我保證,這不會是一個“小”項目:-)

輸入的總和是否總是與輸出的總和匹配?

不!有一個一般規則,無論有什麼區別,都是礦工費。更準確地說,礦工可以自由地將其作為費用。因此,這就是為什麼您應該在交易中始終“返回”地址的原因。

當每個輸出超過 1 時,我將如何結合哪個輸入向每個輸出發送多少?

比特幣交易的想法是,它們不直接連結到地址,而是連結到以前的交易。而且它們不是“可分的”,而是更“附加的”。我試圖解釋:資金從以前的交易轉移到一個新的位置。你的錢包軟體可能很容易處理多個地址。如果你從你的錢包發送到一個新的目標,錢包可能需要 2 或 3 或 4 個之前的 tx 來發送到新地址,導致單個 tx 上的資金不足以支付總金額。從這個意義上說,您(您的 C++ 程式碼)只能將輸入“匹配”到輸出(使用派生地址)。許多大筆交易有數百個輸入和/或輸出 - 想像一下水龍頭或交易所:它們創建 1 筆交易,向不同的所有者/使用者支付許多款項(例如<https://blockchain.info/de/tx/2062a2717ca2f77c6935ff685d33086aa5db2f554ecd4d5232432cf9cb6a4006> ).

以您為例:可以看到需要 5 個輸入,將 250BTC 花費到 15xif4SjXiFi3NDEsmMZCfTdE9jvvVQrjU 和 1mio Satoshis 到 1NkKLMgbSjXrT7oHagnGmYFhXAWXjJsKCj。這幾乎就是你能說的,在這個 tx.txt 中發生了什麼。安德烈亞斯(以及他的書“掌握比特幣”,線上可讀,強烈推薦)的類比是法定貨幣。您的錢包裡可能有 10、20 和 50 歐元的鈔票,但不知道是誰寄的。現在您要支付 35 歐元。所以你給 50,可能會收到 3 倍 5 歐元的零錢。你仍然不知道他們來自誰,但只是數量。然後這些“三倍 5 歐元”可以用作新的 15 歐元交易的 3 個輸入。

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