Hello fans and friends of Golem! We know there are those of you for which every little sneak-peek of our progress matters. To that end, we're trying hard to keep a more or less steady pace between the subsequent reveal releases of the New Golem and here we are with another one for you!
Layer 2 has arrived!
The highlight of today's reveal is the introduction of Layer 2 payments through zkSync. Ever since the conception of Golem, we have been trying to solve and struggling with an important problem that we recognized as a major showstopper for Golem's (and to be frank, most Ethereum-based decentralized applications') wider adoption - high transaction fees in the Ethereum blockchain. Utilizing zkSync is a major step forward towards addressing this issue. For more information, have a look at our introduction to Layer 2 on zkSync in our handbook.
zkSync is now enabled as the default payment driver, and both our Python and JS high-level APIs are supporting its use. When you initialize the payments module as a requestor now, the daemon will contact our new zkSync faucet which, in turn, will transfer the GLM tokens to your address directly on zkSync, significantly reducing the time it takes for the requestor agent to be ready to send tasks to the network and pay for them.
Currently, Layer 2 support is limited to transfers. We'll be adding more functionality, like withdrawals and top-ups in the next release. While we're pretty sure the new payment solution will work for you, in case you have any trouble, we're also providing you with a fallback to our previously battle-tested, regular on-chain driver.
Unified provider and requestor network
Another major update is that, for the first time in the New Golem, we've felt confident enough to all of you - both the providers and requestors - alike to participate in a single network. This means that whatever content and apps our prospective app developers run on Golem, they'll be running it not only on our small network of test providers but also on the community-supplied nodes.
AMD CPU support for providers
A big change that comes with the new release on the provider's end is the support for AMD CPUs! The provider nodes can still only be run on Linux based machine and we provide official support only for Ubuntu (18.04 and 20.04). Still, it should work smoothly on other distributions of Linux as well.
External wallet support for providers
The second major change that we're making available to our providers in this release is the option to provide your own wallet address to receive payments for task to. This is a huge UX improvement, as you do not have to store your Golem wallet keys anymore!
Just paste your own ETH address during the installation process and all earned tokens will be paid by requestors to that address. This was one of the most often asked-for features by those of you who wanted to to set up multiple machines and collect their earnings under one wallet address.
Obviously, if you do not have your own wallet and wish to use Golem's internal one just leave the section for the address during installation empty, and an address will be created for you on your local system.
The month-long hackathon
As you might have been able to notice, we're feeling bold and proud. We've worked hard for this release to happen and New Golem has finally begun, most precisely, after launching Alpha II, to be the product we want to show the world.
In the previous Alpha iterations we featured sets of bounties, growing in complexity, and during the previous release we already saw the first apps built atop of Golem. This has been one of the most rewarding experiences from 2020, and we want people to continue building.
Instead of hosting already specced-out bounties, this time, the control is in your hands: the Golem hackathon has more than 30k USDC in prizes and almost 0 rules. We provide the base layer, you decide what to build, we reward.
The Golem Online Hackathon will run from December 8th 2020 to January 5th 2021. In the coming days, we will be publishing a repository as a one-stop-shop of resources specific to the hackathon for hackers (to be found here once it's live) such as a knowledge base, a process for finding a team and submission guidelines.
We really can't wait to see what you build with Golem!
Another important change is the inclusion of support for streaming of output from provider's execution units to requestor agents. It enables a wider range of apps that are possible to be efficiently run on Golem. We'll be happy to hear how you're able to utilize that feature.
On another front, our
yajsapi - our JS API has been brought up to speed with features to achieve parity with the earlier-released Python API.
Moreover, both of our APIs have received an overhaul of the naming in their class and method names to make them more consistent with our architectural documentation and more representative of the functionality they represent. While we're aware that this is a backward-incompatible change, we're sure that this will be beneficial to our users in the long run.
Last but not the least, the yagna daemon, the Python API and the JS API all contain a lot of stability improvements, fixes and UX additions to make the overall experience much better.
For more information, please refer to their respective changelogs:
We have mentioned the most important updates above and here's the full list of changes:
- AMD support
- Ability to define user's own address as incoming one
- Version of Golem in golemsp status
- Multi driver support (on chain and zk-sync payments visible in golemsp status)
- golemsp stop
Remember that for now we only support physical machines on provider's end, and you will find yourself having issues with VM based systems.
Okay, so how do I run it?
We have prepared a handy video introducing the new Alpha 3 to you:
If you haven't run the new Golem yet, please jump onto our quick primer for requestor app developers:
Other that that, you may want to refer to our extended introduction that explains Golem's mechanics in more detail and allows you to write your own apps on top of the new Golem:
Finally, for those of you hacking Python, we have the full reference to our high-level API available for you:
Should you run into any any requestor issues check out the common issues list:
On the other hand, those of you wishing to participate in our network of providers, who give our collective global computer its power, go with the following.
You may start with the video:
Or refer to more detailed textual instructions below:
For more advanced usage, please refer to our basic command-line reference:
And finally, should you run into any issues check out this list: