{"title":"Phoenix: A Live Upgradable Blockchain Client","authors":"Chenmin Wang;Peng Li;Xuepeng Fan;Zaiyang Tang;Yulong Zeng;Kouichi Sakurai","doi":"10.1109/TSUSC.2023.3282586","DOIUrl":null,"url":null,"abstract":"Blockchain is an important supporting technology for various sustainable systems. It relies on a number of distributed nodes running blockchain client software, which is responsible for some critical tasks, such as communicating with other nodes and generating new blocks. However, the quick evolution of blockchain technology brings crucial challenges to blockchain client design. After carefully examining existing blockchain client software, we have identified a critical weakness: Blockchain clients are weak in supporting live upgrades, resulting in a blockchain fork that incurs security concerns and risks. In this article, we propose Phoenix, a novel blockchain client design that is live upgradable. Phoenix uses blockchain service encapsulation to decouple blockchain services. Based on service encapsulation, we propose a live upgrade scheme that packs upgrade codes into blockchain transactions and uses a Just-In-Time engine to avoid service interruption. A parallel execution engine is developed to increase service efficiency. We evaluated Phoenix on a 51-node blockchain, and experimental results show that Phoenix outperforms existing solutions in overhead and upgrade latency.","PeriodicalId":13268,"journal":{"name":"IEEE Transactions on Sustainable Computing","volume":"8 4","pages":"703-714"},"PeriodicalIF":3.0000,"publicationDate":"2023-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE Transactions on Sustainable Computing","FirstCategoryId":"94","ListUrlMain":"https://ieeexplore.ieee.org/document/10143679/","RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, HARDWARE & ARCHITECTURE","Score":null,"Total":0}
引用次数: 0
Abstract
Blockchain is an important supporting technology for various sustainable systems. It relies on a number of distributed nodes running blockchain client software, which is responsible for some critical tasks, such as communicating with other nodes and generating new blocks. However, the quick evolution of blockchain technology brings crucial challenges to blockchain client design. After carefully examining existing blockchain client software, we have identified a critical weakness: Blockchain clients are weak in supporting live upgrades, resulting in a blockchain fork that incurs security concerns and risks. In this article, we propose Phoenix, a novel blockchain client design that is live upgradable. Phoenix uses blockchain service encapsulation to decouple blockchain services. Based on service encapsulation, we propose a live upgrade scheme that packs upgrade codes into blockchain transactions and uses a Just-In-Time engine to avoid service interruption. A parallel execution engine is developed to increase service efficiency. We evaluated Phoenix on a 51-node blockchain, and experimental results show that Phoenix outperforms existing solutions in overhead and upgrade latency.