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

If you're not sure about the file name format, learn more about wheel file names.

golem_node-0.17.6-py3-none-win_amd64.whl (23.1 MB view details)

Uploaded Python 3Windows x86-64

golem_node-0.17.6-py3-none-musllinux_1_2_x86_64.whl (20.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

golem_node-0.17.6-py3-none-manylinux_2_39_x86_64.whl (20.7 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

golem_node-0.17.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (19.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

golem_node-0.17.6-py3-none-macosx_11_0_arm64.whl (18.8 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

golem_node-0.17.6-py3-none-macosx_10_13_x86_64.whl (19.8 MB view details)

Uploaded Python 3macOS 10.13+ x86-64

File details

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

File metadata

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

File hashes

Hashes for golem_node-0.17.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 15995ce429d97000eb4ddb54bde45235416225d23e6724b8e2442264226003eb
MD5 fa2d0764327eaea212ed0c3e5f0a6852
BLAKE2b-256 f0c5f7d3665ded4583d628b513a0401a1bb612ad21936075c2f8084ab9f7d3df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for golem_node-0.17.6-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7abaed968a64792190ed9027b93ee48ee7b6e910dddd657b94a9dd8a69ee3d3a
MD5 94f16001cd06e68328cafaea47e85e34
BLAKE2b-256 f8bd05120419e88cd9b1ac9d58ba12639a0924c22a01d2683f62506ccecd5401

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for golem_node-0.17.6-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 163a25f116a5701448fc111f4791ec2acf59c61c060b744cc7da506f9e2e7a8f
MD5 ed39e9b648789d1880f1a8d9da2593a8
BLAKE2b-256 89a6671c4796b9f6f8fef49d156b5b080e8caddfe622021de0bb59e4030c85ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for golem_node-0.17.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 01cd183049439f25f8937cae8c07eb60934dfa152df4cf2184753d275baf7fd9
MD5 d227130761afbbb8aefb265740099b5b
BLAKE2b-256 3480d3a91d13a688b315598e52d4c29ef98a428b9dc041019e5e7b60c921fdf1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for golem_node-0.17.6-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6fa4fd6e5dfccab97ad6e5c63763fcf4f18c462a50c9d73e8211e999c85042aa
MD5 0a96c0300f408a58797213077c221ed1
BLAKE2b-256 30e8ff0b2419e231ca58549ee024cf6738bc4f95da9a5e578f9be2b532bc7360

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for golem_node-0.17.6-py3-none-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ef1bcad51fa3a2f695f6df1ff4d082217c1eeec90b3b09133db5382fc790b2d8
MD5 204a8fbea0d3e63dc211d6cd9588f079
BLAKE2b-256 dbaf89f4df5111d5f60761cc7cd8e90168f890d9291f4d80459b47380cde63e7

See more details on using hashes here.

Supported by

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