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
- Light VM - QEMU-based ExeUnit.
- and WASM in two flavours:
- wasmtime - Wasmtime-based ExeUnit.
- emscripten - SpiderMonkey-based ExeUnit.
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
- Distributed computations
- Batching
- Services (PoC stage)
- Computational environment (aka ExeUnit)
- Wasm computation
- Light vm-s
- Docker on Linux (optional)
- SGX on Graphene (PoC stage)
- 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)).
- Transaction system
- Pay as you go(lem) (see more)
- Pay per task
- Pay for dev (optional)
- Network
- P2P (Hybrid P2P; in progress)
- Ability to work behind NAT (Relays; in progress)
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file golem_node-0.16.0-py3-none-win_amd64.whl
.
File metadata
- Download URL: golem_node-0.16.0-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/5.1.1 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3430a439379060593afc7ef76535de121f0a2611961557e81204adf55b5ac143 |
|
MD5 | f8b60e926758e2eba1f7019d7c5de5b9 |
|
BLAKE2b-256 | 23a88818329a83b40d4552626fca79aaa9c963e39736848c3c8f6065fc343628 |
File details
Details for the file golem_node-0.16.0-py3-none-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: golem_node-0.16.0-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 20.6 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3614f7b2cdd0e43573e5e2b75e8bb1aa225805e6351cb94a0ed215abd9f69d2 |
|
MD5 | 8acdde4860a0c337ef0e6f5d2d595645 |
|
BLAKE2b-256 | 607363ccf8043487fb6429fb86d9f98aef881eae171a0289d89a3f73f32d182b |
File details
Details for the file golem_node-0.16.0-py3-none-manylinux_2_34_x86_64.whl
.
File metadata
- Download URL: golem_node-0.16.0-py3-none-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 20.5 MB
- Tags: Python 3, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8558e198469a25006886d1493e29880482977ac581d951c272eaeec70cd516c8 |
|
MD5 | b3682093cd4c74a1c1b9e5dc02b9056b |
|
BLAKE2b-256 | c846076c1eede07976e599ce5496ae08e5ff00bae958efb966eb5eb261bf29c1 |
File details
Details for the file golem_node-0.16.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: golem_node-0.16.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 19.6 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3a3c1432add8d62a2885311b26192e178cb0440b7fcdb19a890524087b0fc16 |
|
MD5 | d2f72026169ea2bf044fc69e0e8df8e3 |
|
BLAKE2b-256 | 12b3746b4fb3c359bbc7fc2f18dc8427216e8d91a2b0a996d0d942637caf56ed |
File details
Details for the file golem_node-0.16.0-py3-none-macosx_11_0_arm64.whl
.
File metadata
- Download URL: golem_node-0.16.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 18.7 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9eeb6a7ae3c5d3c2e4c0d4322ba4fea204a968c681adce1965197ba00e131dce |
|
MD5 | 09c1849d89da6c75ded73d1bb9659a55 |
|
BLAKE2b-256 | 67dad4d5a534a4e9620312fc69d857cc4090af6089aeb6dcb2e748da12ba7486 |
File details
Details for the file golem_node-0.16.0-py3-none-macosx_10_13_x86_64.whl
.
File metadata
- Download URL: golem_node-0.16.0-py3-none-macosx_10_13_x86_64.whl
- Upload date:
- Size: 19.6 MB
- Tags: Python 3, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df3e151c3413e30ed34e03e6f0e1eb96354e1a2a0dbed970aae5ae53d9bcd75f |
|
MD5 | 043997bed771febaa71b7ca81b02ac52 |
|
BLAKE2b-256 | 0206dcaa76f6012fda1340c2764041910fe9619a4b65df47c3aa25f907abe0e0 |