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.port | Adreça i port per vincular |
commit_log.path | On emmagatzemar el registre d’esdeveniments |
commit_log_driver.checkpoint_path | Punt de control del daemon d’escriptura |
auth.directory | Directori del token Bearer |
namespaces.catalog_path | Fitxer 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
- Salut i Mètriques - Monitorització de punts finals
- Referència CLI - Ús d’acctl per a operacions