Skip to content

HowItWorks

Davide Miceli edited this page Jan 28, 2019 · 1 revision

How it works

Participants

Every participant is a network's node that is defined by:

  • Blockchain (the identifier of the blockchain).
  • Organization (a company, society, club, group, etc., or just an arbitrary identifier to cluster different peers).
  • Role (the role a node occupies in the network).

Currently, there are three types of peer node:

  • Kafka peers.
  • Chainode peers.
  • Storage peers.
Kafka peers

Kafka peers are mainly communication nodes. There can only be one Kafka cluster for every single blockchain network.

A Kafka peer tasks are:

  • Enable communications between chainode peers.
  • Keep order of emitted blocks.
Chainode peers

Chainode peers are simple chainode instances that propose, receive, and validate new blocks.

A chainode peer tasks are:

  • propose new transactions (generate and send new blocks to the Kafka peers).
  • validate each block it receives from the Kafka peers.
  • communicate with storage peers:
    • to add new validated blocks to the ledger.
    • to retrieve ledger's blocks.
Storage peers

The storage peers are distributed database clusters (Couchbase cluster) that holds the ledger.

A storage peer tasks are:

  • Keep a local immutable copy of the shared blocks' ledger.

The network ledger flow

The network steps are the followings:

  • A transaction is sent as a new block by a Chainode peer via SDK, REST API, or web console.
  • The proposed new block is received by the Kafka peer and placed on the pending topics.
  • The other Chainode peers receive the new block, validate it checking if hash is correct, and send the validated block to the Storage peers.
  • The Storage peers receive the new block and store it.
Clone this wiki locally