Temporal ordering proofs for blockchain protocols.
Fairseq is the Rust SDK for generating and verifying cryptographic proofs that transactions were sequenced fairly (FIFO), anchored to verifiable time via a distributed beacon network.
Add Fairseq to your Cargo.toml:
[dependencies]
fairseq-sdk = "0.1"
tokio = { version = "1", features = ["full"] }use fairseq_sdk::{Config, Prover, Transaction};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create a prover
let config = Config::default();
let prover = Prover::new(config).await?;
// Record transactions with timestamps
let transactions = vec![
Transaction::new("0xabc123...", 1704067200000000000), // nanoseconds
Transaction::new("0xdef456...", 1704067200100000000),
Transaction::new("0x789ghi...", 1704067200200000000),
];
// Generate a temporal ordering proof
let proof = prover.prove(transactions).await?;
println!("Proof ID: {}", proof.id);
println!("Transactions: {}", proof.transaction_count);
println!(
"Epochs: {} -> {}",
proof.epoch_start.epoch_number, proof.epoch_end.epoch_number
);
Ok(())
}use fairseq_sdk::{Config, Verifier};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::default();
let verifier = Verifier::new(config).await?;
// Verify a proof
let result = verifier.verify(&proof).await?;
if result.valid {
println!("Proof is valid");
} else {
println!("Proof is invalid: {:?}", result.error);
}
Ok(())
}use fairseq_sdk::Config;
// From environment variables
let config = Config::from_env();
// Or manually
let config = Config::default()
.with_api_url("https://api.fairseq.io")
.with_api_key("fsk_...")
.with_debug(true);| Variable | Description |
|---|---|
FAIRSEQ_API_URL |
Fairseq API endpoint |
FAIRSEQ_API_KEY |
API key for hosted services |
FAIRSEQ_DEBUG |
Enable debug logging |
Full documentation available at https://fairseq.io/docs
MIT OR Apache-2.0