Introduction to BlockApps STRATO

BlockApps STRATO is a rapid deployment blockchain solution built for businesses:

  • Integrate - Easily integrate with legacy web applications and databases using a REST API
  • Manage - Authenticate access to your APIs and protect your critical assets
  • Search - Search millions of smart contracts in seconds using normal easy-to-learn SQL queries
  • Protect - Transact privately with network participants and configure user visibility
  • Upload - Upload existing business data to the blockchain to bootstrap a new project
  • Deploy - Host a STRATO node on Microsoft Azure, AWS, or Google Cloud Platform

Platform Overview

BlockApps has created an implementation of the Enterprise Ethereum protocol, along with tooling and APIs to interact with this implementation. Together, these components form the STRATO platform.

Component Stack

Virtual Machine

The default virtual machine to execute smart contract logic is the Ethereum VM (EVM) which executes smart contracts based on methodology described in the Ethereum Yellow Paper. These smart contracts are written in the Solidity programming language. Solidity smart contracts are then compiled to byte code that can be executed by the EVM using a Solidity compiler. For this reason, an alternative virtual machine that can be configured for the blockchain is the SolidVM, a Solidity-based virtual machine.

P2P

The P2P (or peer to peer) component interacts with other STRATO nodes, communicating block and transaction information with other participants. The methodology that the P2P component will used for this communication will vary based on the consensus mechanism that is selected for the network. The current consensus methods available are the Proof of Work method or the PBFT (Practical Byzantine Fault Tolerant) method. For complex smart contracts, we recommend the use of the PBFT consensus mechanism for its transaction and processing speed.

Kafka

Kafka is an internal messaging bus used by various components of the STRATO platform.

REST APIs

Various APIs enable developers to interact with STRATO platform, allowing them to perform a variety of tasks such as:

  • Query Blocks and Transactions
  • Submit Transactions
  • User Key Management
  • Contract Metadata Management
  • Compile Smart Contracts
  • Get real-time analytics

Analytics DB

Information from the blockchain is indexed into a relational store for easy retrieval and querying

Management Dashboards

The STRATO Management dashboard ("SMD") is a UI for visually interacting with and managing the STRATO node. A related STRATO Central Monitoring Dashboard ("CMD") is a network-level UI tool that can be enabled to facilitate the monitoring and management of a multinode network. The SMD and CMD offer complementary blockchain management tools.

API Overview

Throughout our documentation, you will sometimes see references to different API services. While we are in the process of reorganizing API documentation around functionality rather than backend service, you will generally find that there are groupings of service APIs, which follow the below organinzation:

STRATO API

The STRATO API endpoints are used to interact with on chain data. This information includes:

  • Submitting signed transactions
  • Querying transactions
  • Checking transactionResult
  • Querying block information
  • Querying account information
  • Querying account storage
  • Fauceting accounts

Bloc API

The Bloc API endpoints manage all off chain data required to interact with the STRATO blockchain. This is the API you will spend the most time working with for a typical application. The Bloc API manages:

  • Private keys encrypted with the user's password
  • Contract Metadata
  • Transaction status tracking
  • Contract State retrieval

Cirrus

The Cirrus API endpoints allow users to query smart contracts just like they would in a regualar database. Cirrus search queries are formed using PostgREST conventions, which make it easy to run custom searches of smart contracts:

  • Find all contracts called Escrow
  • Find all contracts where Bob is the sender
  • Find all contracts with a balance of 1000 Ether or less

Apex

The Apex API endpoints serve as (1) a file sharing system between nodes, and (2) a backend to the STRATO Management Dashboard. You can use the Apex API in order to:

  • See whether a node is online
  • Get the network stats for a node
  • Upload a dApp