mod server

module server

Serialized coordinator for one campaign ensemble and system signature.

Enums

enum CatalogServerError

Coordinator startup failure.

InvalidConfiguration

Campaign, ensemble, or replica set is empty.

InvalidScientificConfiguration

Scientific signature, descriptor, validator, or catalog settings disagree.

Io(std::io::Error)

Listener setup failed.

InvalidJournal(String)

A durable request journal is truncated, corrupt, or inconsistent.

Structs and Unions

struct CatalogServer

Running localhost or remote coordinator.

Implementations

impl CatalogServer

Functions

fn addr(&self) -> SocketAddr

Bound socket address.

fn header(&self) -> &ServerHeader

Immutable empty-state run header.

fn start(addr: &str, config: ServerConfig) -> Result<Self, CatalogServerError>

Bind and start a coordinator for one isolated ensemble.

fn with_clock(mut self, period: Duration) -> Self

Spawn a thread that journals one CatalogOperation::Tick every period.

fn with_halving(self, policy: SuccessiveHalving) -> Self

Attach a successive-halving policy after start.

fn with_quorum(self, quorum: f64, deadline_ticks: u64) -> Result<Self, CatalogServerError>

Apply a quorum close to the live population after start.

Traits implemented

impl Drop for CatalogServer
struct ServerConfig

Immutable identity and allowed replicas for one coordinator.

Implementations

impl ServerConfig

Functions

fn new(campaign: impl Into<String>, ensemble: impl Into<String>, signature_digest: [u8; 32], replicas: impl IntoIterator<Item = u32>) -> Result<Self, CatalogServerError>

Construct an isolated ensemble configuration.

fn with_attraction_region_config(mut self, config: AttractionRegionConfig) -> Result<Self, CatalogServerError>

Configure the fixed-probe posterior used to define attraction regions.

fn with_exact_structure_witness<W>(mut self, witness: W) -> Result<Self, CatalogServerError>
where
    W: ExactStructureWitness + Send + Sync + 'static

Bind the symmetry-aware witness that makes final basin-identity decisions.

fn with_halving(mut self, policy: SuccessiveHalving) -> Self

Drive live-population size with successive halving.

fn with_ledger_budget(mut self, per_replica_budget: u64) -> Result<Self, CatalogServerError>

Attach an equal charged-work budget for every configured replica.

fn with_quorum(mut self, quorum: f64, deadline_ticks: u64) -> Result<Self, CatalogServerError>

Close population epochs on quorum of the live roster once deadline_ticks coordinator ticks have passed since the first submission of the open epoch.

fn with_scientific_state<F>(mut self, signature: SystemSignature, descriptor_space: DescriptorSpace, validator: ValidatorConfig, catalog_capacity: usize, census_radius: f64, total_charged_work: u64, evaluate: F) -> Result<Self, CatalogServerError>
where
    F: Fn(&[f64]) -> Result<FreshEvaluation, String> + Send + Sync + 'static

Attach the scientific state and receiving-side engine validation.

fn with_state_directory(mut self, directory: impl Into<PathBuf>) -> Result<Self, CatalogServerError>

Persist accepted requests under one isolated ensemble directory.

struct ServerHeader

Run-header evidence that the coordinator owns a new empty state.

campaign: String

Campaign identity.

ensemble: String

Ensemble identity.

replicas: Vec<u32>

Allowed replica identities.

initial_snapshot_version: u64

Snapshot version at construction.

empty_state_proof: bool

Whether catalog, census, replay map, and counters were empty.