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

インデクサーフルノードを実行する

従来のインデクサー

これは従来のインデクサーに関するドキュメントです。最新のインデクサースタックの基盤となるインフラストラクチャを実行する方法については トランザクションストリームサービスを御覧下さい。

Aptosインデクサーを実行する

APPLEシリコン搭載のMacOSのみ

以下のインストール手順は、Appleシリコン搭載のMacOSでのみ検証されています。それ以外で実行する場合は、若干の調整が必要な場合があります。

概要

インデクサーのフルノードを実行する手順は、以下の要約を御覧下さい。

  1. 以下で解説する必要なツールとパッケージが全て揃っていることを確認してください。
  2. 指示に従いパブリックフルノードを設定しますが、まだフルノードを起動しないで下さい。
  3. 以下で解説する様にfullnode.yamlを編集します。
  4. 以下の手順に従い、インデクサーのフルノードを実行します。

前提条件

以下のパッケージをインストールします。注意:開発環境の準備の際、これらの多くがすでにインストールされている可能性があります。which command-nameを実行し、出力にパッケージが表示されることで確認できます(ただし、libpqxはインストールされても返されません)。

重要: MacOSを使用している場合は、brewではなく、 公式のガイダンスに従ってDockerをインストールする必要があります。

Aptosインデクサーのフルノードの場合は、以下のパッケージをインストールします。

データベースを設定する

  1. PostgreSQL サーバーを起動します。: brew services start postgresql
  2. psql postgresが実行できることを確認し:\qを入力してプロンプトを終了します。
  3. createuserコマンドでPostgreSQLユーザー postgresを作成します。(コマンドはwhich(以下)で見つかります)。:
    /path/to/createuser -s postgres
  4. まだクローンしていない場合はaptos-coreリポジトリのクローンを作成します。
    git clone https://github.com/aptos-labs/aptos-core.git
  5. aptos-core/crates/indexerディレクトリに移動 (cd)します。
  6. データベーススキーマを作成します。
    diesel migration run --database-url postgresql://localhost/postgres
    これにより、このaptos-core/crates/indexerディレクトリ内にmigrationsサブディレクトリを含むデータベーススキーマが作成されます。何らかの理由でこのデータベースがすでに使用されている場合は、別のデータベースを試してください。例えば:DATABASE_URL=postgres://postgres@localhost:5432/indexer_v2 diesel database reset

フルノードインデクサーを開始する

  1. 指示に従いパブリックフルノードを設定し、設定の準備をしますが、インデクサーはまだ開始しないで下さい(cargo rundocker runコマンドで)。
  2. 以下を使用して、最新のインデクサーDockerイメージをプルします。:
    docker pull aptoslabs/validator:nightly_indexer
  3. ./fullnode.yamlを編集して、以下の構成を追加します。:
    storage:
    enable_indexer: true
    # This is to avoid the node being pruned
    storage_pruner_config:
    ledger_pruner_config:
    enable: false

    indexer:
    enabled: true
    postgres_uri: "postgres://postgres@localhost:5432/postgres"
    processor: "default_processor"
    check_chain_id: true
    emit_every: 500
フルノードをブートストラップする

インデクサーのフルノードをGenesisから同期する(これには長い時間がかかる場合があります)かわりに、フルノードを開始する前にバックアップデータを使用してフルノードをブートストラップすることを選択できます。これを行うにはバックアップから復元する手順に従ってください。

注: インデクサーはスナップショットまたは高速同期を使用してブートストラップすることはできません。

  1. cargo runまたはdocker runのいずれかを使用してインデクサーのフルノードを実行します。あなたの特有のノードで必要な引数を必ず指定して下さい。:

    docker run -p 8080:8080 \
    -p 9101:9101 -p 6180:6180 \
    -v $(pwd):/opt/aptos/etc -v $(pwd)/data:/opt/aptos/data \
    --workdir /opt/aptos/etc \
    --name=aptos-fullnode aptoslabs/validator:nightly_indexer aptos-node \
    -f /opt/aptos/etc/fullnode.yaml

    または、

    cargo run -p aptos-node --features "indexer" --release -- -f ./fullnode.yaml

インデクサーを再起動する

PostgreSQLサーバーを再起動するには、

  1. postmasterプロセスを検索して強制終了することでサーバーをシャットダウンします:

    ps -ef | grep -i postmaster
  2. プロセスのプロセスID(PID)をコピーし、以下のコマンドに渡してシャットダウンします。:

    kill -INT PID
  3. 以下のコマンドを使用してPostgreSQLサーバーを再起動します。:

    brew services restart postgresql@14