Package: golem-node
GolemOfficial 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 theBeta I releasein 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:RequestorHas 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.ProviderHas IT resources available that can be shared with other actors in the network. Those resources are sold in the decentralized market.DeveloperBuilds applications to run for requestors on the network. Golem's potential goes much beyond a singular application. SeeAwesome Golemfor just a taste of the various types of applications that can be built and run on Golem!DocumentationFor a more in-depth look at how Golem works, head over to ourdocumentation.Project Layoutagent/provider- provider agent implementation based on core services.core- core services for the open computation marketplace.exe-unit-  ExeUnit Supervisor - a common part of allruntimesfor yagna.test-utils- some helpers for testing purposesutils- trash bin for all other stuff ;)docs- project documentation including analysis and specifications.Public APIThe public API rust binding with data model is in theya-clientrepo.High Level APIsThe public high-level API for Python is inyapapirepo and the JS/TS port is contained in the@golem-sdk/golem-jsrepo.RuntimesWe call our runtimeExeUnit. As for now we supportLight 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 wereBeta Iand most recentBeta II. With those releases we have delivered:MVP (minimum viable product), though not feature rich yet, it is usable for early adoptersClean and easy experience for new and existing users.Support for GLM payments (both L1 & L2 on Ethereum Mainnet)Production-readyandeasy to maintaincode base.Modular architecturewith all the building blocks being replaceable.Small binaries (under 30Mb).Documentation and SDKfor Golem app developers.List of implemented and planned functionalityDistributed computationsBatchingServices(PoC stage)Computational environment (aka ExeUnit)Wasm computationLight vm-sDocker on Linux(optional)SGX on Graphene(PoC stage)Payment platformPayments with GLMERC20 tokenLayer 1 &Layer 2transactionsPayment matching(optional)(Ability for the invoice issuer to match the payment with Debit Note(s)/Invoice(s)).Transaction systemPay as you go(lem)(see more)Pay per taskPay for dev(optional)NetworkP2P(Hybrid P2P; in progress)Ability to work behind NAT(Relays; in progress)VerificationVerification by redundancy(see also)No verificationVerification by humans(optional)Road aheadWe are actively working on improving Yagna and extending its functionality, check upcoming releases and other news onour blog.