Golem's Dev Update - May 2019
A while ago, we came to the realization that forcing ourselves to release in timed increments instead of functional ones is neither good for the project and the team nor for the community in general. Instead, we have decided that we’d transition to slightly longer release cycles, updating Golem in the meantime with smaller patches only if and when needed.
It became clear recently though, that having those longer periods of radio silence causes anxiety among our most faithful fans which even the constant barrage of commits and merged pull requests in the various public Github repositories that constitute the Golem Project wasn’t able to overcome. Because of that, as an alternative to relying on community inferring about the project’s progress straight from our codebase, we have settled for more traditional developer updates in a language more suited for the general public.
So here we are. It’s a beautiful, blossoming, though somewhat rainy May afternoon here in Warsaw and at the same time a perfect day to publish our second patch release for Golem Beta 0.19 - 0.19.2. We’re releasing it as much for the sake of the product itself, as much as to test our improved release process in preparation for the major update looming on the horizon.
Regarding the update itself, it should address a couple of issues we found in the previous release, namely the Windows installation on some non-standard system setups, an issue where the task computation module could seemingly get stuck on a subtask and issues preventing nodes from communicating properly in some scenarios. On top of that, the Electron front-end received two little UX fixes. Finally, as a small bonus point, we’re now allowing Golem’s file transfer daemon (hyperg) to be more easily run on a port different than the default.
You’ll find the usual installation instructions for the 0.19.2 update at the bottom of the post.
Enough about the update though. As mentioned earlier we’d like to give you a sneak peek at what other goodies we’ve been working on through when we’ve been less active on the communications front. In this first edition of our Dev update, we chose to give you a heads up on two verticals the R&D team has been working on.
So here’s some of the juicier stuff that we’re developing but - I’ll repeat - which we are _not_ including in today’s Brass Golem patch update:
WASM
Web Assembly, or WASM for short, originally coming from the world of web browsers, is a relatively new, OS-independent platform that allows arbitrary applications to be compiled to a form that allows them to be executed with close-to-native performance in a cleanly sandboxed environment on a variety of hardware and software systems.
The WASM Golem platform has already been merged into our development version a while ago and our QA team has spent the good part of the last month testing it. If you want to see what’s possible so far, have a look at the examples:
Of course, if you’re a developer and interested in running your own application in WASM on top of Golem Network, you’re invited to have a look at our WASM documentation and to contribute to our WASM repository.
We’ll be releasing it to the testnet with the next major release and honestly can’t wait to see new, third-party apps be built for that environment.
RASPA a.k.a. GLambda
This is a sister use case coming from the same research team that brings you WASM above and also another that we have already merged into our development branch in preparation for the testnet launch in the upcoming major release.
Originally built to add support for distributed RASPA2 computations in Golem, in an attempt to make Golem useful for various kinds of scientific simulations, what it actually allows is to define a Golem task using arbitrary Python scripts.
The app is being run in a gVisor-secured Docker container and in the current form only contains Python packages needed to support the RASPA use case. Because of that, it’s not currently possible to use it unmodified to run Python code that requires any other external libraries or packages but it nevertheless serves as a proof of concept for any future Python-based Golem use cases.
Additionally, to make testing more accessible to interested scientists, we have implemented golemRPC - a client library that you can include in your Python program to easily connect to a remote Golem node without the need for local set up.
If you’re interested, you’re more than welcome to have a look at the examples and propose your own application that could be run in the Golem Network. We’ll also be happy to help you, should want to set up your own requestor node that the external Python clients could connect to.
What else?
Of course, there’s more activity going on in our diversified team and in the right time, we’d love to show it all to you. For now, we’ll leave the rest for future updates and as a reminder we’ll just mention that yesterday we gave a few more hints on activity within our project in our AMA, so head over there for more details, for instance, with regards to our API and others.
Back to Brass Golem Beta 0.19.2
And with that, we’re back to the release that we’re making available to you today. As always, please download the update and share any and all feedback with us on chat, reddit and over email. Here’s what to do if you want to upgrade:
Upgrading to Brass Golem Beta 0.19.2
Windows
Download and execute the installer from our release server.
If you’re upgrading from versions prior to 0.19.x, be aware that Brass Golem Beta 0.19+ 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. This virtualization change should provide a more stable environment for Golem nodes, but it does not come without difficulties.
Please be aware that if you are using any other virtualization software (for eg. Docker Toolbox, VMware), do not to 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. Fortunately, we have kept Docker Toolbox support in this case. The only downside is that you will have to install Docker Toolbox manually from now on (available here), as it's no longer part of the install 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
Ubuntu
Download the Linux installation script. In terminal, run:
chmod +x install.sh && ./install.sh
macOS
Upgrading from 0.18.x and 0.19.0 is very straightforward - just 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
Upgrading from 0.17.x and earlier
However, if you’re perchance upgrading from versions prior to 0.18.x, be aware that Brass Golem Beta 0.18+ uses Docker for Mac. Because of that, the first step while updating from versions earlier than 0.18.0 is to make sure that all previous Docker instances are removed from your machine. Open Terminal and type:
docker-machine rm golem
brew uninstall --ignore-dependencies docker docker-machine docker-machine-driver-xhyve
Afterwards, just update Golem normally, using the instructions for 0.18+ above.
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.