首页 > 解决方案 > 我想解析 blockchain.info API 信息

问题描述

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

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

我的问题是,我如何从返回的字段中确切知道地址 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}

我感谢您的帮助。我现在正在为此苦苦挣扎

标签: blockchainblockchain.info-api

解决方案


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

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

设想

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

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


推荐阅读