Skip to main content

golem-node

Project description

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 @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:

  • 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 Ethereum Mainnet)
  • Production-ready and easy to maintain code base.
  • Modular architecture with all the building blocks being 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

golem_node-0.17.3-py3-none-win_amd64.whl (22.7 MB view details)

Uploaded Python 3Windows x86-64

golem_node-0.17.3-py3-none-musllinux_1_2_x86_64.whl (21.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

golem_node-0.17.3-py3-none-manylinux_2_39_x86_64.whl (21.7 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

golem_node-0.17.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (19.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

golem_node-0.17.3-py3-none-macosx_11_0_arm64.whl (19.7 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

golem_node-0.17.3-py3-none-macosx_10_13_x86_64.whl (20.6 MB view details)

Uploaded Python 3macOS 10.13+ x86-64

File details

Details for the file golem_node-0.17.3-py3-none-win_amd64.whl.

File metadata

  • Download URL: golem_node-0.17.3-py3-none-win_amd64.whl
  • Upload date:
  • Size: 22.7 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for golem_node-0.17.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7ae2b1bff1d6ab273a8676d5ffdd21bd4a4e8b3216da9d9479c8f221345a3563
MD5 e84956be765751af6fa61880c3d3471c
BLAKE2b-256 2e8412964a504eb67c3dc4e9016892be672eca37da6d60280979b69ac546d657

See more details on using hashes here.

File details

Details for the file golem_node-0.17.3-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for golem_node-0.17.3-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 30783633c5e841ee40dd71d83e4e23c104f908b46e7320def1d669fcf263a272
MD5 5f31e0a7af57bead63e1f2c1d833315c
BLAKE2b-256 936fdab20cf9669579fabb0b25085b49bf27a32ff5816bf94cb8cce57ba7094a

See more details on using hashes here.

File details

Details for the file golem_node-0.17.3-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for golem_node-0.17.3-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 55fb449d0f51c9cca6f1805395904ea80b010cf1c2058065cf60d35bf989f27f
MD5 c98a587e37606826b607d5b27ad9d928
BLAKE2b-256 0ce8c2b374de61202feefeb39ac69da80f42ece65e9bbb678a8ac6d51c2e589f

See more details on using hashes here.

File details

Details for the file golem_node-0.17.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for golem_node-0.17.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eecb6c91b58e4067210f4de74f84068e40bcc5841e27456489ec8929e486cadc
MD5 589dd2a88a911851a125e069c53130d4
BLAKE2b-256 1a42c8130e70bf5f773ed1743196740b1834ad14bde0bac67ede3c0826b5dcd3

See more details on using hashes here.

File details

Details for the file golem_node-0.17.3-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for golem_node-0.17.3-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b2a5c14185aca56dde448be8f3188a89c80ba4470483d0f2d9f687178e0f62ed
MD5 e16d8446850630fc844c044e936977b7
BLAKE2b-256 3adc4d08ea3836b30b51c4e2dd96c98721cb889f5f05e78746ceedef01223ae1

See more details on using hashes here.

File details

Details for the file golem_node-0.17.3-py3-none-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for golem_node-0.17.3-py3-none-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 de330a38f3aa95e554b2c2bc9c2c2821be2546a13b8aeda440ad46649fdbf442
MD5 7f0d2ccf4aa06bc0fa6ec65b522ed945
BLAKE2b-256 63c9ffbf85f79665d4b46f5a0f6fa9338e87c878078d04a155e4f45dd204805b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page