/golem-node

Dockerized Golem Network Provider Node

Primary LanguageDockerfileMIT LicenseMIT

Golem Provider Node 🐳 Docker Image

Project won one of the four prizes allocated by the Golem Project on Gitcoin's Hack New Golem bounty!

Read more on the Golem's Blog article.

🔗 Links

ℹ️ Prerequisites (important)

As per the Provider Node Documentation > Prerequisites:

To run Golem Sneak Peek you'll need a physical machine as you may encounter issues when running it on a virtual machine.

Your Docker host must be a physical machine: you will need to give the container access to the /dev/kvm device.

Furthermore, Golem only supports the x86-64 architecture at the moment. The AArch64 (ARM64) architecture is not supported; see more details here.

▶️ Usage

You can clone this repository or use the provided docker-compose.yml as a base template for your own setup.

A Makefile is included for convenience but make is not required to run the node.

Use make or make help to list the available shortcuts.

1. Environment Set Up

Create a .env.local file in order to add your ERC20 address as an environment variable (replace the following placeholder with your own PUBLIC address):

echo "YA_ACCOUNT=0x18f199E8DAb38257ca84D4858FF6F73De1A697eA" >> .env.local

This is important because it will be the address where your earned GLM will be sent.

You can use for instance your Metamask or Ledger public address. This way, you can have your earned GLM tokens sent directly to your account, and you can manage them from there without Golem ever needing to access your wallet.

2. First Start

Use make setup to run the node for the first time.

The CLI will ask you a few questions: refer to the Provider Node Documentation > Initial Setup for more details.

The node settings will be kept on your host in a ./data-node repository.

3. Run the Node

Use make up to start the node in a detached mode.

Display the last logs at any time by running make logs.

Use make status to get your node address and health, and make settings to display your current node parameters.

Get shell access with make shell.

💨 Maintenance

The node caches every docker image it uses to run jobs in the following directory: ./data-node/ya-provider/exe-unit/cache/. Those images are never removed and can slowly take up a lot of space on your hard drive.

To prevent this a helper command has been introduced: make clean ; which removes every file older than 7 days in the cache directory.

If you are running the job scheduler for docker environments Ofelia on your host this task will be done automatically, every day at midnight, thanks to specific labels added on the node service.

Donation 🍺

If you find this template useful you may consider the option of offering me a beer through a donation. Support is very appreciated 🙂

ETH / ERC20 Token: 0x18f199E8DAb38257ca84D4858FF6F73De1A697eA