Skip to content

Architecture ​

Xian node operations are intentionally split across multiple repos so the deterministic core, operator UX, and runtime backend stay cleanly separated.

Repo Responsibilities ​

RepoResponsibility
xian-clioperator-facing commands and local manifest/profile artifacts
xian-stackDocker images, Compose topology, backend control surface
xian-abcideterministic node process, query handling, config rendering
xian-configscanonical network bundles and contract bundles
xian-contractingcanonical Rust compiler, native VM packages, deterministic storage/host helpers, local test harness
xian-deployremote Linux deployment of prepared homes and released images
xian-pyexternal SDK for apps, wallets, and transaction helpers

Runtime Shapes ​

Integrated ​

The default runtime is a single node container:

This is the preferred operational default because it is simpler to run and upgrade, while using immutable images and proper container-native supervision.

Fidelity ​

The optional fidelity profile splits the node:

Use this when you want process isolation that more closely resembles an orchestrated deployment.

Optional Services ​

  • Dashboard and explorer: separate HTTP/WebSocket service backed by CometBFT RPC
  • Monitoring: optional Prometheus/Grafana stack plus the Xian app metrics endpoint
  • BDS: optional indexed storage layer with asynchronous block ingestion, automatic catch-up from CometBFT RPC, and replay/reindex tooling
  • GraphQL: optional PostGraphile v5 layer over the BDS Postgres database for convenience queries only
  • Host-backed storage growth comes from chain data, Xian state, the BDS spool, and Postgres volumes rather than mutable growth inside a container image

These are not part of the deterministic execution path. The validator remains authoritative for current-state reads through raw ABCI query, while BDS-backed reads are indexed and eventually consistent.

Deterministic Boundary ​

Consensus-sensitive behavior lives in xian-abci and xian-contracting:

  • transaction validation and execution
  • ABCI request handling
  • state storage and app-hash generation
  • instruction metering and linter rules

Runtime services such as Compose, dashboard, BDS, GraphQL, and supervisor choice do not change consensus semantics.