-
Notifications
You must be signed in to change notification settings - Fork 29
HowItWorks
Davide Miceli edited this page Jan 28, 2019
·
1 revision
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 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 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.
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 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.