FISCO BCOS is the first safe and controllable enterprise-level financial consortium blockchain platform open source by domestic enterprises. It is jointly created by the FISCO open source working group and officially launched in December 2017.
The community links multiple parties with open source. As of May 2020, more than 1000 enterprises and institutions and more than 10,000 community members have joined to build and co-governance, and developed into the largest and most active domestic consortium blockchain platform ecosystem. The underlying platform is highly available and easy to use after extensive application and practice. Hundreds of application projects are developed based on the FISCO BCOS underlying platform, and over 80 have been steadily operating in the production environment, covering cultural copyright, judicial services, government services, Internet of Things, finance, smart communities and other fields.
FISCO BCOS takes the actual needs of the consortium blockchain as a starting point, taking into account performance, security, maintainability, ease of use, and scalability, and supports multiple SDK, and provides visual middleware tools, greatly reducing the time to build chains, develop and deploy applications. In addition, FISCO BCOS passed the two evaluations of the Trusted Blockchain evaluation function and performance of the Information Communication Institute, and the single-chain TPS can reach 20,000.
|Architectural model||one-body, two-wing, multi-engine|
|Group architecture||Support dynamic expansion of multiple groups in the chain|
|AMDB||Support massive data storage|
|Parallel transaction processing||Support parallel execution of intra-block transactions|
|Node type||Consensus node, observation node|
|Peak TPS||20,000+ TPS (PBFT）|
|Transaction confirmation delay||Confirm in seconds|
|Recommended hardware configuration|
|CPU||2.4GHz * 8|
|Data structure||Chain structure, blocks are connected by hash|
|Whether to fork||No fork|
|Bookkeeping type||Account model (non-UTXO)|
|Consensus framework||Pluggable design|
|Storage design||Support KV and SQL|
|Storage engine type||Support leveldb, rocksdb, mysql|
|CRUD interface||Provide CRUD interface to access data on the chain|
|Node communication||P2P protocol|
|Client and node communication||JsonRPC, Channel protocol|
|Message subscription service||AMOP protocol|
|Contract engine||Support Solidity and precompiled contracts|
|Contract engine features||Turing complete, sandbox running|
|Version control||Support multi-version contracts based on CNS|
|Grayscale upgrade||Support multi-version contract coexistence, grayscale upgrade|
|Life cycle management||Support contract and account freezing and unfreezing|
|Cryptographic algorithms and protocols|
|OSCCA algorithm||Support feature|
|OSCCA SSL||Support feature|
|Symmetric encryption algorithm||AES、SM4|
|Asymmetric encryption algorithm||ECDSA、SM2|
|Asymmetric encryption elliptic curve||secp256k1、sm2p256v1|
|Storage security||Support encrypted data storage|
|Communication security||Support SSL|
|Access security||PKI-based identity authentication system|
|Certificate management||Support certificate issuance, revocation and renewal|
|Access control||Support fine-grained permission control|
|Physical isolation||Data isolation among groups|
|Privacy Protection Agreement||Support group signature, ring signature, homomorphic encryption|
|Scene privacy protection mechanism||Based on WeDPR, it supports scenarios such as hidden payment, anonymous voting, anonymous bidding, selective disclosure, etc.|
|SPV||Provide an interface to obtain SPV proof|
|Cross-chain protocol||Based on WeCross supports homogeneous and heterogeneous cross-chain|
|Contract development tools||WeBASE-IDE，ChainIDE|
|Development of chain building tools||build_chain|
|Contract deployment and testing tools||Console|
|Rapid component development||Spring-boot-starter|
|Performance measuring tool||SDK embedded performance testing tool, supports Caliper|
|Operation and maintenance support|
|Operation and maintenance chain building tools||Provide enterprise level consortium chain deployment tool|
|Visual data display||Blockchain browser|
|Visual node management||Provide node manager based on WeBASE|
|Dynamic management node||Supports dynamically adding, removing, and changing nodes|
|Dynamic configuration changes||Support dynamic change of system configuration|
|Data backup and recovery||Provide data export and recovery service components|
|Monitoring statistics||Output statistical logs and provide monitoring tools|
|Regulatory audit||Based on WeBASE, providing regulatory audit entrance|
In 2.0, FISCO BCOS innovatively proposed a “one-body, two-wing, multi-engine” architecture to achieve horizontal expansion of system throughput and greatly improve performance. It has industry in terms of security, operation and maintenance, ease of use, and scalability, and leading edge.
The ‘One-body’ refers to the group structure, supports the rapid formation of consortium blockchain, and allows companies to build chains as easily as chat groups. According to business scenarios and business relationships, enterprises can choose different groups to form data sharing and consensus of multiple different ledgers, thereby quickly enriching business scenarios, expanding business scale, and greatly simplifying the deployment and operation and maintenance costs of the chain.
The ‘two wings’ refer to supporting parallel computing models and distributed storage, both of which bring better scalability to the group architecture. The former changes the method of serial execution in the order of transactions in the block, and executes transactions in parallel based on DAG (directed acyclic graph), which greatly improves performance. The latter supports enterprises (nodes) to store data in remote distributed systems, overcoming many limitations of localized data storage.
‘Multi-engine’ is a summary of a series of functional features. For example, pre-compiled contracts can break through the performance bottleneck of EVM and achieve high-performance contracts; the console allows users to quickly master blockchain usage skills.
The above features all focus on solving the pain points of technology and experience, provide more tool support for development, operation and maintenance, governance and supervision, make the system process faster and have higher capacity, and make the application operating environment safer and more stable.
FISCO BCOS adopts high-throughput scalable multi-group architecture, which can dynamically manage multiple chains and groups to meet the expansion and isolation requirements of multiple business scenarios. Modules include:
- Consensus mechanism: Pluggable consensus mechanism, supporting PBFT, Raft and rPBFT consensus algorithms, low transaction confirmation delay, high throughput, and ultimate consistency. Among them, PBFT and rPBFT can solve Byzantine problems and have higher security.
- Storage: The storage of the world state is changed from the original MPT storage structure to distributed storage, avoids the problem of performance degradation caused by the rapid expansion of the world state. Introduces a pluggable storage engine, supports LevelDB, RocksDB, MySQL and other back-end storage, supports data expansion quickly and easily, and isolates calculation from data, reducing the impact of node failure on node data.
- Network: Support network compression, and implement a good distributed network distribution mechanism based on the idea of load balancing to minimize bandwidth overhead.
In order to improve system performance, FISCO BCOS optimizes transaction execution in terms of improving transaction execution efficiency and concurrency, so that transaction processing performance can reach more than 10,000 levels.
- Precompiled contract based on C++: The Precompiled contract written in C++ language is built into the blockchain platform, and the execution efficiency is higher.
- Transaction execution in parallel: Based on the DAG algorithm to build a transaction execution flow within a block based on the mutually exclusive relationship between transactions, maximizing parallel execution of transactions within a block.
Considering the high security requirements of the consortium blockchain platform, in addition to the TLS security protocol used for communication between nodes and between nodes and clients, FISCO BCOS also implements a complete set of security solutions:
- Network access mechanism: Restrict nodes from joining and exiting the alliance chain, and delete the malicious nodes of the specified group from the group, ensuring system security.
- Black and white list mechanism: Each group can only receive messages from the corresponding group to ensure the isolation of network communication between the groups; the CA blacklist mechanism can disconnect the network connection from the malicious node in time, ensuring the security of the system.
- Authority management mechanism: Based on distributed storage permission control mechanism, flexible and fine-grained control of permissions for external account deployment contracts and creation, insertion, deletion and update of user tables.
- Support OSCCA-approved algorithm: Support OSCCA-approved encryption, signature algorithm and OSCCA-approved SSL communication protocol.
- Disk encryption algorithm: Support the disk encryption algorithm to ensure the confidentiality of the data on the chain.
- Key management scheme: Based on the disk encryption algorithm, the KeyManager service is used to manage the node key, which is more secure.
- Homomorphic encryption、Group/Ring signature: Homomorphic encryption and group ring signature interfaces are provided on the chain to meet more business needs.
In the consortium blockchain platform, the operation and maintenance of the blockchain is crucial. FISCO BCOS provides a complete set of operation and maintenance deployment tools, and introduces contract naming service, data archiving and migration, contract lifecycle management to improve Operation and Management efficiency.
- Operation and Management deployment tool: Convenient tool for deploying, managing and monitoring multi-institution multi-group consortium blockchain, supporting multiple operations such as expanding nodes and expanding new groups.
- Contract naming service: Establish a mapping relationship between the contract address to the contract name and the contract version, so that the caller can easily call the contract on the chain by remembering the simple contract name.
- Data archiving, migration and export functions: Provide data export components, support on-chain data archiving, migration and export, increase the maintainability of on-chain data, and reduce the complexity of operation.
- Contract lifecycle management: Provide contract life cycle management function on the chain, which is convenient for the chain administrator to manage the contract on the chain.
Ease of use¶
FISCO BCOS introduces tools such as development and deployment tools, interactive console, blockchain browsers, etc. to improve the ease of use of the system and greatly reduce the time to build chains and deploy applications.
- Development and deployment tools
- Interactive command line tool console based on JavaSDK
- Interactive command line tool console based on Web3SDK
- Blockchain browser
Community development tools¶
Relying on the huge open source ecosystem, all partners in the community uphold the co-construction concept of “from developers, for developers”, On the bottom platform of FISCO BCOS, independently develop multiple development tools at hand and give back to the community to reduce the difficulty and cost of blockchain application development from different business levels. The following is a partial list, and more institutions or developers are welcome to feedback more useful tools to the community.
- Blockchain middleware platform WeBASE: For a variety of roles, such as developers and operators, and according to different scenarios, including development, debugging, deployment, audit, etc., to create a wealth of functional components and practical tools, providing a friendly and visual operating environment.
- Distributed identity solution WeIdentity: A distributed multi-center technology solution based on blockchain, providing a series of basic layer and application interfaces such as distributed entity identity identification and management, trusted data exchange protocol, etc., which can realize the data of entity objects (people or things) Security authorization and exchange.
- Distributed event-driven architecture WeEvent: Implemented a credible, reliable, and efficient cross-institutional and cross-platform event notification mechanism. Without changing the development language and access protocol of existing commercial systems, realize cross-institution and cross-platform event notification and processing.
- Cross-chain collaboration solution WeCross: Support cross-chain transaction transactions, meet the atomicity of cross-chain transactions, manage cross-chain transactions, support multi-party collaborative management, and avoid single-point risks.
- Scene-style privacy protection solution WeDPR: For hidden payment, anonymous voting, anonymous bidding and selective disclosure and other application solutions, provide an immediately available scenario-based privacy protection and efficient solutions to help various industries to explore data-related businesses legally and compliantly.
- ChainIDE: Provide smart contract cloud development tools to help developers save marginal costs and accelerate the launch of blockchain applications.
- FISCO BCOS Blockchain Toolbox: Work with IDEs such as WeBase/Remix/VSCode/ChainIDE to improve development experience and efficiency.