2025-12-01 12:48:39 +01:00
|
|
|
# Introduction
|
|
|
|
|
|
2025-12-20 10:05:21 +01:00
|
|
|
The Logos Testing Framework is a purpose-built toolkit for exercising Logos in
|
2025-12-01 12:48:39 +01:00
|
|
|
realistic, multi-node environments. It solves the gap between small, isolated
|
|
|
|
|
tests and full-system validation by letting teams describe a cluster layout,
|
|
|
|
|
drive meaningful traffic, and assert the outcomes in one coherent plan.
|
|
|
|
|
|
|
|
|
|
It is for protocol engineers, infrastructure operators, and QA teams who need
|
2026-01-26 16:36:51 +01:00
|
|
|
repeatable confidence that node components work together under network and
|
|
|
|
|
timing constraints.
|
2025-12-01 12:48:39 +01:00
|
|
|
|
2025-12-18 19:47:29 +01:00
|
|
|
Multi-node integration testing is required because many Logos behaviors—block
|
2026-01-26 16:36:51 +01:00
|
|
|
progress and liveness under churn—only emerge when several nodes interact over
|
|
|
|
|
real networking and time. This framework makes those checks
|
2025-12-01 12:48:39 +01:00
|
|
|
declarative, observable, and portable across environments.
|
2025-12-18 19:47:29 +01:00
|
|
|
|
|
|
|
|
## A Scenario in 20 Lines
|
|
|
|
|
|
|
|
|
|
Here's the conceptual shape of every test you'll write:
|
|
|
|
|
|
2025-12-20 09:16:23 +01:00
|
|
|
```rust,ignore
|
2025-12-18 19:47:29 +01:00
|
|
|
// 1. Define the cluster
|
|
|
|
|
let scenario = ScenarioBuilder::topology_with(|t| {
|
|
|
|
|
t.network_star()
|
2026-01-26 16:36:51 +01:00
|
|
|
.nodes(3)
|
2025-12-18 19:47:29 +01:00
|
|
|
})
|
|
|
|
|
// 2. Add workloads (traffic)
|
|
|
|
|
.transactions_with(|tx| tx.rate(10).users(5))
|
|
|
|
|
|
|
|
|
|
// 3. Define success criteria
|
|
|
|
|
.expect_consensus_liveness()
|
|
|
|
|
|
|
|
|
|
// 4. Set experiment duration
|
|
|
|
|
.with_run_duration(Duration::from_secs(60))
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
// 5. Deploy and run
|
|
|
|
|
let runner = deployer.deploy(&scenario).await?;
|
|
|
|
|
runner.run(&mut scenario).await?;
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
This pattern—topology, workloads, expectations, duration—repeats across all scenarios in this book.
|
|
|
|
|
|
2025-12-20 10:05:21 +01:00
|
|
|
**Learn more:** For protocol-level documentation and node internals, see the [Logos Project Documentation](https://nomos-tech.notion.site/project).
|