Counterpartyの各コンポーネントについての説明

f:id:yzono:20141223024646j:plain

はじめに

Counterpartyは複数コンポーネントによって構成されています。これまでbitcoindとcounterpartydをインストールしてAPIを実行する手順を説明しました。今回は別のコンポーネントをインストールする前に、Counterparty全体の構成を説明します。

目次

  1. bitcoind
  2. counterpartyd
  3. Insight / blockr.io
  4. counterblockd
  5. MongoDB
  6. Web Server / nginx

 

f:id:yzono:20141223024702p:plain

1. bitcoind

Bitcoinのリファンスのクライアントです。BlockとTransactionの取り込み、ブロードキャストを行います。私の環境ではマルチシグネチャーに対応するためjmcorgan-addrindexパッチ適用バージョンをインストールしています。

2. counterpartyd

Counterpartyのリファレンスのクライアントです。bitcoindで取り込んだBlockchainからCounterpartyのトランザクションを取り出します。APIが提供されていて、Counterpartyのトランザクション情報を参照できます。またCounterpartyトランザクションの作成も行います。

3. Insight / blockr.io

InsightはオープンソースBitcoinエクスプローラーです。RESTやwebsocketAPIのインターフェースがあり、WEB Walletやその他のアプリを作成を支援します。Blockchainに対するクエリーも用意されており、例えばアドレスからトランザクション履歴を取得することができます。blockr.ioにも同様の機能があります。

4. counterblockd

counterblockdは、counterpartydが構成したCounterpartyのトランザクションデータから、マーケット情報、価格情報、トレード情報、アセットに対する操作やヒストリーなど取得しやすいインターフェースを提供します。websocketに対応しておりリアルタイムの情報取得が可能です。また、counterpartydのAPIをproxy経由で呼び出すことができます。そのためcounterpartydのRPCインタフェースは外部に公開せずに、counterblockdを公開することが推奨されます。またcounterpartydに対するキャッシュ機能も利用できます。

5. MongoDB

MongoDBはcounterblockdで利用するデータストアです。CounterpartydはSQLiteを使用しています。

6. Web Server / nginx

Webサーバーのコンテンツをホストします。例えば、Counterwalletはここにインストールします。また外部にAPIを公開する場合も同様にこのサーバーにプログラムをインストールします。counterblockdをそのまま外部公開することも可能ですが、Webサーバーが提供するキャッシングやセキュリティ機能を利用するべきです。

まとめ

今回はCounterpartyのコンポーネントについて説明しましたが、全てのコンポーネントが必須というわけではありません。開発案件により利用するコンポーネントは異なります。

次回はcounterblockdのインストールとAPI実行について説明します。

参考

Counterparty components

insight

github bitpay/insight

blockr.io

Blockr wiki