Ejecutar un Fullnode Indexer
Resumen
Sección titulada «Resumen»Para ejecutar un fullnode indexer, estos son los pasos en resumen:
- Asegurar que tienes todas las herramientas y paquetes requeridos descritos abajo en este documento.
- Seguir las instrucciones para configurar un fullnode público pero no iniciar el fullnode aún.
- Editar el
fullnode.yaml
como se describe abajo en este documento. - Ejecutar el fullnode indexer según las instrucciones abajo.
Prerrequisitos
Sección titulada «Prerrequisitos»Instala los paquetes abajo. Nota, puedes haber instalado ya muchos de estos mientras preparabas tu entorno de desarrollo. Puedes confirmar ejecutando which command-name
y asegurando que el paquete aparezca en la salida (aunque libpq
no será devuelto incluso cuando esté instalado).
Importante: Si estás en macOS, necesitarás instalar Docker siguiendo la guía oficial en lugar de
brew
.
Para un fullnode indexer de Aptos, instala estos paquetes:
brew
-/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Ejecuta los comandos emitidos en la salida para agregar el comando a tu path e instalar cualquier dependenciacargo
Rust package manager -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
docker
-brew install docker
- libpq Postgres C API library containing the
pg_ctl
command -brew install libpq
Asegurar de realizar todos los comandos export después de la instalación. postgres
PostgreSQL server -brew install postgresql
diesel
-brew install diesel
Configurar la base de datos
Sección titulada «Configurar la base de datos»- Iniciar el servidor PostgreSQL:
brew services start postgresql
- Asegurar que puedas ejecutar
psql postgres
y luego salir del prompt ingresando:\q
- Crear un usuario PostgreSQL
postgres
con el comandocreateuser
(encuéntralo conwhich
):Ventana de terminal /path/to/createuser -s postgres - Clonar el repositorio
aptos-core
si no lo has hecho ya:Ventana de terminal git clone https://github.com/aptos-labs/aptos-core.git - Navegar (o
cd
) al directorioaptos-core/crates/indexer
. - Crear el esquema de base de datos:
Esto creará un esquema de base de datos con el subdirectorio
Ventana de terminal diesel migration run --database-url postgresql://localhost/postgresmigrations
ubicado en este directorioaptos-core/crates/indexer
. Si por alguna razón esta base de datos ya está en uso, prueba una base de datos diferente. Por ejemplo:DATABASE_URL=postgres://postgres@localhost:5432/indexer_v2 diesel database reset
Iniciar el fullnode indexer
Sección titulada «Iniciar el fullnode indexer»-
Seguir las instrucciones para configurar un fullnode público y preparar la configuración, pero no iniciar aún el indexer (con
cargo run
odocker run
). -
Obtener la imagen Docker del indexer más reciente con:
Ventana de terminal docker pull aptoslabs/validator:nightly_indexer -
Editar el
./fullnode.yaml
y agregar la siguiente configuración:storage:enable_indexer: true# Esto es para evitar que el nodo sea podadostorage_pruner_config:ledger_pruner_config:enable: falseindexer:enabled: truepostgres_uri: "postgres://postgres@localhost:5432/postgres"processor: "default_processor"check_chain_id: trueemit_every: 500
- Ejecutar el fullnode indexer con ya sea
cargo run
odocker run
dependiendo de tu configuración. Recuerda suministrar los argumentos que necesitas para tu nodo específico:o:Ventana de terminal 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.yamlVentana de terminal cargo run -p aptos-node --features "indexer" --release -- -f ./fullnode.yaml
Reiniciar el indexer
Sección titulada «Reiniciar el indexer»Para reiniciar el servidor PostgreSQL:
-
Apagar el servidor buscando el proceso
postmaster
y matándolo:Ventana de terminal ps -ef | grep -i postmaster -
Copiar el ID de proceso (PID) para el proceso y pasarlo al siguiente comando para apagarlo:
Ventana de terminal kill -INT PID -
Reiniciar el servidor PostgreSQL con:
Ventana de terminal brew services restart postgresql@14