メインコンテンツまでスキップ

セルフホスト型インデクサーAPI

Beta

インデクサーAPI、トランザクションストリームサービス、カスタムプロセッサーは現在ベータ版です。発生した問題は、aptos-indexer-processorsリポジトリにissueを作成して報告してください。

このガイドでは、セルフホスト型インデクサーAPIのセットアップについて説明します。

注意

現在このガイドは、インデクサーAPIのプロセッサー部分の実行方法のみを解説しています。このガイドは、トランザクションストリームサービスからトランザクションを消費するプロセッサーを実行し、解析し、データベースへ保存します。現時点ではこのシステムにAPIを接続する方法は説明していません。

前提条件

  • 有効なユーザーとデータベースを備えたPostgreSQLインスタンスの実行が必要です。この例では、ユーザーpostgresとデータベースindexerを呼びます。
  • Dockerを使用する場合は、Dockerがインストールされている必要があります。インストールガイド

構成

サービスを実行するには、構成ファイルを定義する必要があります。このテンプレートから始めます。

health_check_port: 8084
server_config:
processor_config:
type: default_processor
postgres_connection_string: postgresql://postgres:@localhost:5432/indexer
indexer_grpc_data_service_address: 127.0.0.1:50051
indexer_grpc_http2_ping_interval_in_secs: 60
indexer_grpc_http2_ping_timeout_in_secs: 10
auth_token: AUTH_TOKEN

ここから、これらのフィールドのいくつかの値を変更することが必要になる場合があります。そのうちのいくつかを見てみましょう。

processor_name

備考

サービスの1つのインスタンスは1つのプロセッサのみを実行します。複数のプロセッサを実行する場合は、サービスの複数のインスタンスを実行する必要があります。この場合、同じデータベースを使用するかどうかはあなた次第です。

これはあなたが実行したいプロセッサです。利用可能なプロセッサはここで確認できます。例:

  • coin_processor
  • ans_processor
  • token_v2_processor

postgres_connection_string

これは、PostgreSQLデータベースへの接続文字列です。postgresql://<username>:<password>@<host>:<port>/<database>という形式でなければなりません。

注意

これをDockerデスクトップ環境から実行している場合 (MacOSまたはWindowsを使用している場合はそうである可能性が高い)、postgres_connection_stringの代わりにpostgresql://host.docker.internal:5432/indexerに設定する必要があります。Dockerデスクトップでは、これがバイナリがホストネットワークに到達する方法です。

indexer_grpc_data_service_address

これは、トランザクションストリームサービスのURLです。 Labs-Hostedインスタンスを使用している場合は、このページで各ネットワークのURLを見つけることができます。インデックスしたいネットワークの正しいURLを選択してください。このサービスをローカルで実行している場合、値は127.0.0.1:50051である必要があります。

auth_token

これは、トランザクションストリームサービスへの接続に使用される認証トークンです。Labs-Hostedインスタンスを使用している場合は、APIゲートウェイを使用してAPIキーを取得できます。詳細については、このページを御覧下さい。

ソースコードで実行する

Clone the repo: リポジトリのクローンを作成します。

# SSH
git clone git@github.com:aptos-labs/aptos-indexer-processors.git

# HTTPS
git clone https://github.com/aptos-labs/aptos-indexer-processors.git

サービスのディレクトリに移動します。

cd aptos-indexer-processors
cd rust/processor

サービスを実行します。

cargo run --release -- -c config.yaml

Dockerで実行

Dockerでサービスを実行するには、以下のコマンドを使用します。

docker run -it --network host --mount type=bind,source=/tmp/config.yaml,target=/config.yaml aptoslabs/indexer-processor-rust -c /config.yaml

このコマンドは、コンテナをホストネットワークにバインド(結合)し、ホストからコンテナに構成ファイルをマウントします。この特定の呼び出しでは、ホスト内の構成ファイルが/tmp/config.yamlにあることを前提としています。

こちらのDockerHubのイメージを御覧下さい: https://hub.docker.com/r/aptoslabs/indexer-processor-rust/tags