Saltearse al contenido

Ejecutar un Fullnode Indexer

Para ejecutar un fullnode indexer, estos son los pasos en resumen:

  1. Asegurar que tienes todas las herramientas y paquetes requeridos descritos abajo en este documento.
  2. Seguir las instrucciones para configurar un fullnode público pero no iniciar el fullnode aún.
  3. Editar el fullnode.yaml como se describe abajo en este documento.
  4. Ejecutar el fullnode indexer según las instrucciones abajo.

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:

  1. Iniciar el servidor PostgreSQL: brew services start postgresql
  2. Asegurar que puedas ejecutar psql postgres y luego salir del prompt ingresando: \q
  3. Crear un usuario PostgreSQL postgres con el comando createuser (encuéntralo con which):
    Ventana de terminal
    /path/to/createuser -s postgres
  4. Clonar el repositorio aptos-core si no lo has hecho ya:
    Ventana de terminal
    git clone https://github.com/aptos-labs/aptos-core.git
  5. Navegar (o cd) al directorio aptos-core/crates/indexer.
  6. Crear el esquema de base de datos:
    Ventana de terminal
    diesel migration run --database-url postgresql://localhost/postgres
    Esto creará un esquema de base de datos con el subdirectorio migrations ubicado en este directorio aptos-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
  1. Seguir las instrucciones para configurar un fullnode público y preparar la configuración, pero no iniciar aún el indexer (con cargo run o docker run).

  2. Obtener la imagen Docker del indexer más reciente con:

    Ventana de terminal
    docker pull aptoslabs/validator:nightly_indexer
  3. Editar el ./fullnode.yaml y agregar la siguiente configuración:

    storage:
    enable_indexer: true
    # Esto es para evitar que el nodo sea podado
    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
  1. Ejecutar el fullnode indexer con ya sea cargo run o docker run dependiendo de tu configuración. Recuerda suministrar los argumentos que necesitas para tu nodo específico:
    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.yaml
    o:
    Ventana de terminal
    cargo run -p aptos-node --features "indexer" --release -- -f ./fullnode.yaml

Para reiniciar el servidor PostgreSQL:

  1. Apagar el servidor buscando el proceso postmaster y matándolo:

    Ventana de terminal
    ps -ef | grep -i postmaster
  2. Copiar el ID de proceso (PID) para el proceso y pasarlo al siguiente comando para apagarlo:

    Ventana de terminal
    kill -INT PID
  3. Reiniciar el servidor PostgreSQL con:

    Ventana de terminal
    brew services restart postgresql@14