Becoming a provider
This tutorial shows how to run a Golem Provider node and play around with its functionalities.
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.
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 are earning real GLM tokens - either on Ethereum mainnet or on Polygon.
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:
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
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.
Your own Ethereum address could be, for example, any MetaMask or Ledger address that only you control so you can access your tokens from that address. If you choose to have a local wallet it's recommended to store a backup somewhere safe so you can retrieve the tokens. You are responsible for your address. If you lose access to the wallet, there will be no way to retrieve them without a backup.
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.
To run the Golem provider on the mainnet, type the following in the terminal:
To run the Golem provider on the testnet, type the following in the terminal:
golemsp run --payment-network testnet
Your provider node is up and running!
Please keep in mind that
golemsp runwill remember the parameters used the last time so after you finish your tests, you may want to change them back to the public network:
golemsp run --subnet public-beta --payment-network mainnet
To check your node's status and see if it is actually computing tasks from the network, open a new terminal window and type:
As an output you will get the information about your node's current state as shown below:
$ golemsp status
│ Status │ Wallet │ Tasks │
│ │ 0x2a14f8ae0272bd4c38ed1b40c66e88ed719dab69 │ │
│ Service is running │ │ last 1h processed 0 │
│ Version 0.12.0 │ network mainnet │ last 1h in progress 0 │
│ Commit 37060503 │ amount (total) 0 GLM │ total processed 509 │
│ Date 2022-12-02 │ (on-chain) 0 GLM │ (including failures) │
│ Build 251 │ (polygon) 0 GLM │ │
│ │ (zksync) 0 GLM │ │
│ Node Name zima │ │ │
│ Subnet public │ pending 0 GLM (0) │ │
│ VM valid │ issued 0 GLM (0) │ │
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.
To check out additional commands available in the CLI, have a look at the reference page: