Performance Tuning Guide

ChronoSeal uses a deterministic Synthetic Gene Mutation Engine. This guide explains how to tune the mutation parameters to balance security, server throughput, and client mobile CPU limits.


Primary Tuning Parameters

Two configuration constants in the ChronoSeal daemon dictate the complexity of synthetic mutation progression:

  • gene_size: The size of the synthetic gene byte buffer (configured from 1 to 4096 bytes). Larger values increase state vector complexity.
  • mutation_rounds: The number of mutation iterations executed per heartbeat (configured from 1 to 10 rounds). Higher counts increase server and browser CPU operations.

Recommended Profiles

Profile gene_size mutation_rounds Security Strength Recommended Environment
Default 512 4 Moderate Development and local testing
Recommended 2048 4 Strong Most production deployments
High Security 4096 8 Very Strong Sensitive financial or auth APIs
Max Practical 4096 10 Extremely Strong High-value targets under active abuse
ℹ️
v1.0.2 Protocol Limits: The validator enforces maximum bounds of gene_size = 4096 and mutation_rounds = 10. Values exceeding these ranges are rejected during configuration verification.

Monitoring Performance

1. Server-Side Observability

Check the effective parameters and database write latencies using the daemon CLI:

Shell
chronoseal config check --format yaml
chronoseal stats --format json

Avoid running the daemon with CHRONOSEAL_LOG=debug in production, as debug logging session buffers degrades server throughput.

2. Client-Side Time Measurement

Measure WASM execution time inside your browser console to verify mobile compatibility:

JavaScript
console.time("gene-mutation");
const commitment = preview_gene_commitment(
  order_b64,
  session_id,
  mutation_step,
  rounds
);
console.timeEnd("gene-mutation");

Tuning Progression Strategy

When upgrading mutation strength in production, we recommend a step-by-step approach to monitor mobile battery impact:

  1. Start at our standard baseline: gene_size = 2048, mutation_rounds = 4.
  2. Deploy and monitor the heartbeat verification success metrics. Look for increases in client timeouts.
  3. Increase state size first (e.g. to 4096) before raising the number of execution rounds.
  4. Perform testing on older Android/iOS mobile devices. Desktops are highly forgiving of high WASM execution loads; low-end mobile CPUs are not.

Storage Backend Impact

The choice of storage backend has a significant impact on transaction throughput:

  • sqlite-in-memory: Highest performance, zero write latency. Ideal for ephemeral deployments.
  • sqlite-in-disk: Bounded by disk write capacity and database file locks.
  • valkey: Scales horizontally across multiple stateless daemon instances connecting to a shared Redis/Valkey cluster.
Last Updated: June 2026 (v1.0.2)