Skip to content

vipstar-dev/clerk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vippool-clerk

このプロジェクトは、Google App Engine で動作する、 ブロックチェーンの情報取得・トランザクション作成の補助を行うアプリケーションです。

できること

コインノードの RPC で取得できる、ブロック情報・トランザクション情報を、 RDB に格納していて、それを JSON 形式で取得できます。

コインノードの RPC で取得できるトランザクション情報には、 過去へ向かうリンクの情報は格納されていますが、反対方向のリンクがありません。 vippool-clerk は、それを補完して返すため、多少利便性が高いです。

また、コインアドレスごとの残高推移も RDB に記録しています。 この情報を元に、帳簿アプリなどの作成が可能となります。

最後に、新規トランザクション作成の補助機能を持っています。 トランザクション作成は 2 つのステージに分かれており、 API 呼び出しで返されるハッシュに対して、クライアント側で ECDSA 署名を作成し、再度 API を呼び出すことで、トランザクション作成が完了します。

このように、電子署名作成をクライアント側で行うことで、 秘密鍵の漏洩の可能性をなくすことができます。

API の使用方法

公開している API については、doc/api.md に API ごとのマニュアルがありますので、 そちらを参照してください。

インストール方法

インストールには、以下のものが必要です。

  1. Google App Engine のアカウント
  2. Google Cloud SQL サーバ
  3. コインノードサーバ (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

もしくは、開発チームまでメールいただいても構いません。 dev-team@vippool.net

ライセンス

(C) 2019-2019 VIPPOOL Inc.

このプロジェクトは、MIT ライセンスで提供されます。

About

blockchain RDB for multipurpose

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%