このプロジェクトは、Google App Engine で動作する、 ブロックチェーンの情報取得・トランザクション作成の補助を行うアプリケーションです。
コインノードの RPC で取得できる、ブロック情報・トランザクション情報を、 RDB に格納していて、それを JSON 形式で取得できます。
コインノードの RPC で取得できるトランザクション情報には、 過去へ向かうリンクの情報は格納されていますが、反対方向のリンクがありません。 vippool-clerk は、それを補完して返すため、多少利便性が高いです。
また、コインアドレスごとの残高推移も RDB に記録しています。 この情報を元に、帳簿アプリなどの作成が可能となります。
最後に、新規トランザクション作成の補助機能を持っています。 トランザクション作成は 2 つのステージに分かれており、 API 呼び出しで返されるハッシュに対して、クライアント側で ECDSA 署名を作成し、再度 API を呼び出すことで、トランザクション作成が完了します。
このように、電子署名作成をクライアント側で行うことで、 秘密鍵の漏洩の可能性をなくすことができます。
公開している API については、doc/api.md に API ごとのマニュアルがありますので、 そちらを参照してください。
インストールには、以下のものが必要です。
- Google App Engine のアカウント
- Google Cloud SQL サーバ
- コインノードサーバ (Google Compute Engine で立ち上げても可)
まず、コインノードを 1 台立ち上げます。 コインノードの conf ファイルには、以下の記載を加えてください。
"server=1 rpcuser=ユーザ名 rpcpassword=パスワード rpcport=ポート番号 rpcallowip=0.0.0.0/0 txindex=1"
rpcallowip は、Google App Engine サーバがどこからアクセスするかわからないため、 必要です。仮想ネットワークを構築して、ローカル IP アドレスに限定しても良いです。 txindex は、全てのトランザクションデータを取得するために必要です。
次に、Google Cloud SQL の設定を行います。 MySQL サーバを立ち上げてください。設定はデフォルトのままで問題ありませんが、 パフォーマンス等を見ながら適宜調整するとなお良いかもしれません。 データベースは自動で作成するため、事前に作成する必要はありません。 Google App Engine からアクセスするためのユーザを作成しておいてください。
次に、プロジェクトの server/config.py を編集します。 デフォルトでは全て空欄になっているため、 先ほど設定したパスワード等を設定してください。
最後に、Google App Engine にプロジェクトをデプロイします。 順番があるため、以下の順番に従ってください。
"gcloud app deploy app.yaml gcloud app deploy queue.yaml gcloud app deploy cron.yaml"
cron で TaskQueue にデータ同期のリクエストが投げられ、 順次、同期処理が行われていきます。
立ち上げるコインノードを変更すれば、多少の変更が必要となるかもしれませんが、 他のアルトコインでも動く可能性があります。
お問い合わせ、ご要望、バグ報告等は、github の issue へお気軽にどうぞ。 https://github.com/vippool/clerk/issues
もしくは、開発チームまでメールいただいても構いません。 [email protected]
(C) 2019-2019 VIPPOOL Inc.
このプロジェクトは、MIT ライセンスで提供されます。