Hey, hey, hey! A lot is happening today! The release that we’re hereby launching, the brand new Brass Golem Beta 0.22.0 brings along many goodies that we have been preparing on the back burners for a long time.

These are: the Concent Service launched into mainnet, the upgrade of the gWASM to the new usage-based marketplace model and finally, the testnet release of the Task API. In addition to this, there is a whole slew of other updates that improve and/or make Golem better, easier to use and more stable.

So, here’s what we’ve got:

Concent Service

Although the Concent Service had been available for testing for some time now, today is the day that we’re making it available to all our mainnet users!

Thanks to Concent, when both the requestor and provider opt in, the provider can be sure that they will receive payment for correctly computed tasks.

To that end, Concent facilitates the transport of results from provider to requestor and assists the provider with the reception of the results acceptance when the regular p2p communication between the nodes fails. It can also be asked for arbitraging in case the requestor rejects a earnestly-computed result. Finally, when the payment for a result that has been positively accepted has not been made by the requestor,  Concent will issue the payment for such a job from the requestor’s deposit.

To start using the Concent Service on the provider’s end you only need to enable it in the settings and accept the related terms of service. Using the service from the requestor's end requires ensuring you have additional GNT that will be transferred to the deposit before you can start requesting Concent-enabled tasks.

You can find a comprehensive guide on how to use the Concent Service with Brass Golem in our documentation.

Usage marketplace

Up until now, when scheduling tasks in Golem, the requestors had to ensure the subtask timeouts were set to values sufficient to execute the most time-consuming subtask within a given task and at the same time, they were expected to pay for the whole specified timeout - no matter how long the actual execution took and how much CPU usage it actually resulted in.

To address that shortcoming and to make the payments fairer for both providers and requestors, we’re introducing the usage-based marketplace. For the time being, it will only be enabled for gWASM tasks because only within this use-case, we can guarantee that the execution is deterministic enough for the usage metrics, the built-in reputation tracking, and usage verification by redundancy to work as intended.

For a more detailed look at the gWASM usage marketplace model, please refer to our original research blogpost: “Pay-as-you-use in Golem” .

Of course, if you still haven’t had a chance to get acquainted with what gWASM is and/or are interested in developing and running arbitrary computations on Golem, please have a look at our gWASM docs and the tutorial for using gWASM with Golem.

Speaking of gWASM, as mentioned alongside our previous Golem release, there’s now a tool called gwasm-runner that you can use to easily write and run your own Rust apps on mainnet Golem. We’re currently preparing the C++ version of it which we hope, we’ll be able to showcase in the near future.

Task API on testnet

Another major milestone on our way to the “Clay Golem” as described in our whitepaper, the Task API is the new way to run arbitrary tasks in a slightly more elaborate but at the same time a lot more versatile way than what gWASM currently allows.

The current version is still an early alpha release of the MVP version of this new API and, as such, only released to testnet in Brass Golem Beta 0.22 but it’s already usable and can already be utilized by curious developers that would like to write their own dockerized apps that will be able to run on Golem.

The caveat in this release is that, in order for providers to execute your content, you need to publish your app and have each interested provider whitelist your repository.

There’s one app available for the Task API out of the box, which is, surprise, surprise!!! the Blender renderer app which you can have a look at and use to test the Task API on Golem network without getting too technical. Plus, there is a tutorial app that you can use as a reference for building your own Task API app for Golem.

To have a look at how this is done with Golem Brass 0.22, please refer to:

https://taskapi.docs.golem.network/#task-api

https://taskapi.docs.golem.network/#running-a-task-on-task-api

https://taskapi.docs.golem.network/#building-the-tutorial-app

Other updates

Among other important updates, you’ll find the Brass’ Blender app upgraded to utilize Blender 2.80 under the hood. This means that you can use it to render the scenes coming from the latest production version of the beloved rendering software.

Also, our gWASM app now supports simultaneous execution of multiple single-core tasks on a single provider node, up to the number of available CPU cores. This update should make a significant impact on the computing power available for gWASM requestors on the Golem network.

As for the more user-facing changes, we have added an option for requestors to shutdown their nodes gracefully. Specifically, it means that an attempt to close Golem while a task is in progress, will result in an appropriate prompt allowing you to proceed with the shutdown as soon as your previously-scheduled task finishes.

We also added a blacklisting and whitelisting option allowing you to more easily select the nodes that you want or do not want to work with.

Last but not the least, there are many fixes to the existing Golem code to improve experience with Golem for all of you.

For those of you interested in even more details, please consult the full changelog.

As always, we wholeheartedly encourage you to download the update and share any and all feedback - pertaining to both Golem itself and to any of our newly-introduced pieces of functionality - with us on chat, reddit and over email.

Here’s what to do if you want to upgrade:

Upgrading to Brass Golem Beta 0.22.0

Windows

Download and execute the installer from our release server..

Please be aware that since version 0.19+, Brass Golem uses Docker for Windows. Docker for Windows comes with a new type of virtualization support: Hyper-V (Windows Server Virtualization) in place of the old Docker Toolbox.

If you are using any other virtualization software (for eg. Docker Toolbox, VMware), do not install Hyper-V as this could potentially impact performance.

Also, if you are a Windows 10 Home user you will not be able to install Hyper-V as it's not supported on this version of Windows. Fortunately, we have kept Docker Toolbox support in this case. The only downside is that you will have to install Docker Toolbox manually (available here) because it's no longer part of our installation package. You’ll find more detailed Golem+Docker Toolbox installation instructions in our docs.

If you encounter any problems with Hyper-V you can still uninstall it, and try to run Golem with Docker Toolbox.

If any errors occur during any process, please let us know in the testers channel at chat.golem.network or write an email to contact@golem.network (make sure to include “Error” in the subject field so we can catch it quickly).

Please have a look at our Windows 10 installation tutorial on YouTube: https://youtu.be/TAozKguVoCc

Ubuntu

Download the Linux installation script. In terminal, run:

chmod +x install.sh && ./install.sh

macOS

To upgrade Golem, type commands below to update Golem:

brew update
brew upgrade golem
brew cask upgrade golem
brew unlink golem
brew unlink hyperg
brew link golem
brew link hyperg

With those simple steps in place, you should be running the latest release of Golem for macOS.

Please have a look at our Mac OS installation tutorial on YouTube: https://youtu.be/TAozKguVoCc

Important! Before you run Golem make sure to be running Docker for Mac:

Cmd + space bar, type Docker and hit enter.

Confirm that Docker is running properly. If you encounter any issues with Docker for Mac please follow instructions on Docker for Mac github.