Expand description
§tsoracle-core
Sync algorithm core for the tsoracle timestamp oracle.
No I/O, no async, no tokio. Runtime-neutral, property-testable in microseconds. Anything you need to reason about tsoracle’s timestamp generation lives here — the higher layers (tsoracle-server, tsoracle-client, the consensus drivers) are wiring around this core.
§What’s in the box
Allocator— the window allocator. Hands out 46/18-bit-packedTimestamps within a granted window, tracks the leader’s epoch, and exposes theWindowGrantlifecycle used by the server’s leader-watch + fence pipeline.Timestamp— the 64-bit packed representation.PHYSICAL_MS_MAXandLOGICAL_MAXdocument the bit budget;TimestampErrorcovers the narrow space of invalid encodings.Epoch— the leader-watermark identifier the failover fence checks. Persisted alongside the high water by everyConsensusDriverimpl.Clock+SystemClock— the trait for “what time is it” abstraction.clock::testingexposes deterministic fakes for property tests.Bt— backtrace-on-error helper. ZST and no-op unless thebtfeature is on; with it on, capture is still gated byRUST_BACKTRACE/RUST_LIB_BACKTRACE.CoreError— the algorithm-level error type. Server, client, and driver crates wrap it in their own variants.
§Feature flags
std(default) — enablesstd-dependent surface (most of it). Disabling gives ano_stdcore; the public surface shrinks but the allocator + timestamp math still work.serde— derivesSerialize/Deserializeon the public types so they cross wire and storage boundaries cleanly.test-clock— exposes theclock::testingmodule to downstream test code without needingcfg(test)machinery.bt— capturesstd::backtrace::Backtracein instrumented error variants. Off by default to keep cold paths free.
§Documentation
docs/architecture-deep-dive.md— the algorithm and bit-packing contract this crate implements.docs/consensus-integration.md— how theAllocatorinteracts with aConsensusDriverimpl.
Modules§
- docs
- Long-form documentation for tsoracle-core.
Structs§
- Allocator
- Bt
- Epoch
- System
Clock - Default implementation backed by
std::time::SystemTime. - Timestamp
- TsoPeer
- A known peer node and the network endpoint where its TSO service can be reached for follower-redirect hints.
- Window
Grant - A contiguous block of
counttimestamps starting at(physical_ms, logical_start), all sharing one leadershipepoch.
Enums§
- Commit
Outcome - The result of a
try_commit_window_extensionthat passed range validation. - Core
Error - Ignore
Reason - Why a
CommitOutcome::Ignoredcommit left the durable bound unchanged. - Timestamp
Error