# The IBAX Network

In this section, we will brief you how to use IBAX.

If you are interested in the development, use or management of applications in IBAX, then you may not need to understand it at all.

In IBAX, the blockchain and the blockchain network are hidden from ECOLIB members, administrators, and application developers. IBAX offers RESTful API for all user groups, which provide a tamper-proof and distributed access to the global state of the blockchain.

# Application developers

In technical terms, the global state is a set of data, which is implemented via IBAX's database. From the perspective of application developers, an application interacts with the database by querying, inserting and updating tables.

In IBAX, transactions are written into the blockchain by implementing various contracts. These transactions will call contract codes implemented by blockchain network nodes, which will update the global state (database) accordingly.

For application developers, a contract is a function that data will be written to the database when it is implemented. Pages are like scripts and the page code is a set of page template functions, some of these functions display page elements, while other data comes from the database. Application developers do not need to understand what are transactions, block generation and consensus algorithms, just use it.

# ECOLIB members

Applications written by developers run in an environment called ECOLIB. An application usually serves a specific purpose and complete various tasks together with several other applications.

A user must become a member of an ECOLIB if wants to access applications in it, and it can be a member of multiple different ECOLIBs at the same time.

ECOLIB members can view and modify the database from application pages, just like filling out forms, clicking buttons and navigating pages in a common web application.

# ECOLIB applications and platform applications

Applications may fall into ECOLIB applications and platform applications.

ECOLIB applications

An ECOLIB application implements certain unique functions or business processes of an ECOLIB, but it is only available in that ECOLIB. Platform applications

A platform application is applicable to all ECOLIBs. Any application could be developed as a platform application. IBAX developers would provide platform applications that support the core functions for ECOLIB governance, such as voting, notification, and ECOLIB member role management.

# Underlying model

Definition of layers

IBAX consists of several layers:

  • User interaction layer

    ECOLIB members interact with the application through pages and page elements.

  • Application layer

    Application developers interact with the global state (data tables) through contract codes and page codes.

  • Global state layer

    Update and synchronize the global state (database) based on operations written to the distributed ledger (blockchain)

  • Blockchain layer

    Update the distributed ledger with new blocks. Operations (transactions) saved in new blocks must be performed on the global state.

  • Node network layer

    It implemented the IBAX Network protocol, which distributes, verifies transactions and generates new blocks on the node network. Similarly, new blocks are distributed and verified by the node network.

    The distributed ledger of all nodes is kept in sync. If having conflicts in a node, the node will identify which blockchains are considered valid and invalid blockchains will be rolled back accordingly.

  • Transaction layer

    Transactions are the basis for generating blocks and blockchain protocols, and transactions themselves are the results of operations performed at the user interaction layer. Transactions are generated by Weaver.

    When a user or developer performs an operation such as clicking a button on a page or implement a contract from the code editor, Weaver will convert this operation into a transaction and send it to the network node connected to it.

Therefore, the flow of transactions is as follows:

  • A user operation in a user page will become a transaction;

  • The transaction is contained in a block;

  • The block is included in the blockchain;

  • The change of operation will cause the global state of the blockchain to change, and such operation will be applied to the database;

  • Any database change will be reflected in the application.

# Implementation

IBAX has two major components, i.e. server go-ibax (opens new window) and Weaver Source code (opens new window).

Weaver:

  • Providing the user pages;

  • Providing the IDE for application development;

  • Storing public keys of user accounts and perform authorization;

  • Requesting database data from application pages and display application pages to users;

  • Sending transactions to the server through REST APIs;

    In order to automatically create transactions against user operations, Weaver will convert such operations into transactions when application developers implement a contract from the IDE.

Server:

  • Keeping the global state (database) of the node;
  • Implementation of the blockchain protocol;
  • Implementation of contract codes in the IBAX Virtual Machine;
  • Implementation of page codes in the Template Engine;
  • Implementation of RESTful API.