golemfactory / yagna

An open platform and marketplace for distributed computations
GNU General Public License v3.0
375 stars 60 forks source link
golem

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:

Documentation

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

Project Layout

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 @golem-sdk/golem-js 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:

List of implemented and planned functionality

  1. Distributed computations
    • [x] Batching
    • [x] Services (PoC stage)
  2. Computational environment (aka ExeUnit)
    • [x] Wasm computation
    • [x] Light vm-s
    • [ ] Docker on Linux (optional)
    • [x] SGX on Graphene (PoC stage)
  3. Payment platform
    • [x] Payments with GLM
    • [x] ERC20 token
    • [x] 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
    • [x] Pay as you go(lem) (see more)
    • [x] 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)
    • [x] 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.