We are excited today to be rolling out the content leaderboard for Skynet and MySky applications. The leaderboard is a decentralized scraping application which looks at the public data of users across Skynet and assembles their activity into a leaderboard which highlights the most popular content, the most popular users, and the most popular applications on Skynet.

When a user logs into the leaderboard, the leaderboard checks their UserID and scans their public activity logs to see what things they’ve published and which content they’ve interacted with. This activity then gets loaded into the leaderboard, and as the user performs new activities on Skynet, those new activities will also appear on the leaderboard.

Applications get added to the leaderboard automatically when they appear in a user’s public activity logs. Developers do not need to submit their applications, they will just appear naturally once people begin using the application.

Signing Up for the Leaderboard

To sign up for the leaderboard, you just need to make an account on MySky. Please note, as of this announcement MySky is transitioning from beta to production, and all prior seeds are being invalidated. You will need to make a new account, which will produce a 15 word seed, and then save that seed for future use.

After that, any public Skynet activity will appear on the leaderboard after a few minutes. Though you don’t need to set a username and build an avatar, you can do so with the Profile DAC.

As a reminder, MySky serves as a single global sign-in for all applications across Skynet. Once you’ve logged into MySky, you’ll automatically be signed into all of the other applications featured on the leaderboard.

The Technologies of the Leaderboard

The leaderboard combines several of the most cutting edge technologies in Skynet to produce something that we do not believe has ever been possible before.

The main technology of the leaderboard is the DAC. The leaderboard depends on data published by FeedDAC and ContentRecord to curate its data. When a user is using Skynet, each application can individually determine when a user action should be recorded in a publicly visible (discoverable) log. Common actions that get recorded are things like publishing a new photograph, publishing a chess game you played, or publishing a comment you made on someone else’s photograph. The leaderboard is able to assemble a list of usernames and look at their discoverable data and learn which applications have been getting the most use, and which pieces of content are getting the most publicity.

The leaderboard also uses the ProfileDAC to pull in avatars and profile pictures for each user. When a user creates a profile on Skynet, that profile is made available to all of their applications, meaning that new applications can give users a better experience with less overall work for the user. The real advantage of ProfileDAC over something like Gravatar however is the decentralization — the profile is owned by the user, is kept in the user’s data system, and is not dependent on any centralized or third party API that can be changed or shut down.

The final DAC used by the leaderboard is SocialDAC. Though SocialDAC is not yet complete, it serves as a decentralized graph of users on Skynet. Each user can use SocialDAC to follow, friend, and subscribe to other users, creating a scrape-able surface that allows anyone to discover the full list of users on Skynet.

SocialDAC in particular allows us to make the entire leaderboard decentralized. Anyone can spin up their own leaderboard by running the code at https://github.com/SkynetLabs/leaderboard-website. Once the SocialDAC is alive, every leaderboard will be able to arrive at roughly the same front page, even though the leaderboards are independent entities that do not communicate with each other in any way.

The Scrape and Index Pattern

The leaderboard is also introducing a new design pattern for decentralized applications: The Scrape and Index Pattern. Centralized web applications like Reddit and YouTube often depend on large centralized databases to efficiently build feeds for a user experience. In the centralized world, 20,000 users liking a post can be represented by a single number in a database. Getting that same information in the decentralized world requires checking the profiles of 20,000 users and is not something that can be done at load time.

Instead, applications can build decentralized indexers which scrape Skynet for user activity and then independently assemble the index which can be efficiently loaded by users in real time. This is exactly how the leaderboard works. It’s still decentralized because anyone can run the indexer and build their own version of the leaderboard, yet still end up with the exact same information.

One leap we would like to make in the future with this pattern is the introduction of STARKs, so that the index can be provided along with a proof that the index was assembled honestly.

Growing the Ecosystem

Perhaps the most valuable service offered by the leaderboard is discovery. Before the leaderboard, Skynet had no easy way for a new user to figure out what was popular on Skynet. We now have a continuous way to see which applications people are using, which content is getting the most engagement, and which users are producing most prolifically. This provides a nice launch point for exploring the ecosystem, and gives users a better opportunity to see everything that Skynet has to offer.

This article was originally published on the Sia Blog.