Ordering & Inclusion
Order sequencing is deterministic, derived from the Continuum sequencing layer.
Continuum Sequence
Every order receives a globally unique sequence number:
continuum_sequence = (tick_number << 32) | sequence_in_ticktick_number— Block height from Continuum (VDF-proven)sequence_in_tick— Position within that tick (0-indexed)
This replaces timestamp-based ordering to ensure all nodes process orders identically.
Order Structure
TickOrder {
order_id: OrderId,
market_id: MarketId,
account_id: AccountId,
side: Side, // Buy | Sell
price: i64,
quantity: u64,
// Sequencing
tick_number: u64,
sequence_in_tick: u64,
continuum_sequence: u64, // PRIMARY KEY
// Perpetuals
leverage: Option<u64>,
position_effect: Option<PositionEffect>, // Open | Close
reduce_only: bool,
margin_mode: Option<MarginMode>, // Cross | Isolated
liquidation: bool, // System-generated liquidation
}Inclusion Rules
Zero-quantity rejection — Orders with
quantity == 0are rejected at insertionMargin validation — Orders must pass
reserve_margin_for_order()before inclusionSignature verification — All orders are Ed25519-signed; invalid signatures rejected
Priority Queue Processing
Orders are processed via a binary min-heap keyed by continuum_sequence:
Within each category, earlier sequences execute first (FIFO from Continuum).
Cancellation Handling
Cancellations use the same continuum_sequence ordering:
Cancels are processed in sequence order alongside new orders, ensuring deterministic interleaving.
Last updated