Today, we’re excited to welcome a new project to Hyperledger, Cello. Cello is a toolkit for deploying a Blockchain-as-a-Service, that reduces the effort required for creating, managing, and terminating blockchains. Hyperledger serves as an “umbrella” for software developer communities building open source blockchain and related technologies, and as such, Cello joins many other efforts including Fabric, Sawtooth Lake, Blockchain Explorer, and Iroha.
What is Cello?
Cello aims to bring the on-demand “as-a-service” deployment model to the blockchain ecosystem, to provide a multi-tenant chain service efficiently and automatically, on top of various infrastructure, e.g., baremetal, virtual machine, and more container platforms.
With Cello, operators can create and manage multiple blockchains in a pool through a dashboard, at the same time users (typically the chaincode developers) can obtain blockchains instantly with a single request, as illustrated in the figure below.
Cello will plan to support existing and further Hyperledger blockchain platforms including Fabric, Sawtooth Lake, Iroha, and more. We have been evaluating Cello for several environments, e.g., Cello in a POWER-based Cloud has supported thousands of chains for nearly a year.
“Cello will definitely welcome potential collaborations with other important projects, to achieve another open-source success”, said by the initial project proposer, Baohua Yang.
The Hyperledger community and by extension, The Linux Foundation, has initialized several projects (e.g., Fabric, Sawtooth Lake and Iroha) for the Decentralized Ledger Technology (DLT) ecosystems. Those projects provide various ledger implementations targeting performance, stability, permissions, scalability, etc. Cello hopes to help build the community by providing the blockchain service functionality and attracting more contributors to Hyperledger.
Today, to boot a chain, developers need to adopt the installation scripts, e.g., docker-compose scripts in Fabric. If multiple tenants requires to obtain separate chains at the same time, they have to modify the scripts carefully and create these chains manually. This procedure is time consuming, and even worse, leads to possible misconfigurations.
Take Hyperledger Fabric, for example, currently, the solution to create a Hyperledger Fabric chain includes:
- Manual installation of each peer node on different servers. This requires much effort and is error prone.
- Setup scripts (e.g., Docker-Compose) to start a fabric network. This requires a specific server configuration, which makes it hard to share resources and dynamically create multiple chains.
Cello solves these problems in a different way, by maintaining a pool of chains automatically. Users will get chains with various configurations instantly, while operators can dynamically scale the physical resources through a dashboard.
The Hyperledger community now has projects of SDK, blockchain-explorer and chaintool. Cello is a great complement. For example, Cello can boot a blockchain with blockchain-explorer as the dashboard, with SDK and chaintool as the interface to operate chaincode.
Cello leverages the Docker APIs to manage the blockchain clusters in remote hosts, including physical servers and virtual machines. Hence Cello can be easily deployed to Cloud environments that provide virtual machines on demand.
The design architecture is as follows:
- Orchestration Engine: Core to handle resource management and workload scheduling, which is mainly implemented in Python;
- Restful Server: Operational interface, which is implemented with Python;
- Drivers: Currently we utilize Docker API lib, to support native host and Swarm cluster The driver layer is designed to be pluggable to support more types in future;
- Tools: We have also designed several tools to handle tasks like monitoring and logging, which are mainly implemented in Golang. However, the framework is pluggable, hence we can also integrate existing open-source tools.
Who will work on Cello?
Currently, Baohua Yang and Haitao Yue from IBM Research are committed part-time to developing and maintaining the project. There are also sponsors from Soramitsu, Huawei and Intel.
Learn more about Cello
Cello is hosted at github. We will follow the Hyperledger community’s guide, all information is open at the wikipage at https://wiki.hyperledger.org/projects/cello.md. Please connect up directly with the Cello team. Their contact details can be found at https://wiki.hyperledger.or