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.yamlcomo 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 dependenciacargoRust package manager -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shdocker-brew install docker- libpq Postgres C API library containing the
pg_ctlcommand -brew install libpqAsegurar de realizar todos los comandos export después de la instalación. postgresPostgreSQL server -brew install postgresqldiesel-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 postgresy luego salir del prompt ingresando:\q - Crear un usuario PostgreSQL
postgrescon el comandocreateuser(encuéntralo conwhich):Ventana de terminal /path/to/createuser -s postgres - Clonar el repositorio
aptos-coresi 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/postgresmigrationsubicado 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 runodocker run). -
Obtener la imagen Docker del indexer más reciente con:
Ventana de terminal docker pull aptoslabs/validator:nightly_indexer -
Editar el
./fullnode.yamly 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 runodocker rundependiendo 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
postmastery 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