Hello and welcome to our next major release announcement of the Beta III. This major release comes with a number of components, first and foremost is Yagna v0.8.0. In addition, we’ve updated and made significant improvements to the Yagna Python API, Yapapi, to support Virtual Private Networks (VPN) between the requestor and provider Virtual Machines and support for custom usage counters. There’s new content and expanded developer resources available in the Golem handbook, both in the form of examples and extra information to help developers get started to build on Golem.
As you might have noticed, we’re creating building blocks for more sophisticated applications to run on the network. With the Beta I, it was quite basic where we weren’t able to yet run services on the provider machines. That was changed with the Beta II and now we go the next logical step further with that for the Beta III where we can now use those services in a more flexible manner and providers are now able to communicate with one another.
For VPN, it's important to keep in mind that we are treating VPN as experimental in this release. The reason for that is that it's not yet optimized with the current NET. This will improve over time, becoming a more optimized and reliable feature as we replace the networking.
Now, for a demo!
Below we share demonstrations of running through the new examples as a requestor and showing off some of the new features!
In the video walkthrough that we’ve created, first, we install Yagna and run as a requestor, then we dive into the fun parts of the new functionality in this major release. Using our SSH VPN terminal example, we go on to illustrate Golem VPN capabilities by enabling SSH connections to a payload running on a VM on a Provider node.
Next we move to the second example, the HTTP proxy. What this section demonstrates is that we enable the local requestor agent to serve as a HTTP proxy for web servers running on the provider nodes. This means we run a HTTP server on our own machine, listening to connections on port 8080. We have two HTTP instances on the providers and we proxy the connection from our local HTTP server to the providers.
As part of this release we also prepared a more full-featured implementation of such an HTTP proxy in the form of a small add-on library that lets the developer deploy an HTTP application on Golem and communicate with it the same way one would communicate with any other HTTP server. This is called the Yagna HTTPX client which is now included in the VPN section of Awesome Golem.
Custom Usage Counters
Within the handbook, we created an example of custom usage counters where we illustrate how a developer of a Golem application can change the default parameters which are used to calculate the cost of an activity running on a provider node. By default, those parameters are the real-time duration of the activity and the CPU usage within. With the introduction of the ability to customize those parameters, the application can choose to calculate such cost based on just anything else - e.g. the number of requests made to an application or on the storage space used on the provider node.
For providers, we ask that you please update your nodes to be able to support tasks for the new applications created. Running the installation command (while Golem is not running) will make sure that you’re on the latest major release.
As security advice for both requestors and providers, you should be backing up your keys if you have mainnet tokens. You can back up your keys to your wallet with the export command (while Golem is running):
yagna id export --file-path=./key.json
We’re so happy to have shared this release with you, the work that has gone into it is a fantastic collaboration between lots of individuals in the Golem team. We hope that it can spark some interest in development. Don’t forget that we have the Application Creation and Maintenance category for the GLM Rewards Program, if you do happen to have some ideas on what to build with the latest Golem functionality then please join the Golem Discord and share your ideas with the community.