Data Structures | Lesson 1 of 5

Data structures

Welcome to ProtoSchool!

Before diving into code challenges, let's take a minute to look at a few of the concepts that underly the decentralized web. Unlike our other tutorials, this one is code-free and designed especially to introduce you to some of the key terms you'll encounter throughout ProtoSchool.

Let's get started!

What are data structures?

Whether you're a programmer or not, you're surrounded by data structures every day. Lists, dictionaries, and catalogs all help us organize information and take into account the relationships between various pieces of data.

From Wikipedia:

In computer science, a data structure is a data organization, management and storage format that enables efficient access and modification. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data.

In programming, data structures are everywhere. The way you organize data into variables in order to use them in programs involves anywhere from dozens to millions of data structures. If you're a developer, you're probably familiar with common data structures like arrays, objects, graphs, etc.

Decentralized data structures

On the decentralized web, where we access data directly from our peers rather than from a central authority, we need specialized data structures that allow us to verify and link between various pieces of content.

Data structures shared through decentralized systems need to be verifiable. On a single system such as your own laptop, you have a much greater degree of trust in the data structures you work with in memory or on disk. But in a decentralized system you have less, or possibly zero, trust among peers.

Large data structures must also be able to be spread out among many peers and linked together to allow for decentralization. In the same way that any web page can link to another web page in a different location, decentralized data structures enable a web of interlinked data.