【完全保存版】MetaplexのAuraについて学ぼう!
この記事ではMetaplexのAuraのRead meファイル部分の一部を翻訳・編集しています。
1 デジタル資産RPC APIインフラストラクチャ
このリポジトリには、Metaplex Digital Asset RPC APIのAPI IngesterおよびDatabase Typesコンポーネントが含まれています。
これらのコンポーネントは、Solanaバリデータデータを非常に高速かつ正確なAPIに集約する役割を担っています。
このAPIは、Metaplexプログラム上に洗練されたインターフェースを提供します。
ブロックチェーン上のバイトレイアウトを抽象化し、高速なクエリや検索を可能にし、圧縮NFTに必要なMerkle証明を提供します。
アプリケーションのメインフローを参照してください。
2 DAS APIアーキテクチャ
このプロジェクトは、クリーンアーキテクチャの原則に基づいて構築されています。
このプロジェクトの構造は、次のクリーンアーキテクチャ原則を反映しています。
1 フレームワーク独立性
アーキテクチャは特定のフレームワークやライブラリに依存せずに構築されています。
2 テスト可能性
ビジネスルールはUI、データベース、外部インターフェースから独立してテストできます。
3 UI独立性
UIの変更がコアアプリケーションロジックに影響を与えません。
4 データベース独立性
ビジネスロジックはデータベース技術に密接に結びついていません。
5 外部エージェンシー独立性
ビジネスルールはその範囲外のものに影響を受けません。
3 プロジェクト構造
1 entities
アプリケーション全体で使用されるドメインを表すビジネスモデルを含んでいます。
2 interface
レイヤー間を分離し、疎結合を確保するための公開インターフェースを定義するトレイトを格納しています。
3 usecase
アプリケーションのドメイン中心の核であり、ビジネスルールをカプセル化したユースケースが含まれています。
4 grpc
gRPCサービスの定義とその実装を格納しています。
5 digital_asset_types
以前のプロジェクトバージョンからのモデルとAPI定義を持つレガシーワークスペースです。
6 データ層の分散
6ー1 rocks-db
アプリケーションの主要なデータソースで、データベースクライアントの実装を含み、すべての永続的なデータの保存、取得、操作に使用されます。
6ー2 postgre-client
検索インデックス専用の二次データソースであり、クエリのパフォーマンスを最適化するためにインデックス作成と検索関連の操作に焦点を当てています。
SQLiteに置き換えて、自己完結型で展開が容易なソリューションにする可能性もあります。
4 コンポーネント
1 Ingester
バックグラウンド処理システムであり、Messengerからメッセージを取得し、BlockBuster Parsersを使用してMetaplexタイプの標準表現をストレージシステムに保存します。
このシステムは、圧縮NFTシステムをサポートするために必要なMerkleツリーも保持します。
2 Ingester -> Api
Metaplexオブジェクトを提供するJSON RPC API。
このAPIはMetaplexデータのフィルタリング、ページネーション、検索を可能にし、圧縮NFTシステムのMerkle証明も提供します。
このAPIはSolana RPCのすぐそばで動作するように設計されており、Solana RPCがバリデータからデータを取得して新しい形式で提供するのと同様に、このAPIもバリデータからデータを取得して提供します。
3 API仕様
仕様は、こちらにあります。この仕様は、このAPIを提供する者が従うべきものです。
5 インフラストラクチャとデプロイ例
これらのRustバイナリに加えて、このリポジトリはインフラ全体を実行するための例やベストプラクティス設定も維持しています。
例示的なインフラは以下の通りです。
1 Solana No-Vote Validator
このバリデータは、バリデータの元帳とコンセンサスに基づいたアカウントデータへのセキュアなアクセスのみを持つように設定されています。
2 Geyser Plugin (Plerkle)
上記のバリデータは、メッセージングシステム経由でPlerkleシリアライズメッセージを送信するこのGeyserプラグインを読み込むようにさらに設定されています。
3 Redisクラスター(ストリーム最適化済み)
メッセージングシステムとして使われる軽量なRedisデプロイメントで、ストリーミング構成をサポートします。
4 Kubernetesクラスター
APIとIngesterプロセスのオーケストレーションシステムです。
小規模なインストールには少しオーバースペックかもしれませんが、重要なソフトウェアにとって堅実なプラットフォームです。
このリポジトリには、例示的なインフラのデプロイを支援するためのHelmチャート、Dockerファイル、Terraformファイルも含まれています。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊