# EPF Cohort 6 – Week 2 Update After switching focus from consensus improvements to observability work, this week has been about getting practical experience with Tokio Tracing and preparing for integration into the Grandine client. ## Tokio Tracing Practice Project To get comfortable with `tokio-tracing`, I created a small asynchronous Rust project from scratch. In this toy project, I experimented with: - Setting up `tracing` dependencies (`tracing`, `tracing-subscriber`, `tracing-futures`) - Configuring structured logs and spans - Testing different subscriber configurations - Practicing filtering and log levels This hands-on work helped me better understand how tracing differs from traditional logging and how to design useful instrumentation in async Rust code. ## Grandine Exploration In parallel, I started exploring the Grandine codebase more systematically: - Cloned the repository and built it locally on both Ubuntu and Windows WSL - Studying how large-scale Rust projects like Grandine organize modules, crates, and dependencies ## Next Steps For the next week, my focus will be: - Identifying the most critical parts of Grandine where tracing instrumentation would be most useful (e.g., block processing, networking, validator duties) - Studied the main crates and module layout to understand where tracing hooks could be inserted - Documenting how to configure and use the tracing output for debugging ## Resources - [Tokio Tracing Documentation](https://docs.rs/tracing) - [Tokio Tracing Cookbook](https://tokio.rs/tokio/topics/tracing) - [Grandine GitHub Repository](https://github.com/grandinetech/grandine)