Git Product home page Git Product logo

yagna's Introduction

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 mainnet with the Beta I release.

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 - basic agent applications based on core services.
  • core - core services for the open computation marketplace.
  • exe-unit - ExeUnit Supervisor.
  • service-bus - portable, rust-oriented service bus for IPC.
  • 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 yaJSapi repo.

Runtimes

We call our runtime ExeUnit. As for now we support

Other ExeUnit types are to come (see below).

MVP

With the MVP out, in the form of the Beta I, Grace Hopper release. The release includes:

  • Clean and easy UX, most specifically during onboarding.
  • GLM-centric.
  • Production-ready, modular and easy to maintain architecture and code base.
    Modular means that all the building blocks can be easily replaceable.
  • Documentation and SDK for developers.
  • Small footprint binaries.

Functional

  1. Distributed computations
    • Batching
    • Services (optional)
  2. Computational environment (aka ExeUnit)
    • Wasm computation
    • Light vm-s (optional)
    • Docker on Linux (optional)
    • SGX on Graphene (optional)
  3. Payment platform
    • Payments with GLM
    • Gasless transactions
    • ERC20 token
    • payment matching (optional)
  4. Transaction system
    • Usage market
    • Pay per task
    • Pay for dev (optional)
  5. Network
    • P2P (Hybrid P2P)
    • Ability to work behind NAT (Relays)
  6. Verification
    • Verification by redundancy
    • No verification
    • Verification by humans (optional)
  7. Back compatibility
    • Golem Brass/Clay interoperability (optional)

yagna's People

Contributors

azawlocki avatar bidzyyys avatar boryspoplawski avatar cryptobench avatar etam avatar filipgolem avatar jiivan avatar kmazurek avatar kubkon avatar maaktweluit avatar mariapaulafn avatar mat7ias avatar mfranciszkiewicz avatar nieznanysprawiciel avatar omeg avatar pnowosie avatar prekucki avatar shadeofblue avatar stranger80 avatar tworec avatar wiezzel avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.