We just posted a 10-hour course on the freeCodeCamp.org YouTube channel that will teach you how to build a decentralized, fully distributed, content-addressable file storage system using Go. This course is perfect for those interested in system design, low-level programming, and network protocols.

Anthony GG developed this course. He has over 20 years of experience as a software developer and has created many popular courses.

The course takes you through the entire process of building a scalable application from scratch. You'll start by creating a peer-to-peer TCP library in Go and then move on to developing a file storage system that can handle and stream very large files.

Here are some of the key topics covered:

  • System Design: Understand the principles behind designing a robust and scalable decentralized system.

  • Low-Level Programming: Dive deep into the intricacies of low-level programming with Go.

  • Network Protocols: Learn about various network protocols and how to implement them in a real-world application.

  • Peer-to-Peer Communication: Build a peer-to-peer library to facilitate communication between nodes in your network.

  • File Storage and Streaming: Develop a system capable of handling large files, ensuring efficient storage and streaming capabilities.

  • Version Control and Caching: Implement versioning and caching mechanisms to optimize performance and reliability.

Anthony starts with the basics, guiding you through creating a main Go file and setting up your project environment. As you progress, you'll build and test your TCP library, develop interfaces for peer communication, and create a comprehensive storage system with hashing and encryption functionalities.

The course is designed to be hands-on, with plenty of coding exercises and practical examples. By the end of the course, you'll have a fully functional decentralized file storage system and a solid understanding of the underlying technologies.

Watch the full course on the freeCodeCamp.org YouTube channel (10-hour watch).