Conceptos Básicos de Despliegue

Esta guía explica cómo desplegar los daemons de escritura y lectura de Asset Core en un solo nodo con almacenamiento duradero.

Requisitos Previos

  • Compilar los binarios de Asset Core (cargo build --release)
  • Directorio escribible para el registro de confirmaciones y puntos de control
  • Puertos 8080 y 8081 disponibles (o alternativas)

Paso 1 - Preparar directorios

Cree directorios para el estado persistente:

mkdir -p /var/lib/assetcore/{logs,checkpoints}

El registro de commits y los puntos de control se almacenarán aquí.

Paso 2 - Configurar el daemon de escritura

Cree un archivo de configuración write.toml:

[server]
listen = "0.0.0.0:8080"

[commit_log]
path = "/var/lib/assetcore/logs/commit_log.log"
checkpoint_path = "/var/lib/assetcore/checkpoints/write.checkpoint.json"
flush_interval_ms = 100

[ingress]
queue_capacity = 1000
precheck_workers = 4
max_inflight_commits = 100

Configuraciones clave:

ConfiguraciónDescripción
listenDirección y puerto para enlazar
commit_log.pathDónde almacenar el registro de eventos
flush_interval_msCon qué frecuencia hacer fsync (menor = más duradero)
precheck_workersTrabajadores de validación paralela

Paso 3 - Configurar el daemon de lectura

Cree un archivo de configuración read.toml o use argumentos de línea de comandos:

[server]
listen = "0.0.0.0:8081"

[tail]
commit_log = "/var/lib/assetcore/logs/commit_log.log"
checkpoint = "/var/lib/assetcore/checkpoints/read.checkpoint.json"
poll_interval_ms = 10

El daemon de lectura debe apuntar al mismo registro de confirmaciones que el daemon de escritura.

Paso 4 - Iniciar el daemon de escritura

./target/release/assetcored-write --config write.toml

Verifique que esté en funcionamiento:

curl http://localhost:8080/v1/health

Se espera: {"status": "healthy", ...}

Paso 5 - Iniciar el daemon de lectura

./target/release/assetcored-read \
  --listen 0.0.0.0:8081 \
  --commit_log /var/lib/assetcore/logs/commit_log.log \
  --checkpoint /var/lib/assetcore/checkpoints/read.checkpoint.json

Verifique que esté en funcionamiento:

curl http://localhost:8081/v1/health

Paso 6 - Verificar de extremo a extremo

Enviar un commit de prueba:

curl -X POST http://localhost:8080/v1/commit \
  -H "Content-Type: application/json" \
  -d '{
    "operations": [
      {"op": "CreateContainer", "args": {"container_id": 1, "kind": "Standard"}}
    ]
  }'

Lea de nuevo:

curl http://localhost:8081/v1/read/container/1

Solución de problemas

”Dirección ya en uso”

Otro proceso está utilizando el puerto. Detenga ese proceso o cambie la dirección de listen.

”Permiso denegado” en el registro de confirmaciones

El usuario que ejecuta el daemon no tiene acceso de escritura al directorio. Verifique la propiedad:

chown -R assetcore:assetcore /var/lib/assetcore

El daemon de lectura muestra datos antiguos

Verifique el punto final de frescura:

Guía adicional:

curl http://localhost:8081/v1/read/freshness

Si checkpoint_seq está detrás de commit_log_seq, el daemon de lectura está alcanzando. Monitoree la métrica de retraso.

Recuperación de fallos

Ambos daemons se recuperan automáticamente de sus puntos de control al reiniciarse. No se necesita intervención manual.

Próximos pasos