Golem Network Review & Tutorial
By: Stefan Perlebach
Tags: Golem, Review, Blockchain, Gnt, Golem Project

In our new series “Dapps2Go” we are testing Dapps which are already usable. Enjoy!

What in Satoshis name is Golem ?

The Golem Project is a distributed supercomputer. Instead of relying on a centralised server farm, Golem distributes the computational load to a crowd of so called “Providers” . Meaning you and me can rent out their spare computing power in exchange for GNT Tokens. If you think about it, there is probably a lot of time where your computer is just idle, and since you already paid for it that is untapped potential. So Golem is doing to computing time what AirBnB did to flats. In fact Golem is already running on my laptop while I am writing this article — why shouldn’t it?

Is Golem like Bitcoin mining ?

The short answer is No. Mining or a “proof of work” algorithm is solving a cryptographic riddle to “print” new bitcoins, but most of the computing power goes to waste. Also mining becomes less lucrative the more bitcoins are created. The big difference is, that with Golem our computer helps producing actually useful things.

Usecases

From Star Wars to Pixar movies to video games, most media today relies on CGI (Computer Generated Imagery) in one form or another. To turn a raw scene with wireframes into a final product with textures and lighting, you need tons of computing power far exceeding the capability of usual desktop workstations or laptops.

Golem splits these render tasks into multiple subtasks and distributes these tasks onto the network. So with Golem, potentially you can help to create the next big Star Wars movie or your favourite video game by providing your computing power to render scenes. Golem plans to gradually expand to other use cases like DNA sequencing and machine learning, so there is a lot of untapped potential for the future.

Why should 3D artists care about Golem ?

The options for rendering these days are either:

Relying on your local machine, which is limited to very simple rendering jobs. Paying a so called Render Farm for more complex jobs — usually animated sequences with many frames, which is quite expensive. Distributing the computational load onto machines in your local network, which requires you to own multiple machines.

Golem promises to:

be much faster than rendering on your local machine.

be much cheaper than centralized render farm solutions.

democratize the rendering process: as a Provider you can share your resources when you don’t need them and earn tokens. As a Requester you can render your projects faster and cheaper when you need it.

Tutorial

Follow the instructions depending on your operating system of choice

2. Forward your ports

If it shows Success on all three ports, you are good to go

In case of failure these are your options:

Configure your router:

If you have access to your router configuration and want to use Golem on a “fixed” computer (e.g at home), this is your best option.

Opening the ports is different from router to router. Here is a handy guide that you can follow to open your ports.

Use a VPN Service:

If you are mobile like me, therefore using different networks every day, your best option is to use a VPN service with port forwarding.

I personally use TorGuard which is easy to setup and costs $9/m, but there are other VPN services with port forwarding as well. Here is a list.

Setup

Start the Golem mainnet application and follow the setup instructions. A green status light indicates everything is working properly:

Troubleshooting

Golem has a quite good support and a strong and active community eager to improve their product and support each other.

If you run into problems:

Usage as Provider

As a Provider of computing power, you need two things:

1. A connected Golem node (see the Setup & Installation tutorial)

2. A small amount of ETH for withdrawals

Once you are done with this, decide how much resources you want to allocate to Golem:

I personally have two computers:

A gaming machine at home (Windows)

I allocated 100% of resources, because if I am not home I simply don’t need it. If I want to play a game I just turn Golem off during that time. Also note that I set up port forwarding at home on my router.

A Macbook Pro for work

Even though this is the machine im mostly using during the day, i rarely need it’s full hardware capacity, so i set up resource allocation to 50%. I’m still able to use it normally even if Golem is computing something. Since this machine is mobile on different Networks i have no control over, is set up VPN so Golem works independent from my local network.

My Earnings

During the last week, I computed 20 tasks on my two machines which brought me 4 GNT (~$1). From my research in the Golem subreddit, it seems that the earnings vary greatly from user to user depending on:

Hardware: have a look at Settings (Top right) > Performance. Here you can calculate a benchmark score for your machine:

This is the one for my 13” 2017 Macbook Pro with 8GB of ram and a dual core processor. Requesters can choose how powerful the nodes doing the work shall be, so the more powerful your hardware is the more higher paying requests you will get.

Price point: You can set the minimum amount you want to earn per hour of computing power you share, so obviously the best performing node with the lowest price available will get the most requests.

Requestor demand: Since Golem is in its very early stages, there is not that much requestor demand at the moment, so don’t expect your computer to be busy with requests all the time.

Node trust: With every successful request you are building trust as a node on the network. So even though my nodes are not very busy at the moment, I see it as an investment to build trust for myself to profit later when the computing demand rises

Usage as a Requestor (3D Artist)

You need three things:

1 A connected Golem node (see the Setup & Installation tutorial)

2. A Blender (.blend) file you want to render (You can find some examples for testing here.

3. Some GNT tokens (depending on the complexity of your scene) and a small amount of ETH (0.005 should be a good start) to pay for computing power on the network

Once you have everything in place, you simply open the tasks tab and drop your .blend file.

I rendered a test file (https://golem.timjones.id.au/golem-header.zip) using the default 9400 x 5400 resolution. I set the timeout to 10 minutes and the bid to 0,1 GNT/h. I got my result back in 2 minutes and payed 0,02 GTN ($0,0052) for the result.

Since Golem is a dynamic marketplace and you can bid on how much you are willing to pay, there is no fixed pricing structure

There is also a great article by community member Kenny Ascheri about this:

https://kascheri12.github.io/pages/mainnet-testing-20180425.html#cost-analysis

Technology

Technical challenges

The Golem team stated in their latest AMA (Ask Me Anything) thread on Reddit, that their biggest current technical limitations are related to these issues:

is the input/output data confidential?

how big is the input/output data?

quick result verification

can computations be done parallel?

Golem is developing on top of Ethereum for two years. In regards to the question if the Ethereum mainnet is the right blockchain for the Golem network the team stated:

“We have evaluated alternatives, and because we are hosting our Transaction Framework and future API, among other things, on Ethereum, and Ethereum provides all the technical features + flexibility that adjust perfectly to what we need; there is no real need to switch.”

The Golem team presents insights on their decision making process in a very transparent way, stating that in the whole ecosystem there is a shortage of devs which forces them to prioritize between delivering better and more advance software and features, or to put the team through the big task that would be switching blockchains — and researching a new alternative.

At this stage Golem made its decision to rely on Ethereum and leaving it to them to tackle the issues on payments fees, scaling etc. in the future.

Stats

At the moment, there are much more Providers than Requesters using Golem. On 20th of June, Golem had an average of around 567 running nodes, combining the computing power of 3000 CPU cores. On the same date, 9430 subtasks were requested and 24.630 completed. You can find a more detailed analysis + explanation here:

Golem also provides their own stats. However, it is a bit tricky to understand all presented data.

Outlook/Conclusion

Having launched their Beta on April 10th, Golem is over two months out there connected to the Ethereum mainnet — ready for real user experience and transfer of real value.

Being that young, Golem’s early stage of development became very obvious while testing it.

For people outside the Cryptospace and those without technical knowledge (e.g. in network setup), using Golem will require lots of research and patience. During my user journey, the configuration of the ports was the biggest bottleneck. For one of the computers it took ages to get started but luckily for the second one it just worked instantly. Since I have knowledge in transferring cryptocurrencies and therefore having my Ethereum-wallet with some ETH in place, this part of the user journey was easy. However, for 3D Artists who just want to their files rendered quickly and cheap — as Golem promises — the whole setup process is likely to make the experience highly inconvenient. The limitations of the Ethereum network provide additional inconvenience, making micro payments yet unviable and therefore leaving the user waiting up to 30 days (worst case scenario) in order to get paid for the provided computation power.

Beside all these challenges on the way to make Golem accessible and attractive to the masses, I see a bright future for this project.

First of all, in fact Golem is one of the few Dapps out there in the blockchain universe, which are already usable and able to deliver a real value.

Secondly, once the setup is done and obstacles mentioned above passed, the Golem-client and its interface is pretty intuitive and user friendly. And most importantly — the process of rendering a file actually works. If you are facing any problems during the whole process, a sound community on Reddit and the Golem chat are eager to help out. It is refreshing to see, that Golems community has a strong focus on the product and is committed on its improvement rather than talking Lambo, FOMO, HODL, CHILL…

Golem’s transparency giving regular AMA sessions and showing their progress on Trello encouraged me to be patient and deal with the shortcomings all Betas are facing. Being part of this early adopter community and experience upcoming improvements first hand seems exciting and worth waiting, especially when looking at Golems future. The potential is enormous, looking at the use cases about to come. Machine learning related tasks, data science, hyperparameter space search for neural networks, chemistry related scientific computation, satellite images and financial data are among others on Golems` agenda. All of them will require tremendous amounts of computation power a decentralized network like Golem potentially could provide. For more fun ideas you should have a look here:

What do you think, is Golem Network actually useful for 3D Artists ?

🚀 Interested in Tokenized Securities? Check out our newest project: STOCheck.com