Anyone who wishes to do so can contribute a node to the EdgeNet project – it just takes five minutes – and thereby support the not-for-profit research that is conducted on the platform.
Nodes can be contributed for any duration. For example, it is possible to start a powerful node for the needs of an experiment and to stop it afterwards.
Run the following command, which will fetch and execute a shell script, and follow the on-screen instructions of the Ansible playbook that the script downloads:
bash -ci "$(wget -O - https://raw.githubusercontent.com/EdgeNet-project/node/main/bootstrap.sh)"
If it is not already present on your system, you will need to install the wget web file retrieval utility in order for the command to work. Or you can download the shell script by clicking on this link.
The node must have a public IP address and, if it is behind a firewall, you will need to configure it to allow incoming connections from at least the following protocols and ports:
If you encounter a problem during setup, please email the script output and the public IP address of the machine to email@example.com.
A node can be a VM on a machine that you control, or you can dedicate a physical machine to EdgeNet. EdgeNet can be installed on a CentOS 8+, Fedora 32+, or Ubuntu 18.04+ operating system. The machine should have at least 2 CPU cores, and 1 GiB of memory. EdgeNet does not run inside containers, such as Docker or OpenVZ containers.
You can easily run multiple EdgeNet instances in the cloud. You can choose the instance type you want, although we recommend instances with at least 2 vCPUs and 1 GiB of memory.
Simply create an instance of your liking using the cloud service provider’s web interface, connect to it via SSH, and follow the basic instructions described above. The default settings of the providers are usually correct for EdgeNet, but you need to ensure that the protocols and ports described above are allowed for incoming connections.
|Provider||Minimal instance recommended||Cost per month|
|Amazon EC2|| ||~15$|
|Google Cloud|| ||~48$|
|Microsoft Azure|| ||~30$|
On Google Cloud, the EdgeNet public SSH key must be added manually at the bottom of the instance creation page:
The SSH key in Google Cloud format is:
edgenet:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKjtRjXehOq2CkwI3dsDeec5mC8KxykSoSeywES4nrw9 edgenet
These instructions are for advanced users who wish to automate the deployment of EdgeNet instances.
First, install the AWS CLI and, if not already done, connect your AWS account:
To keep things simple here, we allow all incoming connections towards the instance. You can restrict incoming connections as you like, as long as you keep the protocols and ports listed above open.
aws ec2 create-security-group --region us-east-1 --group-name edgenet --description "EdgeNet" aws ec2 authorize-security-group-ingress --region us-east-1 --group-name edgenet --cidr 0.0.0.0/0 --protocol all
To create the instance, run the following:
wget https://raw.githubusercontent.com/EdgeNet-project/node/main/bootstrap.sh aws ec2 run-instances \ --region us-east-1 \ --image-id ami-033558be0aac13adc \ --instance-type t3.small \ --security-groups edgenet \ --user-data file://bootstrap.sh
Note that the Ubuntu
image-id is different for each region, to find the ID for a given region, use the Amazon EC2 AMI Locator.
To delete the firewall rules and the instance, run the following, replacing the
aws ec2 terminate-instances --region us-east-1 --instance-ids i-xxxx # Wait for instance termination... aws ec2 delete-security-group --region us-east-1 --group-name edgenet
If you encounter a problem, delete the instance and try again. If the problem persists you can SSH into the instance using EC2 Instance Connect and send the logs of the startup script to firstname.lastname@example.org:
First, install the Google Cloud SDK, and, if not already done, connect your Google account:
To keep things simple here, we allow all incoming connections towards the instances with the
edgenet tag. You can restrict incoming connections as you like, as long as you keep the protocols and ports listed above open.
gcloud compute firewall-rules create edgenet-ingress \ --allow tcp,udp,icmp,ipip \ --target-tags=edgenet
gcloud compute instances create edgenet-1 \ --image-family=ubuntu-2004-lts \ --image-project=ubuntu-os-cloud \ --machine-type=e2-standard-2 \ --metadata startup-script-url='https://raw.githubusercontent.com/EdgeNet-project/node/main/bootstrap.sh',ssh-keys='edgenet:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKjtRjXehOq2CkwI3dsDeec5mC8KxykSoSeywES4nrw9 edgenet' \ --no-scopes \ --no-service-account \ --tags=edgenet \ --zone=us-central1-a
To delete the firewall rules and the instance, run the following:
gcloud compute firewall-rules delete edgenet-ingress gcloud compute instances delete edgenet-1 --zone=us-central1-a
If you encounter a problem, delete the instance and try again. If the problem persists you can SSH into the instance and send the logs of the startup script to email@example.com:
gcloud compute ssh edgenet-1 --zone=us-central1-a sudo journalctl -u google-startup-scripts.service
First, install the Azure CLI and if not already done, connect your Microsoft account:
See the EdgeNet-Project/node repository for more information.