Technical description of the platform
The Waves Enterprise platform is based in the distributed ledger technology and built as a fractal network that consists of two elements:
Master blockchain (Waves Enterprise Mainnet), which provides functioning of the overall network and acts as a global moderator for the basic network, as well as for many user networks;
individual sidechains created for definite business tasks.
Interaction between the master blockchain and sidechains is provided by the anchoring mechanism which broadcasts cryptographic proofs of transaction into the basic blockchain network. The anchoring mechanism allows to freely configure sidechains and use any consensus algorithm without loss of connection with the master blockchain. For instance, the Waves Enterprise master blockchain is based on the Proof-of-Stake consensus algorithm, because it is supported by independent participants. At the same time, corporate sidechains that do not have to stimulate miners with transaction fees can use the Proof-of-Authority or Crash-Fault-Tolerance algorithms.
This two-part arrangement allows to optimize the network for high processing loads, increase information transmission rate, as well as to enhance concurrence and availability of data. Usage of the anchoring mechanism increases trust to data in sidechains, because they are validated in the master blockchain.
Platform architecture scheme:
Arrangement of nodes and auxiliary services¶
Each blockchain node is an independent network participant which has the software required for work with the network. Every node consists of the following components:
Consensus services and cryptolibraries – components that are responsible for achievement of consensus between nodes and cryptographic algorithms.
Node API – gRPC and REST API interfaces of the node that allow to receive data from the blockchain, sign and broadcast transactions, send confidential data, create and call smart contracts, etc.
Unconfirmed transaction pool (UTX pool) – the component providing storage of unconfirmed transactions before their validation and broadcasting into the blockchain.
Miner – the component responsible for creation of transaction blocks for adding into the blockchain, as well as for interaction with smart contracts.
Key store – storage for key pairs of a node and users. All the keys are protected with the password.
Network layer – the logic layer that provides interaction of nodes at the applied level via the network protocol over the TCP.
Node storage – the system component based on RocksDB that provides storage of ‘key-value’ pairs for the entire set of confirmed transactions and blocks, as well as for the current blockchain state.
Validation logic – the logic layer containing the rules of transaction validation, for instance, basic signature check and advanced check according to the script.
Configuration – node configuration parameters that are set in the node-name.conf file.
Every node also contains a set of additional services:
Authorization service – the service providing authorization of all components.
Data crawler – the service for data extraction from a node and uploading of extracted data into the data service.
Generator – the service for generation of key pairs for new accounts and creating of the
Monitoring service – the external service using the InfluxDB database for storage of time sequences with application data and metrics.
Installation of auxiliary services is not required, but they alleviate interaction of users with the blockchain network. Apart of ready-made services and depending on tasks, integration adapters can be developed for transit of transactions from client applications into the blockchain network, as well as for data exchange between a node and applied services of a customer.
Scheme of node and auxiliary services arrangement: