Saltar al contenido principal

Integración con Data Lake

Amplía las capacidades de tu nodo RPC conectándolo a un data lake para acceder al ledger histórico completo.

Resumen de la integración

La versión 23.0 de RPC introduce la integración del data lake para el punto final getLedgers, lo que permite acceder a los ledgers históricos fuera del período de retención local de tu nodo (generalmente 7 días). Todos los demás puntos finales RPC seguirán funcionando según la configuración HISTORY_RETENTION_WINDOW de tu nodo.

El proceso implica configurar un data lake para el ledger y luego configurar tu nodo RPC para usarlo.

1. Acceder a un Data Lake

Tienes dos opciones para utilizar un data lake:

  • Data Lake público: La manera más sencilla es usar un data lake disponible públicamente. Por ejemplo, el data lake del ledger Stellar está disponible a través del programa AWS Open Data en s3://aws-public-blockchain/v1.1/stellar/ledgers/pubnet.
  • Data Lake autohospedado: Este método te permite tener más control sobre la integridad, disponibilidad y acceso a los datos, pero requiere que crees y administres tu propio data lake. La herramienta Galexie puede ayudarte a desplegar un data lake en AWS S3 o Google Cloud Storage (GCS). Para instrucciones detalladas, consulta la Guía del administrador de Galexie.

2. Configuración de RPC para Integración con Data Lake

Prerrequisito

Antes de comenzar, configura tu nodo RPC con las credenciales del proveedor en la nube y asegúrate de que tenga permisos de lectura para el bucket del data lake.

Pasos de configuración

Actualiza el archivo de configuración de tu nodo RPC con las siguientes opciones:

  1. Especificar ruta de almacenamiento: Define el backend de almacenamiento (GCS o S3) y proporciona la ruta completa al bucket (por ejemplo, my-bucket/path/to/data).
  2. Habilita el Feature Flag: Establece SERVE_LEDGERS_FROM_DATASTORE en true.
  3. Configurar ventana de retención: El valor HISTORY_RETENTION_WINDOW debe ser distinto de cero, aunque los datos se obtengan del datastore. Los ledgers dentro de esta ventana de retención se sirven desde el almacenamiento local del RPC, mientras que los ledgers más antiguos se recuperan del data lake. Un valor mínimo de 1 es suficiente.

Ejemplos de configuración

A continuación, algunos ejemplos para configurar los backends GCS y S3.

A. Ejemplo de Configuración GCS

# External datastore configuration for GCS
[datastore_config]
type = "GCS"

[datastore_config.params]
destination_bucket_path = "your-bucket/path/to/data"

[datastore_config.schema]
ledgers_per_file = 1
files_per_partition = 64000

# Enable fetching historical ledgers from the datastore when not available locally
SERVE_LEDGERS_FROM_DATASTORE = true

B. Ejemplo de Configuración S3

# External datastore configuration for S3
[datastore_config]
type = "S3"

[datastore_config.params]
destination_bucket_path = "your-bucket/path/to/data`"
region = "your_s3_region" # e.g., "us-east-1"

[datastore_config.schema]
ledgers_per_file = 1
files_per_partition = 64000

# Enable fetching historical ledgers from the datastore when not available locally
SERVE_LEDGERS_FROM_DATASTORE = true

3. Verificación de la Configuración

Después de configurar tu nodo RPC, puedes verificar que la integración funciona haciendo una solicitud GetLedgers para un número de secuencia del ledger que sea anterior a la ventana estándar de retención de tu nodo. El RPC debería devolver con éxito los datos del ledger desde el data lake.

Solicitud de Ejemplo:

curl -X POST https://<rpc-host>/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "getLedgers",
"params": {
"startLedger": 100,
"pagination": {
"limit": 1
}
}
}'