Smilo Blockchain architecture diagram
Smilo Cloud Diagram
The underlying platform of the Smilo blockchain independently developed by Smilo Foundation. The full tech stack explained in a Cloud Diagram.
P2P network system
- The Smilo platform consists of a verification node (VP) and a non-authentication node (NVP) ;
- Verify that the nodes communicate with each other through the libp2p peer-to-peer modular networking stack used by IPFS and Ethereum.
- The Smilo blockchain also provides a hot standby switching mechanism. When a VP node fails, the NVP node can be automatically upgraded to a VP node.
Consensus algorithm BFT+
The Smilo blockchain uses a pluggable consensus mechanism to provide optimized consensus algorithms for different application scenarios of the blockchain .
At present BFT+ Phase 1, the Smilo Consensus Module implements the improved version of the BFT algorithm IBFT (Istanbul Byzantine Fault Tolerant), which is inspired by Castro-Liskov 99 paper, and improves the system under the premise of ensuring the strong consistency of the BFT system. Overall transaction throughput and system stability. This work is also inspired by Clique POA, Hyperledger’s SBFT, Tendermint, HydraChain, and NCCU BFT.
BFT+ is a high-performance robust consensus algorithm that can stably achieve TPS of 3000–5000, and can control the transaction execution time to about 1s, providing a high-performance solution for commercial blockchain applications and expanding the adoption of blockchain by society.
Smilo Blockchain uses the open source storage system;
· Smilo blockchain uses LevelDB, some of the reasons behind this choice are:
- In process database (i.e. I don’t need to run any additional software)
- Native implementation in Golang (i.e. cross platform to everything Go supports)
- Key/value store (i.e. values are arbitrary binary blobs, no schema constraints)
- Modern data storage (i.e. multiple layers on disk, organized in the background)
- Proven track record (i.e. many companies and other databases build on top)
Smart contract engine
The Smilo EVM is a universal framework for pluggable smart contract engines independently developed by the Ethereum Foundation. It allows different smart contract execution engines to access. Currently, it implements EVM compatible with Ethereum’s Solidity language and EWASM, which supports the WebAssembly. WebAssembly is a proposed redesign of the Ethereum smart contract execution layer using a deterministic subset of WebAssembly. The EWASM will be continuously integrated.
Multi-level encryption mechanism
The Smilo blockhain uses a plug-gable encryption mechanism to encrypt different data, users, and communication connections involved in the complete life cycle of the service. The multi-level encryption ensures the security of the platform data.
- Data Security : Implement a secure hash algorithm to generate small, irreversible digital fingerprints for messages.
- Identity Security : Implement a digital signature algorithm to sign transactions and prevent transaction data from being tampered with.
- Communication security : Implement key agreement technology to encrypt the transport layer data, and ensure that both parties can communicate without sharing any secrets.
- Institutional Security : Implement CA-based access control and access mechanisms.
Privacy protection mechanism
In the original blockchain system, all nodes can access the data on the chain. In most business applications, the information on the chain needs to be protected. The Smilo platform provides the following privacy protection mechanism.
- Namespace : Smilo’s design partition security mechanism based on Namespace is maintained by partitioning of blockchain books. The partition consensus of transactions realizes the isolation of storage and execution space of sensitive (transaction) data. The Namespace mechanism allows partial blockchain nodes to create Namespaces that belong to them. Data transactions between these Namespace members and storage are not visible to nodes in other Namespaces.
- Homomorphic Encryption : Smilo uses the idea of homomorphic encryption to encrypt the transaction amount and account balance in the block. This feature of the homomorphic encryption algorithm allows the verification node to verify the validity of the transaction without knowing the balance of the account and the amount of the transaction, and records the verified transaction on the blockchain.
- Contract Access Control : Contract coder can customize access to contract functions in contracts. The contract coder can set the privilege control for some high-privilege functions in the contract, so that the function can only be called by the caller of the fixed address, thus implementing access control.
- Privacy transactions : Smilo Blackbox can support the privacy protection of transaction granularity. When sending a transaction, the relevant party of the transaction is specified. The transaction details are only stored in the relevant party. The hash of the private transaction is stored after the consensus of the whole network, which ensures the privacy data. Effective isolation also verifies the authenticity of the privacy transaction.
Blockchain governance mechanism
- Autonomous Union (ACO, autonomous consortium organization): is an intelligent system to be deployed in the contract block chain through the autonomous organization, every member organization may submit proposals (such as system upgrades, node joins) to consider proposals ( Voting), ultimately deciding whether a proposal is passed or not.
- Rights management : Although the access mechanism of the private network can guarantee its security to a certain extent, in order to support the needs of more complex and complex business application scenarios, Smilo proposes a hierarchical rights management mechanism to further protect business privacy and security.
- Chain level administrator : Participate in blockchain level authority management, including node management, system upgrade, and contract upgrade permission control;
- Node administrator: participate in node level authority management, including node access authority control, SDK interface authority allocation Wait.
Message subscription mechanism
Smilo is implemented as a “shared state” blockchain, and its operation is achieved through continuous state transitions. Each time the state changes, a series of events will be generated as a sign of the state transition. Smilo provides two kinds of message subscription methods based on WebSocket and libp2p, so that external system can capture and monitor system and contract status changes. The types of events available for subscription include new block events, virtual machine log events (contract events), and systems. Abnormal events, etc.
Smilo regards the message subscription system as a message channel for smart contracts to communicate with the outside world. The contract coder can define a series of event types in the contract. When the contract performs the corresponding action, it can actively throw out the predefined virtual machine events to the outside world. In the event, the customized message content can be recorded, thereby realizing the message inter-communication under the chain .
Smilo has developed a comprehensive tool for managing and monitoring blockchain data.
- VulcanizeDB: Provides a service for contract data visualization. VulcanizeDB can import the information of the state variables of the contract in the blockchain into the relational database while the blockchain is running normally , making the contract state visible and monitorable.
- Data archiving(Freezer): Provides a data archiving method based on “state snapshot” to solve the problem of blockchain data storage, reduce the storage pressure of blockchain nodes and fast database content recovery.
- InfluxDB: InfluxDB is an open-source time series database developed by InfluxData. It is written in Go and optimized for fast, high-availability storage and retrieval of time series data in fields such as operations monitoring, application metrics, Internet of Things sensor data, and real-time analytics.
- GraphQL: GraphQL is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. GraphQL was developed internally by Facebook in 2012 before being publicly released in 2015.
Be part of the Smilo hybrid blockchain movement!