Glossary
Entities
- Bank
A server which
- 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.
- CGIO
The measure of CPU time, GPU time, input bytes and output bytes for a given slice of work. DCP workers can configure minimum credits for each (CPU, GPU, I or O) to reflect their cost of compute. Only slices whose offered price is greater than the minimum wage set by the worker can be taken by that worker.
- 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 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.