Becoming a provider

This tutorial shows how to run a Golem Provider node and play around with its functionalities.

Prerequisites

Platforms

For the provider end, we currently, officially support:

  • Ubuntu 18.04 LTS and 20.04 LTS

but you are welcome to try out and run it on other Linux distributions.

To run a Golem provider node we recommend a physical machine as you may encounter issues and limitations when running it on a virtual machine. Because we expect most apps to use vm-based payloads, we don't recommend running a provider on non-Linux platforms.

It is possible to use macOS and Windows as provider hosts, but only with WASI execution environment.

​

For this release we have enabled the providers to expect payments on the Ethereum mainnet by default. It means that by running a provider node and executing tasks, you'll be earning real GLM tokens - either as pure ERC-20 tokens or on zkSync.

Installation

Purge directories

BEFORE YOU PROCEED - if you have ever run your Golem on mainnet and you have earned GLM tokens or funded your Golem account with ETH/GLM - DO NOT purge your data directories before you have backed-up your Golem wallet and confirmed that you can safely recover it.

For instructions on how to do it, consult our guide on using Golem on Mainnet and specifically its backup/recovery section.

If you have previously launched Golem Alpha on your machine run the command below which will purge its working directories since our newest version is incompatible with the old database structure:

read -e -p "Backed up keys? (type "yes"): " YN && [[ $YN == "yes" ]] && rm -rf $HOME/.local/share/{yagna,ya-provider}

Run the installation command

Open your terminal and type:

curl -sSf https://join.golem.network/as-provider | bash -

You might be asked to modify your PATH afterwards for future terminal sessions:echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

Update your active shell(s) with: export PATH="$HOME/.local/bin:$PATH"

Initial setup

After installing all required components you will be asked to set up your node. If you leave them empty the default values presented in brackets will be applied.

Node name (default=generated_name): - Type in the name of your new node and press Enter

subnet (default=public-beta): - It is important that you use "public-beta"

Ethereum wallet address (default=internal wallet): - Paste your own Ethereum address to which you have private keys stored. If you leave this space empty an address will be created for you on your local system.

This is especially important now that the providers are by default using Ethereum mainnet - this way, you can have your earned GLM tokens sent directly e.g. to your MetaMask or Ledger account and you can manage them from there without Golem ever needing to touch your wallet - do that especially if you don't plan on becoming a Requestor.

price GLM per hour (default=0.1): - Type in the value of renting your computer power as a provider. You can use default price (0.1 GLM per hour) by leaving this field empty. This command shows up only when running GolemSP for the first time

Congrats, your initial setup has been completed! You will see that default preset was created based on your initial node setup. If you wish, you can change this settings later on with CLI.

Running the provider

Mainnet

To run the Golem provider on the mainnet, type the following in the terminal:

golemsp run

Testnet

To run the Golem provider on the testnet, type the following in the terminal:

golemsp run --payment-network rinkeby

Your provider node is up and running!

Checking node status

To check your node's status and see if it is actually computing tasks from the network, open a new terminal window and type:

golemsp status

As an output you will get the information about your node's current state as shown below:

$ golemsp status
┌──────────────────────────────────────────────────────┐
│ Status │
│ │
│ Service is running │
│ Version 0.6.2 │
│ Commit 6947e449 │
│ Date 2021-03-22 │
│ Build 127 │
│ │
│ Node Name friendly-winter │
│ Subnet public-beta │
│ VM valid │
├──────────────────────────────────────────────────────┤
│ Wallet │
│ 0x979db95461652299c34e15df09441b8dfc4edf7a │
│ │
│ network mainnet │
│ amount (total) 16.578402018187077818 GLM │
│ (on-chain) 3.727634841182177818 GLM │
│ (zk-sync) 12.8507671770049 GLM │
│ │
│ pending 0.001311061811122222 GLM (1) │
│ issued 0 GLM (0) │
├──────────────────────────────────────────────────────┤
│ Tasks │
│ │
│ last 1h processed 3 │
│ last 1h in progress 0 │
│ total processed 3 │
└──────────────────────────────────────────────────────┘

Under your address you can see both on-chain and zk-sync values listed.

Although zk-sync is from now on the main payment operator in Golem you may receive on-chain transactions as well. To confirm the correctness of the listed values head over to https://etherscan.io/ (on-chain) and https://zkscan.io/ (for zk-sync).

If in the Offers/Tasks column you see your active Offers count, and either tasks in progress or processed then you have successfully computed! If not, give it some time as there is still a limited number of tasks in the network - and then run the command again.

Provider CLI

To check out additional commands available in the CLI, have a look at the reference page:

Next steps