今回はプライベートブロックチェーン環境「mijin」にて仮想通貨の取引を実行してみます。
mijinには「XEM」という仮想通貨が初期状態から設定されています。
この仮想通貨は初期状態では重要度の高いアカウントに均等に配布されています。重要度の高いアカウントの1つに、環境で用意された4つのサーバーも含まれています。アカウントと言っても必ずしも「人」に紐付いているわけではありません。
このサーバーの1つ、ASTERIA Warpがつないでいるノードから新しく作ったアカウントに送金してみようと思います。
まずはXEMを受け取るアカウントを1つ作成します。
作成したフローはこちら。
アカウントを作成するAPIに「account/generate」を呼び出すだけです。
作成した結果、アカウントの「address」「秘密鍵」「公開鍵」が返ってきますので、なくさないようにファイルに保存しています。
送金するフローも作りました。
送金するためには、金額や受け取り先のアカウントの他、送金元の秘密鍵やmijin内の現在時刻、締め切り時刻、計算が必要な手数料など様々な情報が必要となります。
現在時刻はノードの詳細情報を取得するAPIから取得しました。締め切り時刻は現在時刻から12時間以内で固定で計算しました。実際には12時間待つわけではなく実行後すぐに送金されましたが、もしかすると取引がたくさん立て込んでいると優先順位がつけられるのかもしれません。
手数料は送金金額を元にした計算をマッパーの中で行うようにしました。リファレンスによると、金額によってアークタンジェントを使った計算式が必要となったりする複雑なものでしたので、マッパーの中から「JavaInperpriter」を使ってJavaの1行コードを呼ぶようにしました。
上記のような情報を全て集め、JSONを作成してAPIを実行します。
実行時には送金先のaddressと金額を指定します。金額はXEMではなく、マイクロXEMです。
結果は「SUCCESS」と表示されました。
ここで送金が完了したわけではありません。
ブロックチェーンに登録されただけで、送金処理が確定するのに時間を要します。
BitCoinだと最低でも10分ぐらいかかるらしいのですが、プライベートブロックチェーンであるmijinはほぼ一瞬で処理が確定しますので、上記の処理=送金処理ととらえても問題無さそうです。
次回は今回作ったアカウントの取引一覧を取得してみます。
他の記事についてはこちらをご覧ください。
ASTERIA Warpシリーズ担当のシニアプロダクトマネージャー。ホワイトペーパーの執筆のほか、開発経験を活かしたASTERIA Warpを使ったデモ作成等を実施。
Related Posts
ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。
ASTERIA Warpデベロッパー同士をつなげ、技術情報の共有やちょっとしたASTERIA Warpの疑問解決の場とすることを目的としたコミュニティです。