An educational blockchain implementation in Rust designed to help developers understand how cryptocurrency networks work under the hood.
Artemis Network is a lightweight, fully functional blockchain that demonstrates the core concepts found in production cryptocurrency networks, but with reduced complexity. This makes it an excellent learning tool for understanding:
- Proof-of-Work Mining: How SHA-256 hashing and difficulty targets secure the network
- Transaction Processing: ECDSA cryptographic signing and verification
- Consensus Mechanisms: How nodes agree on blockchain state using the longest-chain rule
- P2P Networking: Peer discovery and message broadcasting across the network
- Distributed Systems: Concurrent components working together with shared state
- Data Persistence: Embedded database with indexing strategies
# Build and run a node
cargo run -- --config=./config/config-1.yaml
# Run with dev mode (fresh database on startup)
cargo run --features dev -- --config=./config/config-1.yamlFor detailed instructions on building, running, testing, and using the API, see DEVELOPMENT.md.
📚 MODULES.md - Complete module overview and architecture documentation
📖 DEVELOPMENT.md - Build, run, test, and API usage guide
The docs/ directory contains in-depth explanations of blockchain concepts:
- Mining & Proof of Work - How mining works with difficulty and nonce
- Transactions - Transaction lifecycle, signing, and prioritization
- Consensus & Synchronization - How nodes stay in sync
- Networking & Peer Discovery - P2P communication protocols
- Transaction Pool - Priority queue implementation
- Wallet & Cryptography - secp256k1 and key management
- Database & Storage - Persistent storage with Sled
Artemis Network uses a concurrent, component-based architecture with five main components running in parallel:
- Server: Handles P2P (TCP) and client (HTTP) communication
- Miner: Executes proof-of-work block mining
- Sync: Synchronizes blockchain with peers
- Broadcaster: Propagates transactions and blocks across network
- Discover: Discovers and registers peers
Each component runs as an independent Tokio task, safely sharing state through Arc and Mutex wrappers. See MODULES.md for complete architectural details.
Contributions are welcome! This is an educational project, so clarity and learning value are prioritized over production optimizations.