Files
2026-09-03 06:26:49 +02:00

4.6 KiB

ksp-app-backfill-desk

ksp-app-backfill-desk est l'application desktop spécialisée de contrôle d'un backfill historique RawTransaction KSP.

Elle reste une couche de composition Tauri : Config sélectionne les profils, Transport possède les endpoints/rôles/retry/rate-limit, Store possède la persistence et le backend, et ksp-job-backfill-lib possède découverte, hydratation, frontier/checkpoint et lifecycle du job.

Package

package : ksp-app-backfill-desk
lib     : ksp_app_backfill_desk_lib
bin     : ksp-app-backfill-desk

Le binaire est un launcher mince. La bibliothèque applicative possède le bootstrap, l'état Rust single-run, les DTOs Tauri, les commands et le bridge latest-value vers le frontend.

Composition

ksp-config-lib                 -> composite, profils, secrets et runtime packagé
ksp-core-lib                   -> erreurs, Pubkey et registre Program IDs
ksp-onchain-transport-lib      -> HTTP pool, rôles, admission, retry/rate-limit
ksp-store-lib                  -> façade Store backend-neutral
ksp-job-api                    -> lifecycle Job commun
ksp-job-backfill-lib           -> request/runtime/checkpoint/snapshots Backfill
ksp-logging-lib                -> logging/tracing applicatif
ksp-app-backfill-desk          -> orchestration Tauri + projections sûres

L'application ne dépend pas directement de ksp-store-api, ksp-store-postgres-lib, tokio-postgres, reqwest, tonic ou yellowstone-grpc-proto.

Capacités

La surface utilisateur comprend :

  • quatre scopes : latest address, before address, after address et explicit signatures ;
  • engagements finalized et confirmed ;
  • sélection d'un rôle HTTP logique compatible avec getSignaturesForAddress et getTransaction ;
  • bornes page/candidats/concurrence validées côté Rust par le contrat Backfill ;
  • validation de la requête avant Start ;
  • un seul run actif ;
  • monitoring latest-value par événement ksp-backfill-status avec resynchronisation explicite ;
  • Cancel ciblé par JobId backend et idempotent ;
  • Resume in-session lorsqu'un checkpoint terminal est disponible ;
  • autocomplete libre des Program IDs provenant du registre canonique ksp-core-lib.

L'autocomplete n'est jamais une allow-list : une adresse Solana valide non enregistrée reste saisissable.

Checkpoint et Resume

Le checkpoint concret ne traverse jamais IPC. Le backend conserve uniquement en mémoire Rust le dernier terminal compatible et la requête nécessaire à une reprise dans la même session.

Un Resume crée un nouveau JobId backend. ksp-job-backfill-lib valide le checkpoint contre la requête d'origine puis le réémet pour ce nouveau Job sans modifier le scope fingerprint ni la frontier. Il n'existe pas de checkpoint durable de Backfill Desk après redémarrage de l'application.

Config et réseaux

Le composite dédié est :

cfg.composite.ksp-app-backfill-desk

Les profils committed couvrent mainnet, devnet et testnet. Mainnet est le profil par défaut. Transport et Store doivent sélectionner exactement le même réseau avant que la composition soit déclarée ready.

Les profils Store committed utilisent actuellement TLS PostgreSQL disabled; cette politique de profil n'enlève pas le support verify_full du Store/schema.

Le frontend ne reçoit jamais URI Store, URL RPC, credential provider, secret Config ou backend physique.

Monitoring et sécurité

Le monitoring expose des compteurs et codes sûrs : lifecycle, phase, boundary, candidats, entités/observations, missing/conflicts/holes, concurrence maximale, frontier contiguë, présence de checkpoint et éventuel domain/code d'échec.

Il n'expose pas :

  • payload RAW ;
  • adresse ou signatures de campagne ;
  • checkpoint/cursor concret ;
  • endpoint URL ou credential ;
  • contexte d'erreur arbitraire.

Le frontend ne possède ni accès direct filesystem/réseau, ni persistence navigateur de données Backfill. Les capabilities Tauri guest restent core:default et tracing:default.

Ports et développement

Vite HTTP : 1436
Vite WS   : 1437

Lancement :

(cd crates/ksp-app-backfill-desk && cargo tauri dev)

Build production :

(cd crates/ksp-app-backfill-desk && cargo tauri build)

Voir également USAGE.md, ../ksp-job-backfill-lib/README.md, ../../docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md et ../../docs/validation/024-V0_3_7_BACKFILL_DESK.md.