付款服务提供商如何确认交易?

时间:2020-07-27 17:12:26

标签: transactions blockchain bitcoin

我了解比特币交易可以有多个输入/输出,但是我对支付提供商如何确认第三方钱包中的支付收据很感兴趣?

我了解到,一旦进入钱包,您对交易的看法就会有所不同,因此可以向用户提供有关该特定交易的清晰视图-因为您知道哪个地址属于该钱包。

但是,有没有办法猜测或者更接近不属于您所拥有的钱包的交易价值的总和?这样我们就可以清楚地向用户显示:发送了多少,从哪里发送了多少。好的,可能有多个输出,我们必须显示它们,但是我们可以将它们合计并显示交易的总和。 归根结底,一旦您将交易ID发送给收件人(作为付款证明),他们就希望看到您的钱包,他们的钱包以及已支付的总金额。不是15项输入,还有29项输出,确认以及所有这些东西。

我明白了,这非常重要,也很重要。

但是我正在尝试将一个浏览器组合在一起,以便在一个简单的方式(没有所有这些输入和输出)下(向比特币普通用户)显示交易(向所有比特币普通用户)更容易,但是更简单一些,例如从,到,价值,费用,就是这样。

我了解,按照设计,区块链无法正常工作。无论如何,我想问一下这里的社区,您是否对实现或接近实现有任何线索或想法:)

对此我很乐意提出建议和想法!

预先感谢

1 个答案:

答案 0 :(得分:0)

但是,有没有办法猜测或接近不属于您所拥有的钱包的交易价值的总和?

是的,当然。在钱包中,您只需运行以下命令:

getrawtransaction <TXID> 1

任何翻译-是属于您的钱包,还是不属于您。

一个事务具有数组vIn,其中包含在此事务中花费的输入列表。每个输入花费了另一个事务的输出,并且在该vOut中指定了输出值。 因此,为了计算输入的交易价值,您需要迭代交易的vIn个。对于每个输入-您都需要提取对(TXID,n),其中:

  • TXID-交易ID,其输出用于此。
  • n-该交易vOut内的索引

此后,您必须获取事务,提取适当的vOut并从该vOut中提取值。

例如,让我们回顾Emercoin交易TXID = 5cf7bb31bde158a12abb6d4d9ff7acd91a00fc71a2baca601405114322fa171d

何时运行命令:

$ emc getrawtransaction 5cf7bb31bde158a12abb6d4d9ff7acd91a00fc71a2baca601405114322fa171d 1

我们将看到很长的JSON输出,其中包含:

 "vin": [
    {
      "txid": "ab16f439260f41d4e086428c78a5ef3fdb31002f4ce942e212b7c6071e52135c",
      "vout": 1,
      "scriptSig": {
        "asm": "3045022100e055effb7427af1a8504387fcdc8ed10859d029695e6a3d10d8e24794c9d55a802205ec2ceb8a937573b306f859bf34654edfc8b9c1716c008c0ae0e4b258b936b0b[ALL] 024d68c6511929667f80caae1f46a5cee3a307503a429f6ccc2ef52e306f966f87",
        "hex": "483045022100e055effb7427af1a8504387fcdc8ed10859d029695e6a3d10d8e24794c9d55a802205ec2ceb8a937573b306f859bf34654edfc8b9c1716c008c0ae0e4b258b936b0b0121024d68c6511929667f80caae1f46a5cee3a307503a429f6ccc2ef52e306f966f87"
      },
      "sequence": 4294967294
    }, 
    {
      "txid": "ab16f439260f41d4e086428c78a5ef3fdb31002f4ce942e212b7c6071e52135c",
      "vout": 0,
      "scriptSig": {
        "asm": "304402206c177d2be96bf666c147e0c13561d7d2cf915f8f8f1f16aeaa805383acc5572e02206104a70e6781d151476bd0345f27adaf896adb505f0fd285adcaddf4474f7de0[ALL] 03370ebd7dae0e80420ebf7d6326759517d8e58821337b476b2656f739bf0082de",
        "hex": "47304402206c177d2be96bf666c147e0c13561d7d2cf915f8f8f1f16aeaa805383acc5572e02206104a70e6781d151476bd0345f27adaf896adb505f0fd285adcaddf4474f7de0012103370ebd7dae0e80420ebf7d6326759517d8e58821337b476b2656f739bf0082de"
      },

如您所见,该事务具有来自同一TX的2个输入:

  • ab16f439260f41d4e086428c78a5ef3fdb31002f4ce942e212b7c6071e52135c,1
  • ab16f439260f41d4e086428c78a5ef3fdb31002f4ce942e212b7c6071e52135c,0

使用命令提取它们:

$ emc getrawtransaction ab16f439260f41d4e086428c78a5ef3fdb31002f4ce942e212b7c6071e52135c 1

您将看到vOut数组,其中包含值:

  "vout": [
    {
      "value": 0.000100,
      "n": 0,
      "scriptPubKey": {
        "asm": "2 OP_DROP 30354830384b35354449 9999 OP_2DROP 747970653d74657374696e670a2c706f736974696f6e5f69643d313031340a2c706f736974696f6e5f6e616d653dd09cd0bed0b4d0b5d0bbd0b820d0a1d092d09a2e20d09fd180d0b5d0b8d0bcd183d189d0b5d181d182d0b2d0b020d0b820d0bdd0b5d0b4d0bed181d182d0b0d182d0bad0b82028d0a4d0b8d0bd2e20d090d0bad0b0d0b4d0b5d0bcd0b8d18f290a2c76616c75653d36340a2c656e645f74696d653d313539363033323330313532300a2c636f6d70616e793d46696e61636164656d79 OP_DROP OP_DUP OP_HASH160 038411f3dfac30f42e999b87b165046bc205919f OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "52750a30354830384b35354449020f276d4cc4747970653d74657374696e670a2c706f736974696f6e5f69643d313031340a2c706f736974696f6e5f6e616d653dd09cd0bed0b4d0b5d0bbd0b820d0a1d092d09a2e20d09fd180d0b5d0b8d0bcd183d189d0b5d181d182d0b2d0b020d0b820d0bdd0b5d0b4d0bed181d182d0b0d182d0bad0b82028d0a4d0b8d0bd2e20d090d0bad0b0d0b4d0b5d0bcd0b8d18f290a2c76616c75653d36340a2c656e645f74696d653d313539363033323330313532300a2c636f6d70616e793d46696e61636164656d797576a914038411f3dfac30f42e999b87b165046bc205919f88ac",
        "reqSigs": 1,
        "type": "name_pubkeyhash",
        "addresses": [
          "EHUVjZ2cyTqjvqxkg7h587XeEMAGpsi4sX"
        ]
      }
    }, 
    {
      "value": 1.509200,
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 085caddacb878333658194f96ec45b035be541d8 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a914085caddacb878333658194f96ec45b035be541d888ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "EHv7vaRDN1q7b7XsmRYEugj6MuZpADbvYy"
        ]
      }
    }
  ],

将所有这些值相加,您将获得一个总的TX输入值(由于TX FEE,输出值可能会更少)。