In a previous post, we announced our partnership with GEUT (Argentina) to build the peer-to-peer commons (p2pcommons) infrastructure, which powers applications like Hypergraph.

Today, we're announcing the first release of the permanent seeder software. Most practically, this will help make any content shared through the Hypergraph Vault easy and fast to access. The idea is that anybody can deploy a permanent seeder to help power the infrastructure.

The availability of content is always dependent on who's uploading (seeding) and downloading the content. In centralized systems like Facebook and Twitter, it's their servers that are always uploading the content for you to download.

The p2pcommons is a distributed information system and depends on the users to upload and download the files. The permanent seeder is an always-on user that downloads all content and makes it available for others to download 24/7.

Conceptual representation of the difference between a centralized and distributed system.

Imagine that you share some content onto the p2pcommons using Hypergraph and then you immediately shut down your computer. You would no longer be uploading the content if somebody comes along and wants to download it. As a result nobody could access what you just shared.

The permanent seeder is essential in making sure that what you share can be downloaded by others at any time. The more people that access your content, the less important the permanent seeder will be. But also irregularly accessed content deserves to stay available. And everything deserves to be available at reasonable speeds.

How it works

The permanent seeder is just another user on the peer-to-peer network, but because it's a user that downloads much more and needs to be on 24/7, it has to work a bit differently behind the scenes. In this section, we'll explain a bit more about the architecture and design of the permanent seeder.

First of all, the permanent seeder is a command line interface (CLI) that you can easily install from npm. To be more precise, you can install and launch it with just three commands

npm i -g @geut/permanent-seeder
permanent-seeder config:init
permanent-seeder start
Install, setup, and start the permanent seeder.

Internally, the CLI is made up of microservices: One in charge of seeding, internal databases, a metrics system, and an API gateway that powers the dashboard. In order to manage these microservices, we use Moleculer, a microservices framework for Node.js. You can launch the dashboard with this command

permanent-seeder dashboard
Launch the dashboard in your browser
Screenshot of the permanent seeder dashboard

With this microservice approach, you can deploy the permanent seeder on a small home computer like a Raspberry Pi or deploy it at scale on large server instances (e.g., DigitalOcean; find an example setup script here).

What next

The permanent seeder software is ready to be deployed onto personal computers and servers across the world. In fact, we already deployed two on servers and one on a Raspberry Pi!

As more and more content gets shared through the p2pcommons and Hypergraph, monitoring performance and further building out the microservices will help the network become more stable and allow for faster downloads.

We are looking for people and institutions who want to deploy the permanent seeder to help support the p2pcommons infrastructure. If you're interested in deploying a permanent seeder, we'd love to hear from you! At the moment, we pay between 5-10$ for one server instance a month, at most.

You've successfully subscribed to Liberate Science
Welcome back! You've successfully signed in.
Great! You've successfully signed up.
Success! Your account is fully activated, you now have access to all content.