Code Monkey home page Code Monkey logo

pyrsia-integration-tests's Introduction

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.

pyrsia-integration-tests's People

Contributors

betarelease avatar dgarus avatar efrisch avatar fishseabowl avatar ihcomega56 avatar jperedadnr avatar karolh2000 avatar sbtaylor15 avatar tiainen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyrsia-integration-tests's Issues

Repo and branch are hardcoded; allow a user to specify them

Currently the banch and repo location are hardcoded in pyrsia-integration-tests/bats/tests/common-setup.bash. Instead of

  local git_repo="https://github.com/pyrsia/pyrsia.git"
  local git_branch="main"

Let's allow environment variables to be set externally.

  if [ -z "$GIT_REPO" ]; then
    local git_repo="https://github.com/pyrsia/pyrsia.git"
  else
    local git_repo="$GIT_REPO"
  fi
  if [ -z "$GIT_BRANCH" ]; then
    local git_branch="main"
  else
    local git_branch="$GIT_BRANCH"
  fi

Protobuf compiler required after libp2p upgrade

When the version of the libp2p crate is updated to 0.50.0, building the pyrsia node will require the protobuf compiler to be installed. This is handled in PR pyrsia/pyrsia#1348. Since the integration tests also build the node, we'll need to install protoc in the docker container where the tests are run.

Run 'docker pull' in test scenarios to make sure Docker images come from Pyrsia node

# check if the built image can be pulled from the Pyrsia node

Currently a test for docker pull does not run this command directly, but just check if a Pyrsia node has a specific image using Docker registry API because a way to check where Docker images are pulled from is not found.

We should find the solution for it and execute an actual docker pull command to make sure they are downloaded from a Pyrsia node instead of docker.io.

Still reports`The REPO_DIR variable is not specified` but I have set the `REPO_DIR variable`

When I run "./bats/run_tests.sh", it reports "The REPO_DIR variable is not specified", but I have set "REPO_DIR variable" as suggested.

The details are as follows:

% GIT_REPO=https://github.com/fishseabowl/pyrsia/tree/bc_1523_authnode
% GIT_BRANCH=bc_1523_authnode
% TEST_LOG_LEVEL=debug
% REPO_DIR=/Users/xuefeihan/project/rust/pyrsia-integration-tests
% ./bats/run_tests.sh                                            
CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT   MEM %     NET I/O   BLOCK I/O   PIDS
The REPO_DIR variable is not specified, Please provide the integration tests repository path (e.g. '/Users/xuefeihan/pyrsia-integration-tests').
% echo $REPO_DIR
/Users/xuefeihan/project/rust/pyrsia-integration-tests

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.