Skip to content
Golem-unlimited
Branch: master
Clone or download
Latest commit 07bf26d Feb 25, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docker fixes: server run cmdline not working Nov 13, 2018
gu-actix API: added autoreleasing for HubSession objects. Jan 2, 2019
gu-base Merge branch 'master' into feature/json-cli-option Jan 16, 2019
gu-client API: modified example. Jan 11, 2019
gu-ethkey back to stripped parity dependency, as full one is huge Jan 31, 2019
gu-event-bus
gu-hardware reforamt Dec 10, 2018
gu-hub
gu-lan
gu-model Implement Debug for various types in gu-model Jan 8, 2019
gu-net Merge remote-tracking branch 'origin/master' into feature/gh-76-docke… Dec 20, 2018
gu-persist reforamt Dec 10, 2018
gu-provider shut up cargo fmt checker Jan 31, 2019
gu-webapp WIP | connection manager #58 | provider server refactor Oct 25, 2018
.gitignore VSCode-specific .gitignore changes Oct 4, 2018
CONTRIBUTING.md Add contributing guide Feb 25, 2019
Cargo.toml
LICENSE.txt
README.md
gu-hub-api.yaml
rustfmt.toml

README.md

Golem Unlimited

Golem Unlimited utilizes trusted heterogeneous computing resources which are part time idle. It is meant for data center-like setup (e.g., render farms, or desktops within organisation LAN) where network participants trust each other, but it will also support trusted P2P subnetworks (e.g., distributed team machines).

It features the hub acting as a requestor and additional worker nodes in the hub’s trusted network acting as providers.

Trust within Golem Unlimited subnetwork allows simplifying its design and taking care of only the computation layer. Other components such as economic layers, reputation systems, verification algorithms, and sandboxing (in contrast to the public Golem Network) can be skipped altogether or implemented optionally.

Golem Unlimited joint resources can be used to perform tasks for internal requestor - the hub operator - with no fee. At the same time the hub will be able to expose its subordinate trusted providers to the public Golem Network. In such a setting hub will act as a provider and earn GNTs.

The latter broadens Golem Network reach, because it currently supports just single machine nodes. With Golem Unlimited it would allow more complex components, such as a whole subnetworks.

Use cases

So far we have prepared plugins for two use cases:

  • Integer factorization
  • Mining

We will open source those plugins soon.

Installing and testing

Please bear in mind that Golem Unlimited is in its Alpha stage.

binary

To install you can use the released Ubuntu deb and MacOs dmg binary packages.

The detailed steps can be found in our demo https://youtu.be/J0LBdg2j6Tk

from source

To run the hub, go to the gu-hub subdir and perform

$ cargo run -- -vv server run

To run the provider and connect to your hub at 192.168.1.1 go to gu-provider subdir and run

$ cargo run -- -vv -a 192.168.1.1:61622 server run

Usage

See our demo for sample usage https://youtu.be/J0LBdg2j6Tk

Both hub and provider can be configured via CLI. Invoke them with help command to see what's possible.

The hub comes also with web UI at:

http://<hub-ip>:61622/app/index.html

Project layout

  • gu-actix: small util crate defining flatten trait for ActixWeb future
  • gu-base: implementation of common parts of Provider and Hub servers
  • gu-ethkey: Ethereum keys management
  • gu-event-bus: event-bus implementation - publish-subscribe communication between components
  • gu-hardware: discovery of hardware resources - GPU, disk space, RAM
  • gu-hub: binary of Hub server
  • gu-lan: mDNS services discovery
  • gu-net: network layer of the application
  • gu-persist: filesystem, persistent storage of files
  • gu-provider: binary of Provider service
  • gu-webapp: web application building development tools
  • gu-envman-api: data structures used in communication with execution enviroment component on provider side.

How to Contribute to Unlimited

Here you can find information in order to give us feedback and contribute to the project.

You can’t perform that action at this time.