运行 Indexer 全节点
运行 Indexer 全节点的概要步骤如下:
- 确保具备本文下述的所有必需工具和软件包。
- 遵循说明设置公共全节点,但暂不启动全节点。
- 按本文说明编辑 fullnode.yaml。
- 按下文说明运行 Indexer 全节点。
安装以下软件包。注意,在准备开发环境时可能已经安装过其中许多。可运行 which command-name 并确认输出中出现该软件包(即使已安装,libpq 也不会返回)。
重要:如果使用 macOS,请遵循官方指南安装 Docker,而不是使用 brew。
对于 Aptos Indexer 全节点,请安装以下软件包:
- brew:/bin/bash -c ”$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)“。运行输出中的命令,将该命令加入路径并安装依赖。
- cargo Rust 包管理器:curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.rustup.rs | sh。
- docker:brew install docker。
- 包含 pg_ctl 命令的 libpq Postgres C API 库:brew install libpq。安装后务必执行所有 export 命令。
- postgres PostgreSQL 服务器:brew install postgresql。
- diesel:brew install diesel。
- 启动 PostgreSQL 服务器:brew services start postgresql。
- 确保可以运行 psql postgres,然后输入:
\q退出提示符。 - 使用 createuser 命令(可用 which 查找)创建 PostgreSQL 用户 postgres:
Terminal window /path/to/createuser -s postgres - 如果尚未克隆,请克隆 aptos-core 仓库:
Terminal window git clone https://github.com/aptos-labs/aptos-core.git - 前往(或 cd 到)aptos-core/crates/indexer 目录。
- 创建数据库架构:
这会创建数据库架构,其 migrations 子目录位于 aptos-core/crates/indexer 目录中。若该数据库已被使用,请尝试其他数据库。例如:DATABASE_URL=postgres://postgres@localhost:5432/indexer_v2 diesel database reset。
Terminal window diesel migration run --database-url postgresql://localhost/postgres
启动全节点 Indexer
Section titled “启动全节点 Indexer”-
遵循说明设置公共全节点并准备环境,但暂不使用 cargo run 或 docker run 启动 Indexer。
-
使用以下命令拉取最新 Indexer Docker 镜像:
Terminal window docker pull aptoslabs/validator:nightly_indexer -
编辑 ./fullnode.yaml 并添加以下配置:
storage:enable_indexer: true# This is to avoid the node being prunedstorage_pruner_config:ledger_pruner_config:enable: falseindexer:enabled: truepostgres_uri: "postgres://postgres@localhost:5432/postgres"processor: "default_processor"check_chain_id: trueemit_every: 500
- 根据设置,使用 cargo run 或 docker run 运行 Indexer 全节点。请记得提供特定节点所需的参数:
或:
Terminal window 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.yamlTerminal window cargo run -p aptos-node --features "indexer" --release -- -f ./fullnode.yaml
重启 Indexer
Section titled “重启 Indexer”要重启 PostgreSQL 服务器:
-
搜索
postmaster进程并终止它,以关闭服务器:Terminal window ps -ef | grep -i postmaster -
复制该进程的进程 ID(PID),然后传入以下命令将其关闭:
Terminal window kill -INT PID -
使用以下命令重启 PostgreSQL 服务器:
Terminal window brew services restart postgresql@14