Game-Explorer1
Game-Explorer2
Game-Explorer3
URL: https://game-explorer.io
※GAME Explorerは、現在Cosmos Hub 4のみに対応しています。今後、Cosmos Gaming Hubのテストネットをはじめとして、複数のHubをサポートしていく予定です。
画像1: https://www.atpress.ne.jp/releases/270399/LL_img_270399_1.png
Game-Explorer1
■GAME Explorerとは
EthereumではEtherscan、Bitcoinではblockchain.comなどがBlockchain Explorerが有名で、トランザクションの確認をはじめとして、各アドレスの中身の確認などを行うことができます。
BitcoinやEthereumで必要とされるBlock explorerと違って、PoSベースのコンセンサスアルゴリズムのCosmos Hubでは、ブロックを生成するValidatorと呼ばれるノードが存在します。
また、Cosmos Hubでは、Onchain Governanceとして、投票を通してコミュニティの意思決定を行う機能があるほか、Cosmos Hub 4は、stargateアップデートに対応しておりIBCトランザクションが可能になっています。Blockchain Explorerでは、こうした機能をサポートすることが必要になります。
今回作成したGAME ExplorerではgovernanceモジュールやIBCモジュールに対応し、投票結果やIBCトランザクションの中身を確認することができるようになっています。
■システム俯瞰
GAME Explorerは、以下の3つの部分に分かれて構成されています。
またそれぞれ、詳細はオープンソースで公開しているので、下記のgithubをご確認ください。
・explorer-backend
https://github.com/cosmos-gaminghub/explorer-backend
・explorer-graphql
https://github.com/cosmos-gaminghub/explorer-graphql
・explorer-frontend
https://github.com/cosmos-gaminghub/explorer-frontend
backendで行っていることはblockchain nodeとのデータの同期になります。blockchain nodeの性質上、nodeのデータをそのまま利用することはUXの低下を招くことになるので、必要なデータのみをexportしてmongoDB内に格納します。また、このとき、定期実行を行い外部のトークン価格を提供しているAPIを使って、トークン価格も取得します。
■GraphQLを利用するメリット
GraphQLを利用した理由としては、下記のことが挙げられます。
・型付けされたスキーマであること
型付けられたスキーマにより、バックエンド・フロントエンドのどちらも型とコードを生成することができます。コンパイル時にチェックすることも可能であり、自動補完、モックやAPIドキュメントの自動生成など様々な恩恵を受けることができます。
・アンダーフェッチとオーバーフェッチがないこと
GraphQLを使うことで、バックエンドの実装もシンプルで、1つ1つのリソースのResolverを実装すれば、要求を満たすことができます。特に、柔軟なデータ構造でレスポンスを構築することができるため、大体のユースケースでは1つのリクエストで全て返すことができます(アンダーフェッチがない)。また、GraphQLではほしいデータをクライアント側が明示的に要求するため、不要なデータを取りすぎてしまうオーバーフェッチがなくなり、サーバーサイドのパフォーマンスが向上し、帯域が節約されます。
・Apolloなどのクライアントライブラリにより、フロントエンド開発が迅速になること
実際にフロントエンドでは、現在nuxt.jsでApolloを利用していますが、当然のようにスキーマ駆動開発ができます。モデルは生成され、APIインターフェースの型も生成してくれます。
複数のGraphQL APIからの統合が可能。
現在の実装では、一つのエンドポイントからデータを取得していますが、将来的に複数のGraphQL APIの統合をすることも容易に行うことができます。
■GAME Explorerの意義
Cosmosの思想の一つに、開発者がCosmos-SDKを使ってより簡単にBlockchainを作れるようにし、アプリケーションレイヤーの開発に専念できるようにする、というものがあります。
しかしながら、開発したアプリケーションにアクセスするためのインターフェースも同時に開発しないと実際のプロダクトとして利用するのは難しいのが現状です。
Cosmos Gaming HubのNibieu Testnet等で、新規モジュールを作成した場合、BlockchainのインターフェースとしてExplorerは必須になります。Blockchainアプリケーションのためのインターフェースを構築することは必要不可欠と言えるでしょう。
■財団概要
商号 :Nibiru Foundation Ltd.
Director:朝野 巧己(アサノ タクミ) Takumi Asano
所在地 :9 Temasek Boulevard #04-02 Suntec Tower Two Singapore 038989