我想解析 blockchain.info API 信息

I want to parse blockchain.info API info

首先,感谢任何可以帮助我的人。

我从事比特币研究工作,我使用 blockchain.com API 检索有关比特币交易的一些信息。 例如,如果我提取地址 1ADSb1ZZ9k3NsDf3JTQCQ4mb8bthiAN6NJ 的交易,我会得到四条记录,其中一条是 交易 https://www.blockchain.com/btc/tx/69b98a4476767e6fc40f8c33b3aec7fe83b7a7d3f8c7e92203b00c6be5afbdb3

我的问题是,我如何从返回的字段中准确知道地址 1ADSb1ZZ9k3NsDf3JTQCQ4mb8bthiAN6NJ 支付到输出端的哪个地址? 以及返回结果中字段的含义,如 n、tx_index 等。 可以通过网站访问原始数据 https://blockchain.info/rawaddr/1ADSb1ZZ9k3NsDf3JTQCQ4mb8bthiAN6NJ

所以简而言之,我想更多地了解字段的含义以及如何跟踪特定地址的付款,如附件交易示例中所示,我如何识别每个地址汇款到任何地址..

{'block_height': 598496,
      'block_index': 0,
      'hash': '69b98a4476767e6fc40f8c33b3aec7fe83b7a7d3f8c7e92203b00c6be5afbdb3',
      'inputs': [{'prev_out': {'addr': '1ELHDQXk9oFN3oNekrjsuEgdgs9PREhbP8',
                               'n': 0,
                               'script': '76a914923f12b92a44b2bebdee1629dc56b10b1551875b88ac',
                               'spending_outpoints': [{'n': 0,
                                                       'tx_index': 0}],
                               'spent': True,
                               'tx_index': 0,
                               'type': 0,
                               'value': 342000},
                  'script': '483045022100ca541d97ac125eab86d1bb7d8cbd57badbaeb03b4a5ca8c3ffb09e6f4287250a02204cc8974b28d2d9d011fab69aa71931078e3fd7b161e8fa00f0529c0202d0c958012102fa53aa0f511a3f17ee404af88c25437efafe22043e2648ca9c84540d0cbfbfc3',
                  'sequence': 4294967295,
                  'witness': ''},
                 {'prev_out': {'addr': '1LcxEYYTmZzpFBT1NRjMHJaPxQdoqjRUNz',
                               'n': 1,
                               'script': '76a914d7370e1fa4287252343681b303ffa0ae49aae67488ac',
                               'spending_outpoints': [{'n': 0,
                                                       'tx_index': 0}],
                               'spent': True,
                               'tx_index': 0,
                               'type': 0,
                               'value': 342000},
                  'script': '4730440220039c37fd0c0bb6ed6ee8e4d85fdb9b48d26b4d94d9df837e401ab98aaca0495a0220181248ddd1a42e57cea6a5b5f81fa52459c342c24494f72e633d7aa8fe32fd850121028402d935c4360218ff7a1471b0b465e5aacda16e44a9768e19062fd7c5e08701',
                  'sequence': 4294967295,
                  'witness': ''},
                 {'prev_out': {'addr': '1ADSb1ZZ9k3NsDf3JTQCQ4mb8bthiAN6NJ',
                               'n': 1,
                               'script': '76a91465137b65f80173c7fd3dcb898f40fd3fed243c7988ac',
                               'spending_outpoints': [{'n': 0,
                                                       'tx_index': 0}],
                               'spent': True,
                               'tx_index': 0,
                               'type': 0,
                               'value': 342000},
                  'script': '47304402201f984f7dccb2e536e22e896b3220c84b84cece5327c73a85da8bc6b8dca41bcc022045aa417d039f611779f5603f944e28e7a26094e8a8db44d5c1eb21f36e65ebb9012102b039f2a05824c9172f35a4548732e03724d88283241becc72d0dc2fbef18787c',
                  'sequence': 4294967295,
                  'witness': ''},
                 {'prev_out': {'addr': '1AMk76C3A8pLCfzm9YzaR3x2bdt9RZpNMw',
                               'n': 0,
                               'script': '76a91466a56efb73d51f5da3ba4e417f1da6f72d75053488ac',
                               'spending_outpoints': [{'n': 0,
                                                       'tx_index': 0}],
                               'spent': True,
                               'tx_index': 0,
                               'type': 0,
                               'value': 342000},
                  'script': '483045022100d936b8baf3b2a85e570a96d73192690b7714604277041a9846454c1a8510688202207aa240aa837ec2fa86e499d36cac42c63c23522a66a3698727ee9abfef0f1b680121020450fbd3d3191b5c632f263676e8a0a4cf286ade84efb3df156426b426660754',
                  'sequence': 4294967295,
                  'witness': ''}],
      'lock_time': 0,
      'out': [{'addr': '1BTa8D9QY38abvApj5yiahh4nJ3XaTfbWA',
               'n': 0,
               'script': '76a91472b7b93efd311bbce2234913972fe5459d69807d88ac',
               'spending_outpoints': [{'n': 9, 'tx_index': 0}],
               'spent': True,
               'tx_index': 0,
               'type': 0,
               'value': 133591},
              {'addr': '3Nd9T4GqjefS9gzM7SCENGh9tUvUU4Mp8t',
               'n': 1,
               'script': 'a914e59f42949527e3411b9fbe1cbfba1ec1606d08ff87',
               'spending_outpoints': [{'n': 12, 'tx_index': 0}],
               'spent': True,
               'tx_index': 0,
               'type': 0,
               'value': 1223069}],
      'relayed_by': '0.0.0.0',
      'result': -342000,
      'size': 666,
      'time': 1570559470,
      'tx_index': 0,
      'ver': 1,
      'vin_sz': 4,
      'vout_sz': 2,
      'weight': 2664}

感谢您的帮助。我现在正在为戒烟而苦苦挣扎

比特币交易有一个input/ouput模型,我建议你研究一下:https://en.bitcoin.it/wiki/Transaction,它会回答你所有的问题。

我会解释的。您 1ADSb1ZZ9k3NsDf3JTQCQ4mb8bthiAN6NJ 向哪个地址付款的问题没有意义,因为它与其他 3 个地址一起向 2 个不同的地址付款。在这种情况下,通常是一个地址收到 1 个金额,第二个地址收到更改(返回到原始所有者)。为了理解我的意思,我将解释如何在比特币上创建交易。

场景

用户 A 想要将 .1 BTC 发送给用户 B。为此,他们必须收集足够的先前交易输出(他们收到比特币的地方)并将它们用作新交易的输入。因此,假设上周用户 C 向用户 A 发送了 .05 BTC,用户 D 向用户 A 发送了 .1 BTC。您可能认为用户 A 可以获取用户 D 交易的输出并将其发送给 B,但您必须为矿工支付少量费用,以便将您的交易添加到区块链中的区块(矿工几乎永远不会免费开采交易,他们会获得交易费用以及开采区块时的区块奖励).

所以,为了支付费用,假设是 0.00003 BTC。用户 A 需要使用之前的两个输出,因此总共将发送 0.15 BTC。现在,你必须花掉所有的输入,所以如果用户 A 只欠 0.1 BTC,显然他不想发送那么多,所以用户 A 将创建一个交易,将 0.1 BTC 发送给用户 A,以及 0.04997 BTC(0.05 减去交易费)返还给自己。这称为更改地址,通常与用户 A 之前使用的任何地址都不相同。这是出于隐私原因,因此如果有人试图跟踪用户支出,就很难判断谁收到了比特币,以及谁拿回了零钱。