- Objective: Learn the basics of Rust by creating a Caesar cipher, focusing on Rust syntax, strings, and basic control flow.
- Topics Covered: Rust setup, mutable vs. immutable variables, functions, user input, and command-line arguments.
- Objective: Dive into Rust's structs, enums, and error handling by developing a ledger system to record transactions of a simple cryptocurrency.
- Topics Covered: Structs, enums, match statements, vectors, file I/O, and comprehensive error handling, difference between Option and Result.
- Objective: Understand Rust's capabilities for data serialization and deserialization using Bitcoin transactions as a case study.
- Topics Covered: Use of external crates, JSON and binary serialization, working with Bitcoin transaction data structures, intro to Box and Trait objects.
- Objective: Build a tool to connect to a Bitcoin node using multithreading, focusing on networking and concurrency in Rust.
- Topics Covered: Thorough discussion on allocators and basic Networking, threads, TCP connections,shared state using Arc and Mutex.
- Objective: Demonstrate the power of Rust Generics by building a library using Generics to simplify the code, this would help the students to read the Rust documentation better.
- Topics Covered: Generics, traits, lifetime specifiers.
Then the current chaincode projects can be done. Later we conjure up some ideas using async and other advanced libraries in Rust.
I have made these projects in a simplistic manner so that students can focus on learning Rust properly at the same time being enthusiastic about bitcoin and cryptography.