• Stars
    star
    382
  • Rank 112,241 (Top 3 %)
  • Language
    Rust
  • License
    GNU General Publi...
  • Created almost 5 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open platform and marketplace for distributed computations

Golem

Official Rust implementation of Golem. Golem is a network of nodes that implement the Golem Network protocol. We provide the default implementation of such a node in the form of the Golem daemon, Yagna.


A flexible, open-source platform for democratised access to digital resources.

Golem Network has officially gone on Ethereum Mainnet with the Beta I release in March 2021.

Golem democratizes society’s access to computing power by creating a decentralized platform where anyone can build a variety of applications, request computational resources and/or offer their idle systems in exchange for cryptocurrency tokens (GLM). The actors in this decentralized network can assume one of the three non-exclusive roles:

  • Requestor Has a need to use IT resources such as computation hardware. Those resources are purchased in the decentralized market. The actual usage of the resources is backed by Golem's decentralized infrastructure.

  • Provider Has IT resources available that can be shared with other actors in the network. Those resources are sold in the decentralized market.

  • Developer Builds applications to run for requestors on the network. Golem's potential goes much beyond a singular application. See Awesome Golem for just a taste of the various types of applications that can be built and run on Golem!

Documentation

For a more in-depth look at how Golem works, head over to our documentation.

Project Layout

  • agent/provider - provider agent implementation based on core services.
  • core - core services for the open computation marketplace.
  • exe-unit - ExeUnit Supervisor - a common part of all runtimes for yagna.
  • test-utils - some helpers for testing purposes
  • utils - trash bin for all other stuff ;)
  • docs - project documentation including analysis and specifications.

Public API

The public API rust binding with data model is in the ya-client repo.

High Level APIs

The public high-level API for Python is in yapapi repo and the JS/TS port is contained in the yaJSapi repo.

Runtimes

We call our runtime ExeUnit. As for now we support

Other ExeUnit types are to come (see below).

Golem Beta Release(s)

Important milestones for Golem development were Beta I and most recent Beta II. With those releases we have delivered:

  • MVP (minimum viable product), though not feature rich yet, it is usable for early adopters
  • Clean and easy experience for new and existing users.
  • Support for GLM payments (both L1 & L2 on Ethreum Mainnet)
  • Production-ready and easy to maintain code base.
  • Modular architecture with all the building blocks beeing replaceable.
  • Small binaries (under 30Mb).
  • Documentation and SDK for Golem app developers.

List of implemented and planned functionality

  1. Distributed computations
    • Batching
    • Services (PoC stage)
  2. Computational environment (aka ExeUnit)
    • Wasm computation
    • Light vm-s
    • Docker on Linux (optional)
    • SGX on Graphene (PoC stage)
  3. Payment platform
    • Payments with GLM
    • ERC20 token
    • Layer 1 & Layer 2 transactions
    • Payment matching (optional) (Ability for the invoice issuer to match the payment with Debit Note(s)/Invoice(s)).
  4. Transaction system
    • Pay as you go(lem) (see more)
    • Pay per task
    • Pay for dev (optional)
  5. Network
    • P2P (Hybrid P2P; in progress)
    • Ability to work behind NAT (Relays; in progress)
  6. Verification
    • Verification by redundancy (see also)
    • No verification
    • Verification by humans (optional)

Road ahead

We are actively working on improving Yagna and extending its functionality, check upcoming releases and other news on our blog.

More Repositories

1

clay

Golem is creating a global market for computing power.
Python
2,907
star
2

awesome-golem

A community-curated list of awesome projects and resources related to the Golem peer-to-peer computational resources marketplace.
199
star
3

golem-electron

Graphical user interface for Golem Project
JavaScript
97
star
4

golem-crowdfunding

Golem token and crowdfunding contracts
Python
78
star
5

yapapi

Python high-level API for Golem.
Python
49
star
6

golem-unlimited

Golem-unlimited
Rust
46
star
7

homebrew-golem

Golem is creating a global market for computing power.
Ruby
40
star
8

golem-js

TypeScript + NodeJS API for Golem
TypeScript
29
star
9

gMorph

Fully Homomorphic Encryption library
Rust
25
star
10

golem-rd

Research & Development for Golem project
TeX
21
star
11

ethereum-contracts

Ethereum contracts for nanopayments schemes used in Golem Worldwide Supercomputer.
Python
21
star
12

sp-wasm

SpiderMonkey-based Wasm sandbox
Rust
21
star
13

golem-contracts

Solidity
20
star
14

ProofOfDevice

Proof of Device
Rust
19
star
15

golem

New Golem Network (aka Yagna)
18
star
16

golem-libp2p

Golem rust-libp2p integration
Rust
12
star
17

ya-runtime-vm

Docker-like runtime enviroment implementation for Golem
C
12
star
18

wasm-store

A curated list of Wasm binaries that run in Golem
JavaScript
12
star
19

golem-kernel-python

Python
10
star
20

goth

Golem Test Harness, an integration testing framework for yagna - the (new) Golem Network client.
Python
10
star
21

golem-docs-old

Documentation for Golem Project
9
star
22

hackathons

9
star
23

g-flite

g-flite: flite app distributed over Golem Network
Rust
8
star
24

concent

Repository for Concent Service sources
Python
8
star
25

gpu-on-golem-poc

TypeScript
8
star
26

gfaas

FaaS using gWasm platform
Rust
8
star
27

ya-client

Specification for REST API in yagna
Rust
8
star
28

golemrpc

Python
7
star
29

pfaas

Python's very own gfaas implementation - an experiment
Python
7
star
30

v8-wasm

v8-based Wasm sandbox
C++
7
star
31

golem-usecases

Contains PoCs of new golem use cases
Jupyter Notebook
6
star
32

golem-docs

JavaScript
6
star
33

task-api

Python
6
star
34

ray-on-golem

Python
6
star
35

js-api-usecases

We are now refining / refreshing the Yagna JS API
6
star
36

homebrew-golem-dev

Homebrew + Caskroom recipes for Golem Release Candidates
Ruby
5
star
37

dapp-runner

Python
5
star
38

concent-deployment

Scripts and configuration for Concent deployment
Shell
5
star
39

ansible-role-golem-compute

5
star
40

dapp-manager

Python
5
star
41

yagna-docs

Documentation for yagna
4
star
42

ya-runtime-wasi

Rust
4
star
43

golem-client

Client for Brass Golem Network protocol.
Rust
4
star
44

golem-micropayments-whitepaper

A Probabilistic Nanopayment Scheme for Golem
TeX
4
star
45

gwasm-runner

Command line tool for running gWasm compatible apps locally, via Golem Unlimited or via Brass Golem.
Rust
4
star
46

yarapi

Rust
3
star
47

golem-js-preview-program

JavaScript
3
star
48

yagna-infrastructure-docs

Documentation for yagna infrastructure
3
star
49

ya-service-bus

Rust
3
star
50

golem-js-meetups

Resources related to Golem JS SDK presentations on Meetups and Conferences
JavaScript
3
star
51

simple-transfer

Rust
3
star
52

ya-relay

Rust
3
star
53

golem-core-python

Python
3
star
54

golem-smart-contracts-interface

Python module that interfaces communication with BlockChain. Common for Golem and Concent.
Python
3
star
55

dapp-experiments

Various projects built on top of Golem dApps
JavaScript
3
star
56

yagna-zksync

JavaScript
3
star
57

bootstrap_go

Bootstrap nodes for golem network (go implementation)
Go
2
star
58

golem-architecture

Golem architecture documents
C#
2
star
59

ya-perf

ya-perf is a performance analyzing tool for NET
Python
2
star
60

golem-electron-dev

Develop version of golem-electron
JavaScript
2
star
61

yajapi

java API to Yagna
Java
2
star
62

ansible-role-ya-provider

Jinja
2
star
63

devp2p-playground

Random experimentation with devp2p
Python
2
star
64

ansible-role-golem-docker

2
star
65

capnp-playground

Rust
2
star
66

dapp-store

minimal repository of dapp descriptors for `dapp-manager` and `dapp-runner`
2
star
67

ansible-role-golem-source

2
star
68

ya-runtime-http-auth

Generic HTTP authentication runtime for providing services on Golem network
Rust
2
star
69

gudot

Linear regression using FHE gMorph library
Rust
2
star
70

transcoding-experiments

Python
2
star
71

bash-notarize

Automated Code Signing and Notarization Script for MacOS
Shell
2
star
72

ya-runtime-sdk

Rust library for building new computation environments and self-contained runtimes for yagna
Rust
2
star
73

ya-ts-client

JavaScript
2
star
74

golem-messages

shared module for formatting and parsing messages (Golem & Concent)
Python
2
star
75

gvmkit-build-rs

Rust
2
star
76

gwasm-rust-api

gWasm API for Rust apps
Rust
2
star
77

golem-monitor-frontend

Golem Monitor Web Frontend
Vue
2
star
78

golem-wiki

Golem wiki hosts pages regarding installation, development and a general FAQ.
CSS
2
star
79

golem-des

Golem marketplace agent-based DES simulator
Rust
2
star
80

ya-vm-file-server

Cross-platform 9p file server implemented in Rust.
Rust
2
star
81

yazinc

Zinc zero-knowledge proofs on Yagna
Python
2
star
82

blenderapp

Containerized Blender application
Python
2
star
83

golem-dev

Release Candidates for Golem
2
star
84

gnt2

The new incarnation of the Golem Network Token
Solidity
2
star
85

gumpi

MPI on Golem Unlimited PoC
Rust
2
star
86

3-layer-dapp-example

Simple dapp implementation
JavaScript
2
star
87

graphene-rust

Rust API for Graphene/SGX
Rust
1
star
88

ansible-role-golem-ethereum

1
star
89

concent-deployment-values

Environment specific values for Concent deployment
1
star
90

cargo-ya-wasi-pkg

Rust
1
star
91

ya-vpn-connector

Adapter connecting TUN to yagna exposed WebSocket. Part of VPN toolset
Rust
1
star
92

hello-gwasm-runner

Hello world! for gWasmRunner
Rust
1
star
93

boinc-supervisor

This application implements enough of BOINC IPC to support running simple apps without real BOINC client.
Rust
1
star
94

golem-pinger

Script for pinging golem nodes for stress testsing
Python
1
star
95

yapapi-service-manager

Python
1
star
96

golem-rpc-provider

Shell
1
star
97

ansible-role-golem-hyperdrive

1
star
98

ya-assemblyscript-sdk

Helpers for assemblyscript packages in Golem
TypeScript
1
star
99

golem-monitor-replicator

Golem monitor backend
Rust
1
star
100

ya-installer

Shell
1
star