Awesome Golem 
Welcome to Awesome Golem, a community-curated list of resources, links, projects, tools and apps on Golem! Note: this guide and its contents is specific to Golem and it's current implementation, Yagna.
Table of Contents
Golem
- Golem.Network Website - The official Golem Network website.
- Golem Factory GitHub - Where you can find the open source code of all things Golem!
- Yagna GitHub - The implementation of Golem
- Golem Community Chat - Join the community and team open discussion on Discord.
- Reddit - Golem Network discussion on the Reddit platform.
- Twitter - The Golem Project Twitter.
- Blog - The official blog where you can find the most reliable information on announcements, summaries and updates.
🖥️ Apps
- Golem Slate - SLATE is a code pen SPA for writing a requester script to have work computed by the golem network. It utilizes dockerized yagna environments to communicate with the Golem Network in the background. Hosted here.
- Compatibility: Beta 1
- Golem Network Video Transcoder - This is sample app that uses golem.network to transcode videos. Please select your transcoding profile and then upload your videos.
- Compatibility: Alpha 2
- Golem Transcoding requestor - A React + Spring based webapp accepting video files as input and transcoding these files into different formats using Golem.
- Compatibility: Alpha 3
- Go le' Machin - Go le' M. is a web based bulk image editor that uses the golem network for computation. It allows users to upload multiple images and apply bulk actions to them.
- Compatibility: Alpha 3
Monitoring
- Golem Provider Terraform - A terraform script to automatically deploy a Golem Provider on a cloud provider and setup monitoring using prometheus.
- Compatibility: Beta 1
- Golem Provider dashboard - A ReactJS dashboard made to quickly gather status from your provider nodes without havingn to SSH into them.
- Compatibility: Beta 1
- Golem Provider dashboard backend / GolemBar - The flask backend that collects the data from the provider that's then used with the dashboard project above.
- Compatibility: Beta 1
Provisioning
- WSL - Allows Windows users to run Golem within Windows Subsystem for Linux. Removing the requirement of Windows users needing to use a Virtual Machine.
- Compatibility: Beta 1
- Golem Provider Terraform - A terraform script to automatically deploy a Golem Provider on a cloud provider and setup monitoring using prometheus.
- Compatibility: Beta 1
- Automatic Golem - A way to setup a Golem Provider with simple instructions and logs guiding you through the process.
- Compatibility: Beta 1
Docker
- Golem Provider Node - A Docker version of a node to help you get started running as a provider in a Docker container quick. Before you start please check that
ARG YA_CORE_VERSION,ARG YA_WASI_VERSIONandARG YA_VM_VERSIONin the Dockerfile are the correct versions.- Compatibility: Beta 1
- Golem Provider node - A fork of Alxexandre-abrioux project that allows to dynamically generate config files from ENV variables and specify how many replicas you'd like to spawn.
- Compatibility: Beta 1
- Golem Requestor Node - A dockerized requestor environment. You can just pass in the py script (example uses the blender demo) and it sets up the daemon and runs it.
- Compatibility: Alpha 3
Testing
- Golem Test Harness (Goth) - A tool with the purpose of speeding up your development process and making it more enjoyable for Golem app creators (intro+demo video).
- Compatibility: Beta 1
- Golem-afl - Golem-afl is an experimental test-fuzzing framework for Golem. This can help you find security holes in your software, such as a Stack Overflow.
- Compatibility: Beta 1
- Golem Cargo Test - Golem Cargo Test is an adaptive distributed test executor for rust projects running on the Golem network.
- Compatibility: Alpha 3
- Golem CI - Decentralized Task pipeline on top of the Golem Network.
- Compatibility: Alpha 3
Games
- Chess on Golem - A react frontend for the 2 AI's playing against each other through the Golem backend, that computes each others next move.
- Compatibility: Beta 1
- Golem Sudoku - Game of Sudoku with size variants, powered by Golem.
- Compatibility: Alpha 3
- HSOG-requester - HearthStone On Golem helps the HearthStone community in the design and building of decks by running a large number of simulated games on the Golem Network.
- Compatibility: Beta 1
Data Analysis
- Flan - A tool for entrepreneurs that provide customized analysis of millions of worldwide trade value records giving them a bold guideline about what sectors they would need to take more attention to. All computed on top of the Golem Network.
- Compatibility: Alpha 3
- Golem Lorenz-attractor - The Lorenz Equations are a system of three coupled, first-order, nonlinear differential equations which describe the trajectory of a particle through time.
- Compatibility: Alpha 2
- Golem Geomandel - Geomandel requestor is a python script for generating sequences of Mandelbrot images centered on a single point and with zoom increasing in each image (example).
- Compatibility: Alpha 2
- Golem COVID - This program get a parameter from data/owid-covid-data.csv file (like new_cases_per_million) and plot every day data on the world map. After all images generated (in outputs), it will gather them and create a gif (example).
- Compatibility: Alpha 2
- Golem Parallel Matplotlib - Various statistical analyses are performed on circadian rhythm measurements in human test subjects.
- Compatibility: Alpha 2
Data Simulation
- cadCAD Golem - This package is a wrapper for cadCAD to dispatch the simulation workload to multiple Golem nodes. Supports Jupyter Notebook.
- Compatibility: Alpha 3
- Golem Array - Antenna Array Design & Simulation - Powered By Golem.
- Compatibility: Alpha 3
- Limit visualization - Plot graphs on Golem with various limits.
Discontinous example.
- Compatibility: Alpha 2
- golemGraphWavePair - Use the Golem Network to generate graph frames, then combine them into an animation.
- Compatibility: Alpha 2
- Golemized strong-gravitational-lense - A simple distributed computing hack that tries to simulate some physical phenomena called gravitional lensing and is based on the work of Prof. Adam Bolton.
- Compatibility: Alpha 2
Data Optimization
- Golem or-tools - Uses the or-tools Constraint Programming library to solve problems on the golem network.
- Compatibility: Alpha 1
- No more COFUD - A tool that calculates how to fit the most people into a space while keeping 2 meters distance between each other.
- Compatibility: Alpha 3
Finance
- ZKSync .csv export - A tool that scrapes ZKSync to generate financial data in a .csv file.
Machine Learning
- DeML-Golem - A Proof Of Concept of Decentralised Machine Learning. It uses Federated Learning to combine the sub-step models it trains on different provider nodes into a full fleged model.
- Compatibility: Alpha 3
Deep Learning
- mlg - CNN predict services on top of Golem. This deep learning application distributes popular CNNs pre-trained with ImageNet datasets across Golem provider nodes.
- Compatibility: Beta 1
- Deepart Golem - Make art using distributed computing, running a tensorflow app and uploading your content and style picture and make the golem network process your image, doing beautiful art with style transfer and deeplearning. (POC)
- Compatibility: Alpha 3 (PoC)
RNG
- Gandom - A tool that tries to extract random streams from providers on the Golem Network. It supports two PRNGs, one based on Chaos machines and the other that makes use of Sodium.
- Compatibility: Alpha 3
Password Cracking
- Golem-JTR - Run John The Ripper on Golem Nodes to recover a password.
- Compatibility: Alpha 2
- Yacat - Hashcat password-recovery example, this tutorial is designed to inspire you to create your own Golem applications, we will explain all the needed details of Golem application implementation.
- Compatibility: Alpha 3
DeFi
- Golem Staking Pool incentivize system for GLM holders - Is a smart contract in order to provide the opportunity of yield farming for Golem's GLM token holders. (By staking uniswap-LP tokens that is a pair between GLM and ETH into the stake pool).
- Compatibility: Alpha 3
- Magic-doll - Sumer is a DeFi application that people may delegate their Splinterland card to earn passive income. It's core is Kyle, a Golem application that do all the computation to pick the best team to play for each match.
- Compatibility: Alpha 3
User Interfaces
- Golem UI - A electron user interface for the Golem Network.
- Compatibility: Alpha 3
Miscellaneous
- gvm-vim - A golemized docker image for compiling the most loved vim editor.
- Compatibility: Alpha 2
- YaJSapi fork with greeting example - A simple Node.js requestor app that greets you. It writes some important message to a file and then downloads it for you, the basic eskeleton of a requestor app. Look in
examples/greetings.- Compatibility: Alpha 3
- Golem Image Sharpening - Using golem to sharpen your images.
- Compatibility: Alpha 3
👷 Developer Resources
Docs and releases
- Yagna handbook - Handbook for the Golem, implementation name, Yagna.
- Releases List - GitHub releases of Yagna.
Running a node on Golem
Golem went on mainnet March 11th 2021.
Requestor
Get started quick and make your first request with the Requestor flash tutorial.
- If you have an interesting question you'd like answered, the Golem development team monitors the Yagna tag on Stack Overflow.
- If you're a JS developer, you can take a look at the community-made breakdown of blender.js to see how to run a task on Golem.
Provider
Follow the Provider section of the handbook.
Go through the FaQ for commonly asked questions.
Testnet GLM and Ether
To receive some tGLM on rinkeby zksync you can run yagna payment fund followed by yagna payment init --sender. You no longer need test ETH to run your task golem, tx fees on zksync are paid in tGLM too.
In case there is an issue with zksync, you can use the old erc20 payment driver:
- Get some funds with
yagna payment fund --driver erc20. - Enable sending for this account with
yagna payment init --sender --driver erc20. - Run your task ( f.e. python blender examplpe ) with
--driver erc20argument.
If for any reason the faucet was unsuccessful, grab some testnet Ether via the Rinkeby faucet, send it to your node address (can be found with yagna app-key list, starts with "0x") and run the payment steps again yagna payment fund --driver erc20 followed by yagna payment init --sender --driver erc20.
If you have the MetaMask browser extension installed you can also try the MetaMask faucets. Change to Rinkeby test network by clicking at the top on 'Main Ethereum Network' and select Rinkeby.
📝 Learning Resources
Unraveling Golem's The Next Milestone series
- Unraveling Golem's The Next Milestone
- Unraveling Golem's The Next Milestone, Part II
- Unraveling Golem's The Next Milestone, Part III
Videos and presentations
- Mainnet Requestor quickstart Walk-through - Mattias.
- Golem Workshop at H3LLO Decentralization - Kuba M.
- Mainnet Provider quickstart Walk-through - Mattias.
- Golem x Gitcoin - Hackathon 101 (December 2020) + Alpha 3 limitations
- Golem Loves Layer 2 presentations and panel - Kuba & Mikolaj (Golem) + Panel: Jay Zhou (Loopring Protocol), Kasima Tharnpipitchai (OMG Network), Alex Gluchowski (MatterLabs), Kelvin Fichter (Optimism), Kuba Kucharski (Golem).
- New Golem - Alpha 2 Release - Quick intro - Kuba.
- EDCON - Building New Golem: Where We're at and Where We're Heading - Kuba.
- ReadyLayerOne - A Golem (R)evolution - Piotr Janiuk.
GitHub Digest
- Golem GitHub Digest #1 - Understanding the Golem Repositories.
- Golem GitHub Digest #2 - Diving into the Golem Repositories.
- Golem GitHub Digest #3 - Diving into Pull Requests of the Golem repositories.
- Golem GitHub Digest #4 - Diving into latest releases in the Golem repositories.
- Golem GitHub Digest #5 - Diving into the Golem alpha testnet.
- Golem GitHub Digest #6 - SGX proof-of-concept for Golem.
- Golem GitHub Digest #7 - Decentralization of the Golem marketplace.
- Golem GitHub Digest #8 - Awesome Golem and next steps to Alpha 3.
- Golem GitHub Digest #9 - AMD provider support, network metrics and improved proposal handling.
- Golem GitHub Digest #10 - Improvements from community feedback.
- Golem GitHub Digest #11 - Easy log collection.
- Golem GitHub Digest #12 - We are on MAINNET and gathering feedback.
- Golem GitHub Digest #13 - Progressing faster with the help of the Golem community.
Community
- Golem Community GLM Rewards Program - Participate in the community and get rewarded for it in GLM!
- Community driven Golem Network Discussion Group Telegram channel.