問題タブ [tx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
174 参照

bitcoin - ビットコインの生のトランザクションを理解するのに助けが必要

bitcoin rawTX をダイジェストするための Python コードを書き込もうとしていますが、ステップ 2 でかなり行き詰っています。

どこを見ても、バージョンには 4 バイトのフィールドがあり、次に tx 入力の数には varint があると書かれています。

BIP69 は、バージョン 2 が存在する可能性があると言っていますが、下位互換性を維持したいため、フィールド サイズを拡張または変更するものは見当たりません。ただし、私の例は tx バージョン 1 です。

tx 入力の番号は 0x00 にすることはできず、0xfd 0xfe 0xff で始まる場合は 1 バイトより大きくすることしかできません。

例として、アドレス111qT5kHBkZ2q96iUxTY4DGUW2APSmCnzからの2つの入力と大量の出力を持つこの非Coinbase rawtxがあります

トランザクション ID txid: 9ea0df029f138e92f50379df6fde0ade9cf101cb8c975825c74188305cac6eed

https://sochain.com/tx/BTC/9ea0df029f138e92f50379df6fde0ade9cf101cb8c975825c74188305cac6eed

上記のリンクのRAW TXリンクを押すと、間違っていなければ最後の「tx_hex」フィールドである生のトランザクション

it starts with: 0100000000010264066fbd45afd2cedaf3638a9886f80c863e6fe083c797ac0c64c93998a7b10ffd03000023220020bdd68a4cff85348e9300087f455fbad025c1e7fb54bdbf17a8c044876309069dffffffff9cf4f90ec1d0c0eae485724c4dce55e4278a1f78016d224531552c20bb94f74c0000000023220020bdd68a4cff85348e9300087f455fbad025c1e7fb54bdbf17a8c044876309069dfffffffffd4f0544620000..................

これを ffffffff から逆に解釈しても、次のようになります。

01000000 -> 4バイトバージョン

00010264 -> ???????????? これはどのように 0x00 で開始できますか? 最初に表示される 02 は 2 バイト下にあり、0x64 は何ですか?

066fbd45afd2cedaf3638a9886f80c863e6fe083c797ac0c64c93998a7b10ffd -> https://bitcoin.stackexchange.com/questions/3374/how-to-redeem-a-basic-txに従って償還する入力の 32 バイトのハッシュ

03000023 -> 出力インデックス

22 -> varint スクリプト長の 1 バイト

0020bdd68a4cff85348e9300087f455fbad025c1e7fb54bdbf17a8c044876309069d -> 長さ 0x22 のスクリプト

ffffffff 9cf4f90ec.............

明らかにいくつかの情報が欠けています..誰かが少なくとも私にそれを指摘して、または私の考えが間違っていた場所を教えてもらえますか?