Documentació d'Asset Core

Documentació del motor d'estat del món determinista i referències de l'API.

Decision Gate docs

Implantació Bàsica

Aquesta guia explica com desplegar els daemons de lectura i escriptura d’Asset Core en un únic node amb emmagatzematge durable. És la base que hauríeu de validar abans de passar a topologies més complexes.

Requisits previs

Assegureu-vos que podeu executar ambdós daemons amb emmagatzematge persistent i que teniu permisos per escriure als directoris objectiu. En producció, aquests directoris haurien de ser copiats de seguretat i monitoritzats.

  • Binari nucli d’Asset Core (cargo build --release)
  • Directori escriure per al registre de compromisos, punts de control i tokens d’autenticació
  • Ports 8080 i 8081 disponibles (o alternatives)

Pas 1 - Preparar directoris

Creeu directoris per a l’estat persistent:

mkdir -p /var/lib/assetcore/{data,logs,auth/tokens}

El registre de commits, els punts de control i els fitxers de tokens s’emmagatzemaran aquí. Tracteu aquest directori com a crític per a l’operació.

Pas 2 - Configurar el daemon d’escriptura

Creeu un fitxer de configuració write.toml:

[paths]
base_dir = "/var/lib/assetcore"

[server]
host = "0.0.0.0"
port = 8080

[commit_log]
path = "data/commit_log.log"

[commit_log_driver]
checkpoint_path = "data/write.checkpoint.json"

[namespaces]
catalog_backend = "sqlite"
catalog_path = "data/namespace_catalog.sqlite"

[auth]
directory = "auth/tokens"

Configuracions clau:

ConfiguracióDescripció
server.host/server.portAdreça i port per vincular
commit_log.pathOn emmagatzemar el registre d’esdeveniments
commit_log_driver.checkpoint_pathPunt de control del daemon d’escriptura
auth.directoryDirectori del token Bearer
namespaces.catalog_pathFitxer SQLite del catàleg de namespaces

Pas 3 - Configurar el daemon de lectura

Creeu un fitxer de configuració read.toml o utilitzeu arguments de línia de comandes:

[paths]
base_dir = "/var/lib/assetcore"

[server]
address = "0.0.0.0:8081"

[storage]
commit_log_path = "data/commit_log.log"
checkpoint_path = "data/read.checkpoint.json"

[auth]
directory = "auth/tokens"
namespace_catalog_path = "data/namespace_catalog.sqlite"
namespace_catalog_read_only = true

El daemon de lectura ha de apuntar al mateix registre de confirmacions que el daemon d’escriptura. Si aquests divergeixen, les teves projeccions no coincidiran amb el camí d’escriptura.

Pas 4 - Iniciar el daemon d’escriptura

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

Verifica que s’estigui executant:

curl -H "Authorization: Bearer $ASSETCORE_ADMIN_TOKEN" \
  http://localhost:8080/v1/write/health

Expected: {"status": "saludable", ...}

Pas 5 - Inicieu el daemon de lectura

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

Verifica que s’estigui executant:

curl -H "Authorization: Bearer $ASSETCORE_READ_TOKEN" \
  -H "x-assetcore-namespace: $ASSETCORE_NAMESPACE_ID" \
  http://localhost:8081/v1/read/health

Pas 6 - Verificar de punta a punta

Envia un compromís de prova:

curl -X POST http://localhost:8080/v1/write/namespaces/${ASSETCORE_NAMESPACE_ID}/lifecycle \
  -H "Authorization: Bearer $ASSETCORE_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"target_state":"provisioned","reason":"deployment bootstrap"}'

curl -X POST http://localhost:8080/v1/write/namespaces/${ASSETCORE_NAMESPACE_ID}/commit \
  -H "Authorization: Bearer $ASSETCORE_WRITE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "operations": [
      {"op": "CreateContainer", "args": {"container_id": 1, "kind": {"type": "balance"}, "owner": null, "policies": null}}
    ]
  }'

Llegeix-ho de nou:

curl -H "Authorization: Bearer $ASSETCORE_READ_TOKEN" \
  http://localhost:8081/v1/read/namespaces/${ASSETCORE_NAMESPACE_ID}/containers/1

Solució de problemes

”Adreça ja en ús”

Un altre procés està utilitzant el port. O bé atureu aquest procés o canvieu l’adreça de listen.

”Permís denegat” en el registre de commits

L’usuari que executa el daemon no té accés d’escriptura al directori. Comproveu la propietat:

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

El daemon de lectura mostra dades antigues

Comproveu el punt d’entrada de frescor:

curl -H "Authorization: Bearer $ASSETCORE_READ_TOKEN" \
  http://localhost:8081/v1/read/namespaces/${ASSETCORE_NAMESPACE_ID}/freshness

Si world_seq està per darrere de commit_log_world_seq, el daemon de lectura s’està posant al dia. Monitoreu la mètrica de retard.

Recuperació de fallades

Ambdós daemons es recuperen automàticament dels seus punts de control en reiniciar. No es necessita intervenció manual.

Properes passes