Skip to content

Conversation

@qj0r9j0vc2
Copy link
Member

Summary

  • Add core type definitions (Hash, Height, ValidatorId)
  • Add BLS12-381 crypto primitives for threshold signatures
  • Implement DCL Primary components (Car proposer, Attestation collector, Cut former)
  • Implement DCL Worker components (Batch maker, Synchronizer)
  • Add storage layer with WAL support
  • Add MVP node binary for local testing

Components

crates/types

Core type definitions used across the codebase:

  • Hash: 32-byte hash with hex display
  • Height: Block height wrapper
  • ValidatorId: 20-byte validator identifier

crates/crypto

BLS12-381 cryptographic primitives:

  • BlsKeyPair, BlsPublicKey, BlsSecretKey
  • BlsSignature with aggregation support
  • Threshold signature verification

crates/data-chain

DCL implementation following the Sui Mysticeti/Narwhal pattern:

Primary:

  • Car: Certified Acknowledgment Record (contains batch digests + attestations)
  • Attestation: BLS signature on Car hash
  • Cut: Consistent snapshot across all validator chains
  • CutFormer: Forms cuts when 2f+1 attestations received

Worker:

  • Batch: Collection of transactions
  • BatchMaker: Creates batches from incoming transactions
  • Synchronizer: Syncs missing batches from peers

crates/storage

Persistent storage with crash recovery:

  • WAL (Write-Ahead Log) for durability
  • Storage traits for Cars, Batches, Attestations

crates/node

MVP binary for testing:

  • gen-config: Generate validator configs
  • run: Run single node
  • local-test: Run N validators locally

Test plan

  • Unit tests for core types
  • Unit tests for crypto primitives
  • Unit tests for DCL components
  • Crash recovery tests
  • Local integration test with 4 validators
  • Network partition tests
  • Performance benchmarks

@qj0r9j0vc2 qj0r9j0vc2 force-pushed the feat/dcl-implementation branch from 43d6c0d to be56d81 Compare December 21, 2025 08:54
@qj0r9j0vc2 qj0r9j0vc2 self-assigned this Dec 21, 2025
@qj0r9j0vc2 qj0r9j0vc2 added the enhancement New feature or request label Dec 21, 2025
@qj0r9j0vc2 qj0r9j0vc2 merged commit 97be21c into main Dec 21, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants