Architecture Overview

We started with the idea of making software that is modular.

This is present across the Ting Application Chain. Below is a brief overview of the built architecture and its layering.

Ting Application Chain Layering

(Reference: https://docs.tingchain.org/ting-application-chain-ecosystem/developers/architecture/architecture-overview#zchains-layering)

Libp2p

(Reference: https://docs.tingchain.org/ting-application-chain-ecosystem/developers/architecture/architecture-overview#libp2p)

It all starts at the base networking layer, which utilizes libp2p. We decided to go with this technology because it fits into the designing philosophies of Ting Application Chain. Libp2p is:

  • Modular

  • Extensible

  • Fast

Most importantly, it provides a great foundation for more advanced features, which we'll cover later on.

Synchronization & Consensus

(Reference: https://docs.tingchain.org/ting-application-chain-ecosystem/developers/architecture/architecture-overview#synchronization-and-consensus)

The separation of the synchronization and consensus protocols allows for modularity and implementation of custom sync and consensus mechanisms—depending on how the client is being run.

TingChain is designed to offer off-the-shelf pluggable consensus algorithms.

The current list of supported consensus algorithms:

  • IBFT PoS

Blockchain

(Reference: https://docs.tingchain.org/ting-application-chain-ecosystem/developers/architecture/architecture-overview#blockchain)

The Blockchain layer is the central layer that coordinates everything in the Ting Application Chain system. It is covered in depth in the corresponding Modules section.

State

(Reference: https://docs.tingchain.org/ting-application-chain-ecosystem/developers/architecture/architecture-overview#state)

The State inner layer contains state transition logic. It deals with how the state changes when a new block is included. It is covered in depth in the corresponding Modules section.

JSON RPC

(Reference: https://docs.tingchain.org/ting-application-chain-ecosystem/developers/architecture/architecture-overview#json-rpc)

The JSON RPC layer is an API layer that dApp developers use to interact with the blockchain. It is covered in depth in the corresponding Modules section.

TxPool

(Reference: https://docs.tingchain.org/ting-application-chain-ecosystem/developers/architecture/architecture-overview#txpool)

The TxPool layer represents the transaction pool, and it is closely linked with other modules in the system, as transactions can be added from multiple entry points.

GRPC

(Reference: https://docs.tingchain.org/ting-application-chain-ecosystem/developers/architecture/architecture-overview#grpc)

The GRPC layer is vital for operator interactions. Through it, node operators can easily interact with the client, providing an enjoyable UX.