golem-architecture

Golem Computation Resource Standards

Version 0.7.1

This repository defines a framework for the specification of Standards for Computing Resources available on Golem ecosystem. It is supplementary to Golem Demand & Offer Specification Language and is meant to prescriptively implement structure in a broad space of conceivable services.

Computing Resource Metaspace Decomposition

The computation resources offered for trade on Golem marketplaces are described by a generic meta-language of Demands & Offers. The specification language is designed to be broad and open, however by itself it does not specify the possible space of resources/services. It comprises the grammar, rather than semantics. We acknowledge the fact that computation resources can be defined via a multitude of aspects, which we call “dimensions”. A single distinguishable service requires a combination of different specifications describing different aspects of this service’s existence on Golem marketplaces. Each of these dimensions can benefit from standardisation, and the dimension standards can be perceived as largely independent from each other. Therefore we consider this multidimensional standard space as an open and powerful framework.

Resource Aspects - Dimensions -> Namespaces

As mentioned above, a “dimension” defines a single aspect of resource’s/service’s definition. A dimension standard defines rules which must be followed by elements of resource’s Offer so that it can be considered a standardised Offer. A dimension standard may specify, among others:

Namespace categories

The Golem Standards repository consists of following sections/categories:

Standard properties - Cheat sheet

List fo Golem Factory supported properties: Cheat sheet

Generic conventions

“Fact” vs “Negotiable” properties

A property indicates a specific aspect of its issuer (Requestor or Provider) or an Agreement which is being negotiated between the parties. Properties can be generally split into following classes:

Facts and Negotiables require respective representations in Demands, Offers and resulting agreements:

Note:

All properties are Facts by default. Negotiable properties follow a naming convention which includes property name to be postfixed by ? character. All negotiable properties are also explicitly marked as such in respective standard documents.

Why are Negotiables required?

There are a couple of reasons for the Negotiable property convention:

Deprecated properties

Properties (and usage conters) marked as Deprecated are still supported in the current version of the Standard, but will be removed in one of subsequent versions of the Standard. The deprecation rules as indicated in the Golem Compatibility Policy shall be followed.