Unterschied zwischen coinbaseaux.flags und coinbasetxn.data?

Nachdem ich den größten Teil des Protokolls gelesen und versucht habe, alles zusammenzusetzen, bin ich immer noch ratlos, wie einige Dinge funktionieren. Zum Beispiel der Unterschied zwischen coinbaseaux.flagsund coinbasetxn.data.

Damit coinbasetxn.dataist es sinnvoll, weil es bereits gebaut ist, und wir können diese Daten verwenden, um die Coinbase-Daten bei Bedarf zu ändern und dann Transaktionen für Merkle Root hinzuzufügen. Die coinbaseaux.flagsDaten hingegen machen für mich keinen Sinn. Ich konnte keine Erwähnung der flagsOption finden.

Unten sind 2 Transaktionen - eine mit Coinbaseaux und die andere mit Coinbasetxn. Wenn jemand erklären könnte, wie Coinbaseaux zum Erstellen der Coinbase-Transaktion verwendet werden kann, oder wenn es für etwas anderes ist, wäre das sehr zu schätzen!

{
    "result":{
        "version":2,
        "previousblockhash":"00000000000000075f2f454573766ffae69fe41d6c7ccfcabbf8588fcd80ed52",
        "transactions":[
                  {     
                        "data":"0100000001cba672d0bfdbcc441d171ef0723a191bf050932c6f8adc8a05b0cac2d1eb022f010000006c493046022100a23472410d8fd7eabf5c739bdbee5b6151ff31e10d5cb2b52abeebd5e9c06977022100c2cdde5c632eaaa1029dff2640158aaf9aab73fa021ed4a48b52b33ba416351801210212ee0e9c79a72d88db7af3fed18ae2b7ca48eaed995d9293ae0f94967a70cdf6ffffffff02905f0100000000001976a91482db4e03886ee1225fefaac3ee4f6738eb50df9188ac00f8a093000000001976a914c94f5142dd7e35f5645735788d0fe1343baf146288ac00000000",
                        "hash":"7c90a5087ac4d5b9361d47655812c89b4ad0dee6ecd5e08814d00ce7385aa317",
                        "depends":[],
                        "fee":10000,
                        "sigops":2
                  },
                  ...
            ],
        "coinbaseaux":{
            "flags":"062f503253482f"
        },
        "coinbasevalue":2501100000,
        "target":"0000000000000026222200000000000000000000000000000000000000000000",
        "mintime":1379549850,
        "mutable":[
            "time",
            "transactions",
            "prevblock"
        ],
        "noncerange":"00000000ffffffff",
        "sigoplimit":20000,
        "sizelimit":1000000,
        "curtime":1379553872,
        "bits":"19262222",
        "height":258736
    },
    "error":null,
    "id":"curltest"
}

VS.

{
 "error": null,
 "result": {
   "coinbasetxn": {
     "data": "0100000001000000000000000000000000000000000000000000000000000000
0000000000ffffffff1302955d0f00456c6967697573005047dc66085fffffffff02fff1052a01
0000001976a9144ebeb1cd26d6227635828d60d3e0ed7d0da248fb88ac01000000000000001976
a9147c866aee1fa2f3b3d5effad576df3dbf1f07475588ac00000000"
   },
   "previousblockhash": "000000004d424dec1c660a68456b8271d09628a80cc62583e5904f5894a2483c",
   "transactions": [],
   "expires": 120,
   "target": "00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
   "longpollid": "some gibberish",
   "height": 23957,
   "version": 2,
   "curtime": 1346886758,
   "mutable": ["coinbase/append"],
   "bits": "ffff001d"
 },
 "id": 0
}

Antworten (1)

Wenn die Mutation „coinbase“ (siehe BIP 23 ) vorhanden ist, legt der Schlüssel „coinbaseaux“ Regeln dafür fest, was in einer Coinbase sein MUSS, wenn/wenn eine gebaut/modifiziert wird.

Der Schlüssel "coinbasetxn" ist optional, und wenn er weggelassen wird, wird die Mutation "coinbase" angenommen und die Implikation ist, dass "coinbaseaux" Anforderungen zum Erstellen der Coinbase definieren KANN.

Der Schlüssel „coinbaseaux“ ist ebenfalls optional, sein Weglassen hat jedoch gemäß BIP 23 keine Auswirkungen.