/awesome-golem

A community-curated one-stop-shop of resources and information for all things New Golem

GNU General Public License v3.0GPL-3.0

Awesome Golem Awesome

Welcome to Awesome Golem, a community-curated list of resources, links, projects, tools and apps on Golem! Note: this guide and it's contents is specific to New Golem and it's current implementation, Yagna. For Legacy (Clay) Golem, you can find the documentation here and comms archive.

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 New Golem Watch on GitHub Star on GitHub
  • 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
  • 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

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 - The flask backend that collects the data from the provider that's then used with the dashboard project above.
    • Compatibility: Beta 1

Provisioning

  • Golem Provider Terraform - A terraform script to automatically deploy a Golem Provider on a cloud provider and setup monitoring using prometheus.
    • 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_VERSION and ARG YA_VM_VERSION in the Dockerfile are the correct versions.
    • 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: Alpha 3
  • 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
  • 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

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

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

  • 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 nodejs 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

Bounties and Hackathons

Details on Golem bounties and their submissions.

Gitcoin Hackathon 2020 Winners

Compile VIM On Single Golem Node - Gitcoin link

  1. https://github.com/canokaue/gvm-vim - [Demo]
  2. https://github.com/rezahsnz/golemized-vim - [Demo]
  3. https://github.com/iRhonin/golem-vim - [Demo]
  4. https://github.com/thomgabriel/golem-compile-VIM - [Demo]
  5. https://github.com/molecula451/gvim - [Demo]

Process And Visualize Interesting Computations In Matplotlib On Multiple Golem Nodes - Gitcoin link

  1. https://github.com/smiley1983/golemGraphWavePair - [Demo]
  2. https://github.com/rezahsnz/golemized-strong-gravitational-lense - [Demo]
  3. https://github.com/CoeJoder/golem-parallel-matplotlib - [Demo]
  4. https://github.com/iRhonin/golem-covid - [Demo]
  5. https://github.com/hhio618/golem-lorenz-attractor - [Demo]
  6. https://github.com/vporton/limit-visualization - [Demo]

Run John The Ripper On Multiple Golem Nodes To Crack A Password - Gitcoin link

  1. https://github.com/rezahsnz/golemized-john - [Demo]
  2. https://github.com/Doc-Saintly/golem-john-jumbo - [Demo]
  3. https://github.com/iRhonin/golem-john - [Demo]
  4. https://github.com/hhio618/golem-jtr - [Demo]
  5. https://github.com/molecula451/jtrg - [Demo]

Create A Video Transcoding Web Application Using Golem As A Backend - Gitcoin link

  1. https://github.com/Doc-Saintly/golem-video - [Demo]
  2. https://github.com/Edhendil/golem-transcoding - [Demo]

👷 Developer Resources

Docs and releases

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.

Provider:

Follow the Provider section of the handbook.

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 erc20 argument.

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

Videos and presentations

GitHub Digest

Community