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.16.0-py3-none-win_amd64.whl (23.1 MB view details)

Uploaded Python 3 Windows x86-64

golem_node-0.16.0-py3-none-musllinux_1_2_x86_64.whl (20.6 MB view details)

Uploaded Python 3 musllinux: musl 1.2+ x86-64

golem_node-0.16.0-py3-none-manylinux_2_34_x86_64.whl (20.5 MB view details)

Uploaded Python 3 manylinux: glibc 2.34+ x86-64

golem_node-0.16.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (19.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

golem_node-0.16.0-py3-none-macosx_11_0_arm64.whl (18.7 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

golem_node-0.16.0-py3-none-macosx_10_13_x86_64.whl (19.6 MB view details)

Uploaded Python 3 macOS 10.13+ x86-64

File details

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

File metadata

File hashes

Hashes for golem_node-0.16.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3430a439379060593afc7ef76535de121f0a2611961557e81204adf55b5ac143
MD5 f8b60e926758e2eba1f7019d7c5de5b9
BLAKE2b-256 23a88818329a83b40d4552626fca79aaa9c963e39736848c3c8f6065fc343628

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for golem_node-0.16.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f3614f7b2cdd0e43573e5e2b75e8bb1aa225805e6351cb94a0ed215abd9f69d2
MD5 8acdde4860a0c337ef0e6f5d2d595645
BLAKE2b-256 607363ccf8043487fb6429fb86d9f98aef881eae171a0289d89a3f73f32d182b

See more details on using hashes here.

File details

Details for the file golem_node-0.16.0-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for golem_node-0.16.0-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8558e198469a25006886d1493e29880482977ac581d951c272eaeec70cd516c8
MD5 b3682093cd4c74a1c1b9e5dc02b9056b
BLAKE2b-256 c846076c1eede07976e599ce5496ae08e5ff00bae958efb966eb5eb261bf29c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for golem_node-0.16.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f3a3c1432add8d62a2885311b26192e178cb0440b7fcdb19a890524087b0fc16
MD5 d2f72026169ea2bf044fc69e0e8df8e3
BLAKE2b-256 12b3746b4fb3c359bbc7fc2f18dc8427216e8d91a2b0a996d0d942637caf56ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for golem_node-0.16.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9eeb6a7ae3c5d3c2e4c0d4322ba4fea204a968c681adce1965197ba00e131dce
MD5 09c1849d89da6c75ded73d1bb9659a55
BLAKE2b-256 67dad4d5a534a4e9620312fc69d857cc4090af6089aeb6dcb2e748da12ba7486

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for golem_node-0.16.0-py3-none-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 df3e151c3413e30ed34e03e6f0e1eb96354e1a2a0dbed970aae5ae53d9bcd75f
MD5 043997bed771febaa71b7ca81b02ac52
BLAKE2b-256 0206dcaa76f6012fda1340c2764041910fe9619a4b65df47c3aa25f907abe0e0

See more details on using hashes here.

Supported by

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