The Waves Enterprise platform is based on distributed ledger technology and represents a fractal network consisting of:
A master blockchain, Waves Enterprise Mainnet, which secures the operation of the network, serving as a global arbiter and a reference chain, and
A number of custom, separated sidechains that can be tuned easily according to specific business needs.
This construction principle optimizes the platform for higher speeds, large volumes of calculations, consistency and availability of data, and resistance to malicious changes in information.
The Anchoring mechanism uses the strengths of both consensus algorithms to create a net configuration. The main Waves Enterprise blockchain is based on the Proof-of-Stake consensus algorithm, which is supported by independent participants. At the same time, enterprise sidechains do not need to interact with miners and can use the Proof-of-Authority algorithm. Sidechains are embedded in the main blockchain using the anchoring mechanism, placing cryptographic proof of transactions in the main blockchain network.
Node architecture and additional services¶
The node component is mandatory, since it ensures the functioning of and interaction within the blockchain network. Other components serve auxiliary purposes that significantly simplify user interaction with the blockchain platform. The Waves Enterprise Blockchain Platform instance consists of five basic modules and several additional microservices. The main modules include:
Node - The main software, which is installed on the computer and works directly with the blockchain.
Waves Enterprise corporate client – A web-application that provides contemporary and multifunctional user interface for the blockchain platform.
Smart-contracts module – An environment for deploying and executing of Turing-complete Docker smart-contracts. Docker containers with smart-contracts are deployed on remote virtual machine for additional security.
Data service – A service that aggregates data from the blockchain in RDBMS (PostrgreSQL) storage and provides full-text search on any information within the blockchain via the RESTfull web service.
Private store - this component provides private information processing and storing mechanisms, along with an encrypted peer-to-peer communication service. Private storage is implemented using PostgreSQL DB or S3 Minio.
Additional services include:
Authorization service – A single authorization service for system components.
Data crawler - A service that extracts data from blockchain node and loads it into data-service component.
Generator - A service that generates key pairs for new accounts and creates
Custom microservice plugins - A set of plugins for processing and customizing data transferred to and from external systems.
Monitoring Service – An external monitoring service that uses an open-source database (InfluxDB) to store time rows with application data and metrics. The database is installed by the client separately.
The node includes the following internal components:
Node API – A REST API node interface which can receive data from the blockchain, sign and send transactions, send private data, and create and call smart contracts.
Node storage – A system component that provides key-value storage (based on LevelDB) for a full set of validated and confirmed transactions and blocks, same as the current state of objects.
Unconfirmed transaction pool – A component that provides a temporary storage and queue service for validated transactions until they are included into a block.
Consensus and cryptolibraries – Configurable and customizable logical components responsible for achieving agreement between nodes and cryptographic algorithms.
Key store - A component used to store key pairs for the node itself and node users (optional). All keys are secured by passwords.
Miner – A component responsible for creating transaction blocks that are recorded in the blockchain. The miner component is in charge of interaction with Docker-smart contracts.
Network layer – A logic layer that provides interaction between nodes on the application level via network protocol over the TCP.
Validation logic – A logic layer containing such transaction verification rules as basic sign verification and advanced scripted verification.
Config – A set of node configuration parameters specified in the
Monitoring Service – An external monitoring service that uses an open-source database (InfluxDB) to store time rows with application data and metrics. The InfluxDB database is installed by the client separately.