Nutbaas: a Blockchain-As-A-Service Platform
Total Page:16
File Type:pdf, Size:1020Kb
Received August 11, 2019, accepted September 10, 2019, date of publication September 17, 2019, date of current version September 30, 2019. Digital Object Identifier 10.1109/ACCESS.2019.2941905 NutBaaS: A Blockchain-as-a-Service Platform WEILIN ZHENG 1,2, ZIBIN ZHENG 1,2, XIANGPING CHEN 1,2, KEMIAN DAI 3, PEISHAN LI 3, AND RENFEI CHEN 3 1School of Data and Computer Science, Sun Yat-sen University, Guangzhou 510006, China 2Guangdong Key Laboratory for Big Data Analysis and Simulation of Public Opinion, Sun Yat-sen University, Guangzhou 510006, China 3Department of Blockchain Development, Badou Financial Blockchain Technology Company Ltd., Guangzhou 510600, China Corresponding author: Zibin Zheng ([email protected]) This work was supported in part by the National Key Research and Development Program under Grant 2016YFB1000101, in part by the National Natural Science Foundation of China under Grant 61722214 and Grant U1811462, in part by the Guangdong Province Universities and Colleges Pearl River Scholar Funded Scheme, in 2016, and in part by the Pearl River S&T Nova Program of Guangzhou under Grant 201710010046. ABSTRACT Blockchain, originated from Bitcoin system, has drawn intense attention from the academic community because of its decentralization, persistency, anonymity and auditability. In the past decade, the blockchain technology has evolved and became viable for various applications beyond the domain of finance. However, due to the complexity of blockchain technology, it is usually difficult and costly for most developers or teams to build, maintain and monitor a blockchain network that supports their applications. Most common developers or teams are unable to ensure the reliability and security of the blockchain system, which to a certain extent affects the quality of their applications. In this paper, we develop a BaaS platform called NutBaaS, which provides blockchain service over cloud computing environments, such as network deployment and system monitoring, smart contracts analysis and testing. Based on these services, developers can focus on the business code to explore how to apply blockchain technology more appropriately to their business scenarios, without bothering to maintain and monitor the system. INDEX TERMS Blockchain, blockchain-as-a-service, cloud computing, smart contracts. I. INTRODUCTION on the design of business code. However, the work involving Blockchain technology, known as the foundation of Bit- these underlying technologies is difficult for most developers coin [1], has been used in various fields with its rapid develop- or teams. ment, resulting in the dawn of a new economy [2]. Recently, For example, as shown in the Figure1, a Hyperledger Fab- a wide range of blockchain-based applications and services ric [3] network running Kafka consensus algorithm consists have emerged. However, most developers still lack a con- of three organization, one orderer cluster as well as one Kafka venient and effective way to deploy, maintain and monitor cluster which is supported by Zookeeper [4]. Therefore, their applications, and thus they cannot ensure the reliability in order to build this network to support your application, you and security of the applications. There are many reasons for should learn how to translate this network topology into a file this, but the most important one is the complexity of the that can be understood by docker-compose (either in JSON blockchain technology itself. When developers are design- or YAML format). Besides, you need to be skilled in docker ing business code, they are unaware of the impact from the and docker-compose, which are used to startup the network complex underlying system, so they cannot take precautions through the file mentioned above. During the startup process, to deal with future errors. Besides, due to a lack of profes- there is a high probability that a few errors will occur, such as sional knowledge, common developers or teams often fail to the mismatch between docker-image version and source code monitor the running condition of their systems and cannot version, Kafka service unavailable and so on. Only if you are accordingly identify and take appropriate measures to fix equipped with all or more of the above knowledge can you the system errors in time. In order to solve these problems, deal with these errors. Furthermore, aimed to monitor the net- developers often need to devote a lot of energy to learning the work for more details about each stage of transactions, such as underlying technology of the blockchain, rather than focusing the duration of the endorsement and transaction commitment, you need to have an intimate knowledge of the principle of The associate editor coordinating the review of this manuscript and Kafka consensus algorithm [5] and even modify the source approving it for publication was Yassine Maleh. code to change its underlying architecture. In addition to the This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see http://creativecommons.org/licenses/by/4.0/ 134422 VOLUME 7, 2019 W. Zheng et al.: NutBaaS: Blockchain-as-a-Service Platform and our major strengths compared with other platforms, while Section III introduces the background and preliminaries of the work. The structure and the technological innovation of NutBaaS will be highlighted in SectionIV and SectionV, respectively. Then, some key challenges for the future devel- opment of BaaS are discussed in SectionVI. Finally, we pro- vide a summary of this paper and some future plans in Section VII. II. RELATED WORKS AND OUR CONTRIBUTION Since the concept of BaaS was put forward, many companies in recent years have rushed to release BaaS platforms offering services for blockchain manipulations and building, shipping and running the business logic over blockchain networks. The well-known platforms include but not limited to IBM Blockchain [6], Microsoft Azure Blockchain [7], Ethereum FIGURE 1. A blockchain network based on hyperledger fabric. Blockchain as a Service on Azure [8], AWS Blockchain [9] and so on. above issues, there are still many issues to be considered after In November 2015, Microsoft announced that it would successful deployment, such as automatic recovery after sys- provide EBaaS (Ethereum Blockchain as a Service) services tem downtime, network environment updating, etc. In short, on Azure cloud platform, where developers can quickly create it is difficult and costly for common developers and teams to Ethereum blockchain environments in the easiest and most deploy, maintain and monitor a blockchain network. efficient way. The platform was officially opened to the pub- Based on the problems mentioned above, BaaS lic in August 2016. In February 2016, IBM announced that (Blockchain-as-a-Service) has been proposed in recent years. it would provide blockchain as a service based on Hyper- By embedding the blockchain framework into the cloud ledger Fabric. IBM Blockchain is designed to provide users computing platform, a BaaS platform can leverage the with an end-to-end blockchain platform solution that quickly deployment and management advantages of cloud service builds a highly available blockchain network and provides infrastructure to provide developers with convenient, high- blockchain security services. In May of the same year, AWS performance blockchain ecosystems and related services. (Amazon Web Services) partnered with the investment com- Through these basic cloud services, developers can quickly pany DCG (Digital Currency Group) to provide a blockchain- startup a blockchain network to support their application as-a-service environment for companies invested by DCG. ignoring the complexity of the underlying architecture. Even though these platforms have brought many benefits to Besides, some more advanced services such as those related developers and the whole blockchain community, there are to security and performance, have been gradually introduced still many deficiencies that need to be improved urgently. into BaaS platform to provide developers with a more com- In general, every BaaS platform will only choose one plete ecosystem. blockchain type like Hyperledger Fabric, Ethereum or EOS Nowadays, many companies, such as IBM and Microsoft, as a foundation of its underlying architecture. For example, have released their BaaS platforms and achieved good out- IBM blockchain uses Hyperledger Fabric, while Ethereum comes. Their contribution is mainly to reduce the difficulty Blockchain as a Service on Azure uses Ethereum. However, of deployment and development, but the services provided by in various business scenarios, some paying more attention to these platforms still have many shortcomings. Especially in the token in the network would choose Ethereum while others system monitoring and support of underlying system types, requiring trading performance would choose Hyperledger. these platforms have much to be improved. In the paper, Besides, based on the consideration of file storage, some sce- we develop a BaaS platform called NutBaaS (which means narios may have to choose Filecoin [10], which is considered providing developers with a `hard' barrier like the nut shell as a decentralized storage network based on blockchain and to protect their blockchain applications) to improve the cur- IPFS [11]. It can be seen that the existing BaaS platforms rent BaaS platforms, providing a more convenient and safer have relatively monotonous support for blockchain types. development environment for developers. Many basic ser-