Skip to content

Latest commit

 

History

History

vchain-architecture

Virtual Chain (ONG) Architecture

V2 release

 

Terminology

Virtual chains are often referred to as "ONG" which is the codename for the Orbs-network-go reference implementation for a single virtual chain instance.

Definitions of terms like node, service, committee. Available here.

 

ONG System Overview

alt text

Overview of a single virtual chain instance with brief introduction to all services is available here.

 

High level flows

  • System Init

    Node and all services init (fresh start or after a restart).

  • Run Query

    Client calls a read-only method of a service (not under consensus).

  • Send Transaction

    Client sends a transaction that may write to state of a service (under consensus).

  • Get Transaction Status

    Client queries regarding the status and receipt of an old transaction.

  • Block Creation

    The main continuous flow of consensus where blocks are created from pooled transactions.

  • Inter Node Sync

    Block synchronization between nodes.

  • Intra Node Sync

    Block synchronization between services inside a node.

 

Services

  • Public API

    Provides external public gateway interface (like JSON over HTTP) for clients.

  • Transaction Pool

    Holds pending and committed transactions that are propagated between nodes. Helps avoid transaction duplication.

  • Gossip

    Connects different nodes over the network with efficient message broadcast and unicast.

  • Consensus Algo

    Pluggable consensus algorithm (multiple algorithms supported side by side).

  • Consensus Context

    Provides the system context for the consensus algorithm and deals with the actual content of blocks.

  • Virtual Machine

    Executes service methods (smart contracts) using various processors and produces state difference as a result.

  • Processor

    Stateless execution engine for smart contract methods in an isolated environment (multiple languages supported).

  • Block Storage

    Holds the long term journal of all confirmed blocks (the actual chain of blocks), performs block sync between nodes.

  • State Storage

    Holds the latest state under consensus meaning all of the state variables for all deployed services in a virtual chain.

  • Cross-chain Connector

    Runs nodes for other blockchains like Ethereum and provides read access to them.