Constellation Network Node Software - a DAG-based distributed ledger with Layer 0 (L0) and Layer 1 (L1) validators.
Tessellation implements a hierarchical DAG consensus where L1 metagraphs create blocks that L0 aggregates into global snapshots. This architecture enables scalable, parallel processing of transactions across multiple metagraphs while maintaining a unified global state.
Written in Scala 2.13.
- Scala 2.13.18 with Java 21
- Cats-Effect 3 - Async/IO
- FS2 - Streaming
- HTTP4s (Ember) - HTTP server/client
- Circe - JSON serialization
- Weaver - Testing framework
- Java 21
- SBT
- Docker
just test # Full test suite
just test --skip-assembly # Skip compilation, reuse JARs
just up # Start environment
just down # Stop environment
just check # Lint + tests (CI equivalent)sbt compile # Compile
sbt test # Run tests
sbt runLinter # Format code (scalafmt + scalafix)
sbt dagL0/assembly # Build L0 JAR
sbt dagL1/assembly # Build L1 JARmodules/
├── shared # Core data structures, crypto, serialization
├── node-shared # P2P networking, consensus, gossip
├── dag-l0 # Layer 0 validator (global consensus)
├── dag-l1 # Layer 1 validator (metagraph consensus)
├── currency-l0 # Currency metagraph L0
├── currency-l1 # Currency metagraph L1
├── sdk # SDK for metagraph development
└── ... # keytool, wallet, rosetta, tools
For detailed architecture, see docs/CODEBASE_MAP.md.
See CONTRIBUTING.md for guidelines.
Conventional commits required. Run sbt runLinter before committing.