Welcome to Turbin3's Advanced Rust program. This program aims to facilite your growth and learning as a Solana developer branching out from non-native Rust developer background. By the end of the program, each participant should feel confident in their ability to:
- Write, test and deploy native Rust programs
- Optimize programs for CU and space savings
- Create their own libraries and abstractions to achieve both of these outcomes
The course will run 3 days a week for a duration of 5 weeks in total. This is split into two main parts: Writing smart contracts, and optimizing contracts and libraries.
Course structure and key competencies are as follows:
- Introduction and Vault
- Account checks, serialization, discriminators and security
- Native Rust Vault program
- Testing Native Rust programs in Rust/Typescript and Breakouts
- Escrow
- Native Rust Escrow Program (1/2)
- Native Rust Escrow Program (2/2)
- Testing/Benchmarking and breakouts
- AMM
- Native Rust AMM Programs (1/2)
- Native Rust AMM Program (2/2)
- Testing/Benchmarking and breakouts
- Unsafe Rust and Non-standard libraries
- Introduction to unsafe Rust
- Replacing Solana-Program
- NoStd entrypoint and CPI (Competition)
- Extreme optimization
- Writing a custom entrypoint
- Rosetta Code (Unsafe Rust/C/Assembly) optimization
- Present your own non-standard optimization
In this module, we will dive deep into:
- Mastering account checks
- Native Rust program security
- Serialization and discriminators
- Program structure
- Testing a Native Rust program
The final outcome of this week is that all students will successfully build and test their own native Rust vault program. The vault program be be able to deposit and withdraw from a program-controlled vault account via PDA signing of an account derived from the depositor's signing address.
In this module, we will look at:
- Writing an Escrow in Native Rust program security
- Serialization and discriminators
- Program structure
The final outcome of this week is that all students will successfully build and test their own native Rust vault program, enabling them to safely deposit and withdraw lamports from a program-controlled vault account via PDA signing of an account derived from the depositor's signing address.