Cardano Architecture - Different Components
Last updated
Last updated
The cardano node is the heart of the system. We will look into details of Cardano Node in next chapter
The main components of interatcions are
cardano-node:
The cardano-node is the top level for the node and aggregates the other components from other packages: consensus, ledger and networking, with configuration, CLI, logging and monitoring.
The node no longer incorporates wallet or explorer functionality. The wallet backend and explorer backend are separate components that run in separate external processes that communicate with the node via local IPC.
cardano-cli:
The command line interface (CLI) provides a collection of tools for generating keys, constructing transactions, creating certificates, and performing other important tasks. It is organized in a hierarchy of subcommands, and each level comes with its own built-in documentation of command syntax and options.
cardano-wallet:
Cardano Wallet helps you manage your Ada. You can use it to send and receive payments on the Cardano blockchain. It provides Application Programming Interface (API) and command-line interface (CLI) for working with your wallet.
Cardano-db-sync
The purpose of Cardano DB Sync is to follow the Cardano chain and take information from the chain and an internally maintained copy of ledger state. Data is then extracted from the chain and inserted into a PostgreSQL database. SQL queries can then be written directly against the database schema or as queries embedded in any language with libraries for interacting with an SQL database.
The PostgreSQL database is designed to be accessed in a read-only fashion from other applications. The database schema is highly normalised which helps prevent data inconsistencies (specifically with the use of foreign keys from one table to another). More user friendly database queries can be implemented using Postgres Views to implement joins between tables.
SMASH
Cardano Stakepool Metadata Aggregation Server (SMASH). This is now available in db-sync
Submit-API
The cardano-submit-api is a program that provides a web API allowing transactions (generated by external wallet or SDK ) to be posted to the Cardano blockchain.
Ogmios:
Ogmios is a Haskell tool with a Typescript API to query the cardano-node state such as the current utxo set or the current reward balance. The focus of the project is more towards providing a friendly API to the functionality of the cardano-node. Ogmios opens websocket through which clients can interact
Oura :
A Rust tool fetching data from the node, processing it according to rules and filters, and then passing it along to a sink which handles the data. More specifically, Oura itself does not store data anywhere. It simply makes data available to you to decide how to process it.
Kupo:
It is a Haskell tool for fetching data from the node and processing it according to rules in filters. It synchronizes data from the blockchain according to patterns matching addresses present in transaction outputs and builds a lookup table from matches to their associated output references, values and datum hashes.