Glossary

Entities

Bank

A server which

  • manages a ledger for DCC

  • enables the movement of DCC between entities requesting work and entities performing work

  • enables the placement of DCC in escrow on behalf of the Scheduler for work which the Scheduler anticipates to be done

Portal

A web app which allows or enables

  • creation and management of a person’s accounts

  • management of bank accounts (ledgers)

  • transfer of DCC between bank accounts

  • execution of the browser-based Worker

Sandbox

A component of a Worker used to execute arbitrary JavaScript code in a secure environment. Implemented by the Worker class (there are plans to change the name someday). In essence, the Worker uses one Sandbox per CPU core, although it might use more to work around system scheduler deficiencies, network overhead, etc. window.Worker() implements Sandboxes in the web browser.

Scheduler

A server which

  • receives work functions and data sets from Compute API

  • slices data into smaller sets

  • transmits work and data points to Worker

  • determines cost of work and instructs the Bank to distribute funds between entities accordingly

  • ensures that all tasks complete, provided it can deploy appropriate financial and computation resources in furtherance of this goal

Supervisor

The component of a Worker which communicates with the Scheduler and Sandboxes.

Worker

A JavaScript program which includes a Supervisor and one or more Sandboxes

  • performs computations

  • retrieves work and data points from Scheduler

  • retrieves work dependencies from Package Server

  • returns results and cost metrics to Scheduler

  • Specific instances of Worker include

  • a browser-based Worker

  • a standalone Worker operating on Google’s v8 engine

Concepts

Address

A unique identifier in DCP that can represent a Bank Account identifier (account number) or Job identifier.

Bank Account

A ledger that acts as a repository for DCC. Metadata attached to bank accounts can restrict certain operations, such as ear-marking funds for use by just job deployment.

Distributed Computer

A parallel supercomputer consisting of one or more schedulers and workers. When used as a proper noun, the distributed computer in question is the one hosted at https://portal.distributed.computer/.

Job

The collection consisting of an input set, Work Function, and result set. Referred to in earlier versions of the Compute API (incorrectly) as a Generator.

Keystore

A data structure that stores an encrypted key pair (address + private key). In general, owners encrypt their keystore with a passphrase.

Keystore File

A file that stores a JSON-encoded Keystore.

Module

A unit of source code that can be used by, but addressed independently of, a Work Function. Compute API modules are akin to CommonJS modules.

Package

A group of related modules

Slice

A unit of work, represented as source code plus data and metadata, which has a single entry point and return type. Each Slice in a Job corresponds to one element in the Job’s input set.

Task

A unit of work composed of one or more slices, which a single worker can execute.

Wallet

A piece of software that allows a person to interact with the greater economy as a whole. It’s analogous to your actual wallet in your pocket has your cash and credit cards, and you access your wallet to buy something and keep records (by pulling out cash or cards, and stuffing receipts back in).

The Distributed Computer acts as a Wallet; the platform exposes Wallet-related capabilities both via software APIs and the portal website.

  • The portal, wallet API, and command-line tools can generate public/private key pairs

  • A database stores public/private key pairs as passphrase-protected Keystores

  • The Distributed Computer Wallet stores public/private key pairs. People can retrieve them via the portal website.

Work
Work Function

A function that’s that a Worker executes once per Slice for a given Job, accepting the input datum and returning a result which the Scheduler adds to the result set.