BitcoinCashトランザクションの完全なデータベース、BitDB 2.0がリリースされる
2018.09.28
BCHNews編集部
こんにちは、BCHNews編集部です。
9/26、yours.org(他のユーザーの投稿にBitconCashでチップを支払えるSNSサービス)に、「Introducing BitDB 2.0」と題する記事が投稿され、BitDB 2.0のリリースが発表されました。
画像引用元:https://www.yours.org/content/introducing-bitdb-20-e8c17c845939
本記事では、BitDB 1.0を紹介した後に、BitDB 2.0の特徴をBitDB1.0との違いと併せて紹介したいと思います。
BitDB 1.0とは
BitDBの最初のバージョンであるBitDB 1.0は、BitcoinCashのOP_RETURNデータが格納されるデータベースです。
BitcoinCashには、Bitcoinと同様に、トランザクションの中に任意のデータを書き込めるOP_RETURNという仕組みがあります。この仕組みを利用してブロックチェーンをデータベースのように利用する様々なアプリケーションが開発されており、記事の投稿者であるunwriter氏(@_unwriter)も、tokengraphやchainfeedなど多くのアプリケーションを開発しています。
unwriter氏は、自身の開発経験から、OP_RETURNのデータを取得できる標準APIがあると便利であると考え、BitDBを開発し、数ヶ月前にリリースしていました。
BitDB 1.0は、ブロックチェーン内の全てのOP_RETURNデータをMongoDB(データベース)に保存しており、クエリを発行すれば任意のデータを取得することができます。
画像引用元:https://bitdb.network/v2
BitDB 1.0を利用したアプリケーションには、既に以下のようなものがあります。
サービス名 | 概要 |
---|---|
matter.cash | BitcoinCashベースの分散型ブログおよびソーシャルメディアコミュニティ |
simpleledger.cash | BitcoinCashのブロックチェーン上でトークンを発行できるプロトコル |
memo++ browser extension | BitcoinCashベースの分散型ブログおよびソーシャルメディアコミュニティであるmemo.cashのchrome拡張機能 |
bookchain.cash | BitcoinCashのブロックチェーン上に重要な書物を保存できるサービス |
memopay | 手数料を支払うことで多くのBitcoinCashウォレットのアドレスにメッセージを配信してくれるサービス |
なお、BitDBがサポートしているブロックチェーンはBitcoinCashのみですが、OP_RETURNが実装されているBitcoinライクなブロックチェーンであれば技術的にはサポート可能であるとのことです。
その上で、BitcoinCashを選択した理由は以下の通りとしています。
- BitcoinはOP_RETURNに書き込めるデータの容量が80バイトであるのに対して、BitcoinCashは220バイトと、より多くのデータを書き込める。
- Bitcoinのブロックサイズの上限は1〜4MBであるが、BitcoinCashは32MBであり、より大きなデータを保存できる。
- データをトランザクションに書き込む際にマイナーに手数料がかかるが、BitcoinCashは手数料が低い。
画像引用元:https://bitdb.network/v1
BitDB 2.0
前述のBitDB 1.0の次のバージョンとしてリリースされたのがBitDB 2.0です。
以下、BitDB 2.0の特徴を紹介します。
開発者向けの内容も含むので難しいところもあるかもしれませんが、BitDB 1.0との違いをなんとなく掴んでいただけたらと思います。
特徴1:トランザクション全体を保存する
BitDB 1.0は、ブロックチェーンからOP_RETURN部分のみを取得してデータベースに格納していました。純粋なOP_RETURNアプリケーションを構築する分には十分でしたが、トランザクション全体を完全に活用することができず、限界がありました。
そこで、BitDB 2.0は、全てのトランザクションデータを取得してデータベースに格納します。
以下のURLは、BitcoinCashのトランザクションから最新の10件を取得する例です。
OP_RETURNでないトランザクションも取得できることが確認できると思います。
特徴2:スクリプトを保存する
BitDB 2.0は、トランザクション内のスクリプトをpushデータおよびOPコードごとに分割してそれぞれのカラムに保存します。
OP_RETURNだけでなく、P2PKHやMultiSig、TimeLock、スマートコントラクトなどの全てのスクリプトが対象です。
また、アウトプットスクリプトだけでなくインプットスクリプトも対象となります。
詳細はこちらのドキュメントに記載されています。
以下のURLは、マルチシグトランザクションの最新10件を取得する例です。
検索結果の「str」がスクリプト全体で、「b0、b1」や「s1、s2」などに「str」の中身を分割した内容がセットされています。
分割した後にエンコーディングなどが行われているのでブラウザで見ると文字化けしていたりしますが、詳細はドキュメントご確認ください。
このクエリでは、アウトプットのb5にOPコードの174番(=OP_CHECKMULTISIG)が書き込まれているトランザクションを取得するという指定になっています。
特徴3:トランザクションのグラフを作成できる
BitDB 2.0は、例えば、「Bobから受け取ったBCHのうち0.5BCHをAliceに送信した」というようなことを保存する専用のカラムがあります(カラム名はe)。
実際に使ってみなければ具体的なイメージが湧きにくいですが、これを利用すれば、トランザクションのグラフを作成できるようになるとのことです。
以下のサイトは、実際にBitDB 2.0の機能を使ってグラフを表示していると紹介されています。
BitDB2.0の利用方法
ちょっと試して見たいという方は、エクスプローラーにアクセスし、クエリを作成して「Run query」をクリックすれば、トランザクションデータが取得できることを確認できます。
本格的にBitDB 2.0を利用して開発を行いたい方は、APIキーの取得などが必要となりますが、以下のURLに開発者向けのドキュメントがあるので詳細はそちらをご覧ください。
https://docs.bitdb.network/docs/bitdb
また、ドキュメント内に記載がありますが、BitDBノードを自身で立ち上げて利用することもできるようです。
さいごに
BitDBは開発者にとって非常に助かるサービスだと思います。
自らノードを立ち上げないのであれば、テキストエディタとブラウザさえあれば、BitcoinCashのブロックチェーンを利用したアプリケーションが開発できるということになります。
BitDBをうまく活用して、これからたくさんのサービスが開発されることを期待したいですね。
最新情報はこちら
BCHNewsでは公式のTwitterアカウント(@bchnews_jp)を開設しました。
更新情報を配信しておりますので、よろしければフォローしていただけると嬉しいです。
この記事のカテゴリ
この記事のタグ
BCHNews編集部
BCHNews編集部です。
日々更新される暗号通貨関連のニュースを読者の皆様にお届けします。