Here are instructions on how to set up the local build environment, run the tests and some examples on how to prepare test networks for local development of Oasis Core components.
At the highest level, Oasis Core is divided into two major layers: the consensus layer and the runtime layer as shown on the figure above.
The idea behind the consensus layer is to provide a minimal set of features required to securely operate independent runtimes running in the runtime layer. It provides the following services:
Epoch-based time keeping and a random beacon.
Basic staking operations required to operate a PoS blockchain.
An entity, node and runtime registry that distributes public keys and
Runtime committee scheduling, commitment processing and minimal state keeping.
On the other side, each runtime defines its own state and state transitions independent from the consensus layer, submitting only short proofs that computations were performed and results were stored. This means that runtime state and logic are completely decoupled from the consensus layer, and the consensus layer only provides information on what state (summarized by a cryptographic hash of a Merklized data structure) is considered canonical at any given point in time.
See the following sections for more details on specific components and their implementations.