post Image
ビットコインのブロックチェーンから入金確認をする

ブロックチェーンから入金確認

入金確認し残高を反映するにはデータベースが必要になります。

用語

UTXO

  • unspent transaction output
  • 未使用トランザクション出力

まだ支払いに使っていないトランザクションのこと。
(ビットコインではこれを合計したものが残高です)

TXID

  • transaction id
  • トランザクションID

トランザクションにつけられたID

VOUT

  • value out
  • 出力

トランザクション内の出力番号。
一つのトランザクションで複数のアドレスへ送金できるため
トランザクション内の送金番号のようなもの。

入金のフロー

  • ビットコインのアドレスに着金したUTXOがあるか確認
  • UTXOが存在したらTXIDとVOUTで複合キーまたはユニークIDを作り未承認状態としてデータベースに登録する
  • データベースにTXIDとVOUTが存在していたら登録しない
  • TXIDで取得したトランザクションが承認されたか確認し承認されたら承認状態とし残高に反映する
  • 承認されなかった場合はエラー状態にする

※TXIDは入金の主キーとして使うことはできないので気をつける。
※承認されなかった場合とはトランザクションがTXIDで取得できなくなること。(複数のブロックエクスプローラを参照している場合は片方届いてもう片方届いてない場合もあるので時間差も考慮する)

UTXOのサンプル

insightへアクセスする

https://insight.bitpay.com/api/addr/12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX/utxo

入金があれば以下のようなUTXOが得られる

[
{
 "address":"12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX",
 "txid":"a162df9f7653ad982e8f630c95c7f7c2bd42d38a1fd4ec4588f611fab4d19b53",
 "vout":5,
 "scriptPubKey":"76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac",
 "amount":0.0002023,
 "satoshis":20230,
 "height":417969,
 "confirmations":1666
},{
 "address":"12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX",
 "txid":"99d1be2407a19c0bfd5909d7a70cf7267877eaaf1987dc8789efeedb5a6993ad",
 "vout":1,
 "scriptPubKey":"76a914119b098e2e980a229e139a9ed01a469e518e6f2688ac",
 "amount":0.000055,
 "satoshis":5500,
 "height":411497,
 "confirmations":8138
}
]

『 Bitcoin 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。