OlaOS Architecture

Olaos implements multiple services such as JONS-RPC server, data fetcher, sequencer, healthcheck, etc.

The entire project is divided into the following crates:

  • basic-types

    • Some basic types used in the project are defined here.

    • This crate will not depend on other crates in the project.

  • config

    • The configuration parameters used in the project are defined here.

    • /configuration

      • All configuration files are here, with a lower priority than environment variables.

  • contracts

    • The system contract definition used in OlaOS and loading logic are here.

  • dal

    • Data Access Layer in OlaOS.

    • Encapsulates the curl operations of the underlying database.

  • etc

    • The currently used environment variables and compiled system contract code are here.

  • health_check

    • Check whether each module is working properly.

  • logs

    • Collect system logs when running.

  • mempool

    • Implemented a mempool for incoming user transactions, from which the sequencer will select transactions to execute and generate blocks.

  • ola_core

    • The core module of OlaOS, including the implementation of a JSON-RPC server, the core logic of sequencer and the abstract logic of mempool.

  • state

    • Providing an in-memory database through the underlying rocksdb, which is used for OlaVM to read necessary information of current state.

  • storage

    • Implemented storage read and write operations for OlaVM.

  • types

    • Implemented most of OlaOS's data types, including transactions, blocks, etc.

Last updated