Mais conteúdo relacionado
Semelhante a 【ビットコインとか勉強会#1】トランザクションを読み解く (20)
【ビットコインとか勉強会#1】トランザクションを読み解く
- 10. コマンド使い方
$ /opt/bitcoin/bin/bitcoin-cli -conf=/opt/bitcoin/etc/bitcoin.conf help
== Blockchain ==
getbestblockhash
getblock "hash" ( verbose )
getblockchaininfo
getblockcount
getblockhash index
getblockheader "hash" ( verbose )
getchaintips
getdifficulty
getmempoolancestors txid (verbose)
~snip;
詳しくはこちら https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
- 13. 中身まとめ1
- txid トランザクションID
- hash
- size トランザクションのサイズ
- vsize
- version 仕組みのバージョン。今のところ1固定(たぶん)
- locktime 大体0。500,000,000以下の時にはブロック高として解釈されてソレより前のブロックには取り込まれない。ソレ
より大きい場合にはunixタイムスタンプとして解釈されて、その時刻より前にコレが有効ではなかったことを意味する。
未来の時刻になっている場合にはソレまでまってからネットワーク全体に送信する。
- 14. 中身まとめ2 インプット
- v in (インプットのこと)複数に分かれることもあります。
- txid UTXOトランザクションのハッシュ
- vout
- scriptSig unlocking Scriptのこと。後述のlocking scriptと組み合わせて有効性を確認します。独自の言語で入っています。
スクリプト言語というとperlとかphpを想像しますが、ちょっと違う言語です。とはいえ解説すると長いので、詳しくはま
た今度。
- asm スクリプトが入ってる。
- hex ここからdecodescriptコマンドを使ってasmが見れます。
- sequence 何故か今のところ固定。
- 15. 中身まとめ3 アウトプット
- v out アウトプットデータ
- value 金額
- n 順番
- scriptPubKey locking scriptのこと。同じくhexでデコードできます。
- asm
- hex
- reqSigs
- type locking scriptのタイプ。マルチシグを使うとmultisigとかになる模様。詳しくは
https://github.com/bitcoin/bitcoin/blob/master/src/script/standard.cpp#L24 辺りを参考に。
- addresses 送金ビットコインアドレス(複数)
Notas do Editor
- 主にバックエンドを担当しています。
linuxを使っています。
- この中でbitcoinに触ったことがある人はどれくらいいますか?
自身でノードを立てたことがある人は?
- 今回のテーマは「トランザクションを読み解く」なので、サラッと触っておきます。
- それでもクライアントという単語は出てきたりします。
- ウォレット内にはビットコインアドレスがいくつでも保管されます。
Berkeley DBはsubversionとかでも 利用されていますね。
- ビットコインでは残高を持っていません。トランザクションをすべて計算することで自分がいくら持っているかを計算することができます。
もちろんウォレットにはキャッシュとしてデータを持っていると思いますが。
- インストール方法などは自分のqiitaを見て頂ければ!
- helpコマンドを見てみましょう。
それぞれのカテゴリに別れてヘルプが見れます。結構親切ですね。
- 今回使うコマンドはこの2つです。
- それでは実際に中身を見てみましょう。
blockchain.infoから適当なトランザクションを取得してきます。
getrawtransactionでraw状態のデータを取得します。
それをデコードさせます。
- txid トランザクションID- hash- size トランザクションのサイズ- vsize- version 仕組みのバージョン。今のところ1固定(たぶん)- locktime 大体0。500,000,000以下の時にはブロック高として解釈さあれてソレより前のブロックには取り込まれない。ソレより大きい場合にはunixタイムスタンプとして解釈されて、その時刻より前にコレが有効ではなかったことを意味する。未来の時刻になっている場合にはソレまでまってからネットワーク全体に送信する。- v in (インプットのこと)複数に分かれることもあります。 - txid UTXOトランザクションのハッシュ - vout - scriptSig さっき出てきたunlocking Scriptのこと。後述のlocking scriptと組み合わせて有効性を確認します。独自の言語で入っています。スクリプト言語というとperlとかphpを想像しますが、ちょっと違う言語です。とはいえ解説すると長いので、詳しくはまた今度。 - asm スクリプトが入ってる。 - hex ここからdecodescriptコマンドを使ってasmが見れます。 - sequence 何故か今のところ固定。- v out アウトプットデータ - value 金額 - n 順番 - scriptPubKey locking scriptのこと。同じくhexでデコードできます。 - asm - hex - reqSigs - type locking scriptのタイプ。正直よーわからん。pubkeyhash以外を見たことが・・・ソースを見てもソレ以外ないぞ? - addresses 送金ビットコインアドレス(複数)