Skip to content

pyrsia/pyrsia

Repository files navigation

Welcome to Pyrsia

logo

Decentralized Package Network

Current Development Phase

📢 This project is in archival phase

We appreciate all the contributions to Pyrsia and enthusiasm from the community in the past couple years. Unfortunately, all of the core maintainers have moved on so we are no longer able to continue development. The public instance of Pyrsia is also no longer going to be kept running. If you are interested to carry forward the project feel free to fork this project and continue the effort.

Primary Focus

To get off the ground the focus is strictly on the peer-to-peer distribution of Docker images backed by a blockchain of identifiers.

Looking to Contribute

Take a moment to review our contributing guidelines. You can join our community on Slack or participate in a meeting to pick up an issue. We also have our Local Setup Guide to help.

Install Pyrsia and Join the Network

There are mutiple options to run Pyrsia:

Once you have a pyrsia_node binary, just run it like this:

pyrsia_node

Optionally setting an environment variable RUST_LOG=debug first if you want to see debug output.

Downloading Your First Artifact

Let's exercise the Docker integration.

Configure your Docker installation to use Pyrsia as a registry mirror.

On Windows or macOS, open your Docker Desktop -> Settings -> Docker Engine where Docker allows you to set registry-mirrors. Configure your node as a registry mirror by adding/editing the following in the configuration:

 "registry-mirrors": [
   "http://0.0.0.0:7888"
 ]

On Linux, you'll find this configuration in the file /etc/docker/daemon.json.

See this page for more information about configuring Docker.

Let's try to pull an artifact from the Pyrsia network, but first make sure it is not yet in your local Docker cache:

docker rmi alpine:3.16.2

Then pull the image:

docker pull alpine:3.16.2

Congratulations! The alpine Docker image was now retrieved from the Pyrsia network. You can verify this in the Pyrsia logs.

Connecting with other Nodes

The Pyrsia node will always join the Pyrsia network and connect with other peers. You can see this in the logs or use the CLI's "status" command:

$ ./pyrsia status
Connected Peers Count:   1

Integration Tests

  • Repository: Pyrsia integration tests git repository.
  • Test Results: Pyrsia integration tests (daily) results.

Cloud Deployment

Pyrsia nodes can be deployed on the cloud using pyrsia_node helmcharts. These nodes will act as the Authority nodes and participate as boot nodes on the network.