Skip to content

victorchukwuemeka/dummy_client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Perfect — here’s your updated README with a new detailed section added called “🔧 Systems & Networking Foundations”, which clearly explains how TCP/IP, networking, and distributed systems architecture are involved in Dummy Clients.

You can copy this directly into your README file 👇


🦁 Dummy Clients

Dummy Clients is a full-feature educational Solana client, built in Rust. It's not a production validator — instead, it's a learning-first implementation of Solana's networking, ledger, PoH, consensus, runtime, and RPC layers.

Our mission: give developers the ability to understand, build, and hack the Solana protocol itself without needing datacenter-grade hardware.


🚀 Features

  • Gossip Networking → discover validators, slots, and cluster state
  • Ledger Store & Replay → download and verify blocks locally
  • Proof of History Verifier → replay Solana's global clock
  • Consensus Simulator (Tower BFT) → explore forks, voting, lockouts
  • Execution Runtime (Sealevel Lite) → run transactions and programs
  • Custom RPC → serve data directly from your local replayed ledger

All features are real-world compatible — same wire protocols, ledger format, and runtime behaviors as Solana Labs' validator — but simplified and modular for clarity.


🧭 Why Build This?

Most Solana developers focus on dApps and smart contracts. Very few touch the protocol internals. Dummy Clients closes that gap.

By building and using it, you'll:

  • Learn how validators work under the hood
  • Understand networking, ledger, and consensus at a deep level
  • Gain skills to become a protocol-level engineer (not just a dApp dev)
  • Contribute to the Solana ecosystem in core infrastructure

🔧 Systems & Networking Foundations

Dummy Clients is more than just a validator simulator — it’s a hands-on lab for systems and networking engineering. It trains you in the exact areas companies like Anza and Solana Labs look for when hiring protocol engineers.

🧠 How TCP/IP fits in

Validators and clients in Solana talk over the internet using the TCP/IP networking stack:

Layer Used In Description
Application Layer Solana’s Gossip Protocol Exchanges validator info, votes, and cluster data
Transport Layer UDP / QUIC / TCP Moves packets between validators
Network Layer IP Routes packets across the internet
Data Link + Physical Wi-Fi / Ethernet Handles the actual transmission of bits

In Dummy Clients, modules like dc-gossip and dc-rpc use sockets, UDP packets, and TCP listeners to connect, transmit, and receive real Solana network data — teaching you how distributed blockchain nodes communicate over the wire.

🧩 How distributed systems fit in

Solana is a massive distributed system — thousands of validators, all keeping the same ledger. To make this work, it needs:

  • Fault tolerance — nodes can crash but the system keeps going
  • Consistency — everyone agrees on the same ledger
  • Synchronization — nodes advance slots together in time

Dummy Clients re-creates this in simplified form. You’ll learn how consensus, forks, and finality work through modules like dc-consensus and dc-poh.

⚡ Architecture Engineering in Action

Each Dummy Client module demonstrates a real-world distributed system component:

Module Networking Distributed Systems
dc-gossip Opens UDP/QUIC sockets to discover validators Syncs cluster state and slot info
dc-ledger Fetches data via network requests Maintains consistent ledger view
dc-poh Verifies time-ordered events Ensures deterministic execution
dc-consensus Simulates validator votes Demonstrates fault-tolerant agreement
dc-rpc Serves data via TCP socket Offers consistent read access to state

This combination of network protocol design and distributed system architecture makes Dummy Clients the perfect training ground for building next-generation Solana infrastructure.


🛠️ Roadmap

✅ Phase 1 — Gossip Listener

  • Connect to Solana gossip over QUIC/UDP
  • Log validator identities, slot announcements, and cluster health
  • CLI tools: dc gossip peers, dc gossip slots

🔜 Phase 2 — Ledger Downloader & Parser

  • Fetch blocks from validators
  • Store in a local database
  • Explore accounts & transactions offline

🔜 Phase 3 — Proof of History Verifier

  • Implement PoH replay in Rust
  • Confirm time-ordering of transactions

🔜 Phase 4 — Consensus Simulator (Tower BFT Lite)

  • Simulate validator votes and fork choice
  • Visualize finality and lockouts

🔜 Phase 5 — RPC Surface

  • Implement JSON-RPC for getBlock, getTransaction, etc.
  • Optional: add custom analytics beyond Solana RPC

📚 Why: Makes the client useful to external tools/dapps, like QuickNode or Helius.

🔜 Phase 6 — Mini Validator Mode

  • Replay transactions locally for validation
  • Forward transactions to real validators (like a proxy)
  • Simulate partial ledger sync

📚 Why: Bridges the gap between light client and full validator. Think of it as "training wheels" for Solana validation.

🔜 Phase 7 — Finality Proofs

  • Transaction Finality Proofs → generate verifiable cryptographic proofs that a transaction is finalized in the Solana ledger.
  • Storage Finality Proofs → export proofs of account state (e.g., balances, contract storage) tied to finalized slots.
  • Portable Proof Format → structure proofs so they can be verified outside Solana (e.g., in smart contracts on Ethereum, Cosmos, or other chains).

📚 Why: Today, Solana doesn't expose raw transaction/state proofs in a portable way. Dummy Client will fill that gap, enabling trustless bridges, zk-light clients, and cross-chain apps.

🔮 Phase 8 — Advanced Experiments

  • zk-Light Client: use zero-knowledge proofs to verify Solana state transitions trustlessly.
  • Cross-Client Testing: compare Dummy Client proofs and replay with Solana Labs + Firedancer implementations.
  • Custom Modules: add unique tooling (e.g., "most active programs in last 10k slots").

📚 Why: Pushes Dummy Client beyond education into research-grade interoperability.


🏆 Endgame

By completing this roadmap, Dummy Client evolves into a full-fledged Solana light client with validator DNA:

  • Networking (Gossip)
  • Ledger Sync (Blocks + Accounts)
  • PoH Verification
  • Consensus Simulation
  • RPC Exposure
  • Mini Validator Execution
  • Transaction & Storage Finality Proofs
  • zk-Light Client capabilities

⚡ Getting Started

Prerequisites

  • Rust (latest stable)
  • Cargo
  • Git

Clone the repo

git clone https://github.com/victorchukwuemeka/dummy_clients.git
cd dummy_clients

Build

cargo build

Run (example: gossip listener)

cargo run --bin dc-gossip

📂 Repo Structure

/crates
  dc-gossip/        # Gossip networking
  dc-ledger/        # Blockstore & ledger parsing
  dc-poh/           # Proof of History verifier
  dc-consensus/     # Tower BFT simulator
  dc-runtime/       # Sealevel-lite execution engine
  dc-rpc/           # RPC surface
  dc-cli/           # CLI tools
configs/
docs/
examples/

🏆 Vision

Dummy Clients will become the protocol gym for Solana developers:

  • A place to train, build, and experiment with validator-level concepts.
  • A toolkit for teaching protocol engineering.
  • A path for developers to go beyond smart contracts into core Solana.
  • A foundation for trustless interoperability — by exporting transaction & storage finality proofs, Dummy Client bridges Solana into the broader multi-chain world.

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for more information.

📄 License

This project is licensed under the MIT License.


Ready to dive into Solana's protocol internals? Let's build the future of blockchain understanding together.


About

a solana client but for dummies

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages