The ProtoSchool (opens new window) team is pleased to announce the launch of a shiny new multiple-choice tutorial on the Anatomy of a CID (opens new window), built by the fabulous José Bateira (opens new window)! It’s our first multiple-choice content and the first to explore Multiformats. 🎉
Content identifiers (CIDs) and cryptographic hashing make content addressing possible, allowing us to securely locate and identify data on the decentralized web. The string representations of CIDs used by IPFS look like random characters strung together, but there’s a lot more going on under the hood. In this new tutorial we explore all of the data revealed by these self-describing content-addressed identifiers, digging deep into multihash, multicodec, multibase, and version prefixes.
We also take a look at the evolution of the CID specification (opens new window), which originated in IPFS and now lives in the Multiformats Project (opens new window). The Multiformats Project is a collection of self-describing protocols that future-proof distributed information systems including IPFS, IPLD, libp2p, and Filecoin. Curious why some IPFS CIDs start with Qm...
and others start with b
? Wondering why we made the switch from CIDv0 to CIDv1, or whether those versions are interchangeable? We’ve got you covered!
# More ways to explore CIDs
# CID Inspector
Did you know you can paste any IPFS CID into the CID Inspector (opens new window) for a human-friendly breakdown of its multihash format and length, multicodec, multibase, and version? It can even convert CIDv0 to CIDv1! The awesome Oli Evans (opens new window) built this super-useful visualization tool that we explore in this new tutorial and which you can now access from our coding challenges.
# IPFS Camp Course: Understanding How IPFS Deals with Files
If you’d like to dig a little deeper into CIDs via video, we recommend checking out the IPFS Camp 2019 workshop that inspired this tutorial, Understanding How IPFS Deals with Files (opens new window). It offers a deep dive on key concepts like immutability, content addressing, hashing, the anatomy of CIDs, what the heck a Merkle DAG is, and how chunk size affects file imports. It also covers the joys and pitfalls of the Mutable File System (MFS), the layer of abstraction in IPFS that lets you work with immutable files and directories as if you were using a traditional name-based file system. Kudos to Alan Shaw (opens new window) for creating the portion of this course that inspired our new tutorial. 🏆
Watch the recording below or check out the slides (opens new window)!
Video: Understanding How IPFS Deals with Files (opens new window)
# ProtoSchool content for every learner
# Introducing multiple-choice tutorials
The new Anatomy of a CID (opens new window) tutorial is our first to include multiple-choice quizzes to keep you sharp on the concepts introduced in each lesson. 😉
Kudos to Teri Chadbourne (opens new window) and Diogo Silva (opens new window), who laid the groundwork for our multiple choice lessons.
# Finding the content that meets your needs
If you’ve explored ProtoSchool tutorials (opens new window) in the past, you may have noticed that most of them use JavaScript coding challenges to teach IPFS methods, allowing you to explore them right from your web browser without installing anything or touching the command line. We have code-based content introducing the Mutable File System (MFS) (opens new window), the Regular Files API (opens new window), and the DAG API (opens new window).
We also offer a text-based tutorial on Decentralized Data Structures (opens new window), which introduces important decentralized web concepts like content addressing, cryptographic hashing, content identifiers (CIDs), and sharing with peers. (This one makes a great precursor to our latest tutorial!)
We’re excited to create beginner-friendly content suitable for a variety of learners, regardless of their coding experience. To that end, we recently added spiffy new icons throughout the site to represent our coding challenges, multiple-choice quizzes, and text-only lessons, making it easy to identify lesson formats before you get started.
We also updated our tutorial listings (opens new window) with a handy toggle to help you hide coding challenges if you’d like to stick to text-based and multiple-choice content. 👏
A shoutout to Teri Chadbourne (opens new window) for taking the lead on these improvements, and to Agata Krych (opens new window) for the aforementioned spiffy new icons.
# Help us improve ProtoSchool
As you can tell from all the name-dropping, ProtoSchool is a team effort. We depend on folks in the IPFS community and beyond to outline new content, add new features, fix bugs, catch typos, and test-drive new tutorials like this one. There are many ways to contribute to the project (opens new window), no matter your background. In fact, our new multiple-choice format makes it super easy to create new tutorials (opens new window) without any coding experience.
Here’s to the many folks whose names we’ve failed to drop who are pitching in daily to making ProtoSchool more useful for our learners. ❤️
One of the easiest ways to help is by sharing your feedback as you explore our tutorials. You’ll find a link at the bottom of every lesson to help you submit your suggestions.
We can’t wait to hear what you think of the new tutorial (opens new window)!