Skip to content

Releases: Akilan1999/p2p-rendering-computation

No more gambling with cloud providers

27 Feb 18:31
Compare
Choose a tag to compare

Description

This is a P2PRC release after around a year. We would like to welcome @xecarlox94 as a main member to the P2PRC team!
@xecarlox94 has done a major contribution to the project which includes supporting Nix Flakes to easily to build P2PRC from source in
most Unix based machines which support Nix (alias p2prc='env P2PRC=<path you want the configs to exist in> nix run github:akilan1999/p2p-rendering-computation -- and then just run p2prc -h. If this works you are fully setup!).

Another exiting bit contributed from @xecarlox94 is the Haskell bindings which allows the possibilities to orchestrate workloads (A custom process to deploy a server as an example) on P2PRC nodes (Which can be machines behind NAT for instance) in a functional manner (Something no one should touch in Go. If you do here are the nearest therapy centres).

Other mainline features include the possibility for a P2PRC processes to be linked to a domain name while switching nodes behind NAT without having to change the A name entry on your DNS provider. We have also designed a p2p based system to share public keys with
all the nodes in the network. This will allow public-private key authentication by default for users to SSH or deploy processes into P2PRC nodes.

The P2PRC documentation has been as well fully ported over to ORG mode allowing us to use a single text file to generate the docs webpage.

The scam we are protecting people from:

image

What's Changed

New Contributors

Future work:

  • To support heterogeneous set of Nodes that cannot run P2PRC: This stems from a personal issue I have when doing research on CheriBSD kernel. For my research I am using the ARM morello which is a 128bit ARMv8 processor. At the moment Go programs can cannot compile and run inside the CPU. This means I cannot run P2PRC at the moment inside the ARM morello to remotely access it when it's behind NAT using P2PRC. This would indeed be a common problem when running against various Architectures that do not support running P2PRC. We intend to use the implementations similar to socat to ensure we can bind addresses of local nodes to a node running P2PRC and the node running P2PRC can do a local map port function call to escape NAT.

  • Formalising a P2PRC process: To design a data structure that can represent current set of properties:
    Example:

Full Changelog: v2.0.0...v3.0.0

Server says "I want to be with you"

08 Jun 03:10
Compare
Choose a tag to compare

image

Description

This release focuses on easier deployment for self hosting nodes. We should roll back in time with a modern twist.

Changes

v2.0.0-beta

07 Jun 23:22
5ac0334
Compare
Choose a tag to compare
v2.0.0-beta Pre-release
Pre-release

Changes

MWAAHAAAHAAA

26 Nov 19:32
Compare
Choose a tag to compare

MWAAHAAAHAAA

image

Changes

Stable release v1.0.0

22 Jul 16:06
68228a6
Compare
Choose a tag to compare

First official release for P2PRC

Major features

  • Connect to other machines using IPV6 or Public IPV4 address
  • Possibility to create and remove containers on any server using CLI commands
  • Docker API implemented
  • Able to decide which container to use based on Server specs and Latency
  • IP table implemented to store basic information about the server
  • Possibility to traverse network based on Servers IP tables

First Beta release

12 Jul 14:04
68228a6
Compare
Choose a tag to compare
First Beta release Pre-release
Pre-release

Beta Release P2PRC

Major changes from alpha-v1.0.0

  • IPV6 address will have to be manually added to the config file
  • Bugs fixed regarding flag --as
  • ip_table.json will be generated in a separate folder and used there as it's in the .gitignore
  • Error fixed regarding traversing the network

FIrst alpha release

25 Jun 19:52
d7780a9
Compare
Choose a tag to compare
FIrst alpha release Pre-release
Pre-release

Alpha release p2prc

This is the first alpha release of the p2prc project. Currently tested in Linux distributions and MacOS.

How to set it up

  1. unzip the tarball file
tar -xvf p2prc-alpha-v1.0.0.tar.gz
  1. Enter into directory
cd  p2prc-alpha-v1.0.0
  1. Run installation command
sh install.sh 
  1. Do as per printed instruction
# Add the following paths to .bashrc or .zshrc based on the configuration you have set
export P2PRC=/<path>/p2prc-alpha-v1.0.0
export PATH=/<path>/p2prc-alpha-v1.0.0:${PATH}
  1. Check if Cli command works p2prc -h
NAME:
   p2p-rendering-computation - p2p cli application to create and access VMs in other servers

USAGE:
   p2prc [global options] command [command options] [arguments...]

VERSION:
   1.0.0

COMMANDS:
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --Server, -s                          Starts server (default: false) [$SERVER]
   --UpdateServerList, --us              Update List of Server available based on servers iptables (default: false) [$UPDATE_SERVER_LIST]
   --ListServers, --ls                   List servers which can render tasks (default: false) [$LIST_SERVERS]
   --AddServer value, --as value         Adds server IP address to iptables [$ADD_SERVER]
   --ViewImages value, --vi value        View images available on the server IP address [$VIEW_IMAGES]
   --CreateVM value, --touch value       Creates Docker container on the selected server [$CREATE_VM]
   --ContainerName value, --cn value     Specifying the container run on the server side [$CONTAINER_NAME]
   --RemoveVM value, --rm value          Stop and Remove Docker container [$REMOVE_VM]
   --ID value, --id value                Docker Container ID [$ID]
   --Ports value, -p value               Number of ports to open for the Docker Container [$NUM_PORTS]
   --GPU, --gpu                          Create Docker Containers to access GPU (default: false) [$USE_GPU]
   --Specification value, --specs value  Specs of the server node [$SPECS]
   --SetDefaultConfig, --dc              Sets a default configuration file (default: false) [$SET_DEFAULT_CONFIG]
   --NetworkInterfaces, --ni             Shows the network interface in your computer (default: false) [$NETWORK_INTERFACE]
   --help, -h                            show help (default: false)
   --version, -v                         print the version (default: false)
  1. Check if the paths are correct in the config file cat config.json
{
  "defaultdockerfile": "/<path>/p2prc-alpha-v1.0.0/server/docker/containers/docker-ubuntu-sshd/",
  "dockercontainers": "/<path>/p2prc-alpha-v1.0.0/server/docker/containers/",
  "iptable": "/<path>/p2prc-alpha-v1.0.0/p2p/ip_table.json",
  "networkinterface": "wlp0s20f3",
  "networkinterfaceipv6index": "2",
  "speedtestfile": "/<path>/p2prc-alpha-v1.0.0/p2p/50.bin"
}