Bitsocket – BitDBの開発者、BCHのトランザクションデータをリアルタイムで取得するAPIをリリース

2018.11.08

BCHNews編集部

こんにちは、BCHNews編集部です。

2018年10月25日、BitDBの開発者である_unwriter氏が、自身のTwitter上で、Bitsocketのリリースを発表しました。

Bitsocketは、リアルタイムでBCHブロックチェーン上のトランザクションの情報を取得できるAPIです。本記事では、このBitsocketについて内容を紹介していきたいと思います。

Today I’m releasing Bitsocket, a powerful bitcoin push notification infrastructure for building realtime event driven bitcoin applications.

[日本語訳]
本日、Bitsocketをリリースしました。Bitsocketは、リアルタイムなイベント駆動型ビットコインアプリケーションを構築するための、パワフルなプッシュ通知インフラです。

Bitsocketとは

(画像引用元:https://www.yours.org/content/bitsocket–the-realtime-api-for-bitcoin-0c646d55c152

Bitcoinのトランザクションをアプリで使用するためには、ブロックチェーンからそのアプリに必要なトランザクションデータを取得する必要があります。その際、通常は、取得した生のトランザクションデータを解析して人間が理解できるフォーマットに変換した上で、条件に一致するトランザクションデータかどうかを判断する必要がありました。

これは、非常に面倒で計算コストもかかりますが、ビットコインが生まれてからおよそ10年近く経過しているにも関わらず、簡単にトランザクションデータを抽出する方法がありませんでした。

そんな中、2018年10月8日に_unwriter氏がリリースしたBitQueryでは、APIのクエリで、簡単にトランザクションデータを取得、解析、フィルタリングすることができます。詳しくは過去記事をご覧ください。
【過去記事】
『Bitquery – チューリング完全なBitDBのクエリがリリースされる』
https://bchnews.jp/bitcoincashnews-e/3152

このBitqueryを利用したBitDBは、リクエストを送るたびに結果が返ってくるpull型のAPIでしたが、今回リリースされた、Bitsocketは、リアルタイムで条件に当てはまるデータが送信されてくるpush型のAPIということになります。

以下の画像は、自分のアドレスにBCHを送金した際に、リアルタイムでBitsocketからトランザクションデータが返ってくることを表すデモンストレーションです。

Bitsocket
(画像引用元:https://www.yours.org/content/bitsocket–the-realtime-api-for-bitcoin-0c646d55c152

ウォレットアプリとBitsocketが直接やり取りをしているわけではありません。ウォレットで作成されてネットワークに伝搬されたトランザクションをBitsocketが拾って結果として返してきています。

Bitsocketの仕組み

  1. 変換
    Bitsocketは。トランザクションをTNAと呼ばれるモジュールを使って構造的なフォーマットに変換します。
    TNAは、トランザクションの生データをBitDBで使われる形式に変換するモジュールです。(詳しくはこちら。)

    (画像引用元:https://www.yours.org/content/bitsocket–the-realtime-api-for-bitcoin-0c646d55c152
  2. イベント化
    Bitsocketは、BitDBとは異なりデータをMongoDBに保存したりはしません。ステップ1で変換されたトランザクションデータを、リアルタイムで、メモリ上でフィルタリングしてイベント化します。

    (画像引用元:https://www.yours.org/content/bitsocket–the-realtime-api-for-bitcoin-0c646d55c152
  3. プッシュ
    作成されたイベントは、SSE(Server Sent Events)と呼ばれるpush通知を送るための技術を利用してアプリケーションにプッシュされます。

    (画像引用元:https://www.yours.org/content/bitsocket–the-realtime-api-for-bitcoin-0c646d55c152

使い方

使い方は非常にシンプルです。試しに以下のコードをメモ張などのエディタにコピー&ペーストして、bitsocket.htmlのようなファイル名で保存してください。

<html>
<body>
<script>
  var query = { "v": 3, "q": { "find": {} } }
  var b64 = btoa(JSON.stringify(query))
  var bs = new EventSource('https://bitsocket.org/s/'+b64)
  bs.onmessage = function(e) {
   var str = JSON.stringify(JSON.parse(e.data), null, 2)
   document.write("</p><pre>" + str + "</pre><p>")
  }
</script>
</body>
</html>

保存したファイルをブラウザで開くとトランザクションデータを取得できることが確認できます。

これだけでBitcoinCashのブロックチェーンから任意のデータを取得することができます。Bitsocketを利用するために必要なのは、クエリの文法を覚えることだけです。クエリは、BitDBと同じくBitqueryが利用されています。

【過去記事】
『Bitquery – チューリング完全なBitDBのクエリがリリースされる』
https://bchnews.jp/bitcoincashnews-e/3152

さいごに

BitDBとBitsocketとBitqueryの関係性がややこしく感じたかもしれませんが、以下のように考えてもられば良いと思います。

  • BitDBは、pull型のAPI。
  • Bitsocketは、push型のAPI。
  • Bitqueryは、BitDBとBitsocketの両方で利用されているクエリ言語。

Bitsocketを利用すれば、特定の条件のトランザクションがネットワークに伝搬された時点でプッシュ通知を行うアプリなどの開発が容易になります。BitDBと同様、開発者にとっては非常に便利なものとなるでしょう。

最新情報はこちら

BCHNewsでは公式のTwitterアカウント(@bchnews_jp)を開設しました。
更新情報を配信しておりますので、よろしければフォローしていただけると嬉しいです。

BCHNews編集部

BCHNews編集部です。
日々更新される暗号通貨関連のニュースを読者の皆様にお届けします。

関連記事

JavaScriptベースでBCHアプリケーションを作成できるBITBOX SDK

2018.12.05

by きなこ

Bitcoin CashにおけるRabin Signatures

2018.09.25

by BCHNews編集部

bookchain – BCHのブロックチェーンを利用した書籍保存サービスを紹介します

2018.11.28

by BCHNews編集部

Bitquery – チューリング完全なBitDBのクエリがリリースされる

2018.10.12

by BCHNews編集部